Ver código fonte

analysis first completed

shjung 3 anos atrás
pai
commit
d136822874
33 arquivos alterados com 748 adições e 290 exclusões
  1. 43 0
      src/main/java/com/its/op/controller/analysis/OffrResultController.java
  2. 7 1
      src/main/java/com/its/op/controller/analysis/PtrnDataController.java
  3. 38 0
      src/main/java/com/its/op/controller/analysis/ReptCngsController.java
  4. 26 9
      src/main/java/com/its/op/controller/analysis/TrafHistController.java
  5. 0 38
      src/main/java/com/its/op/controller/analysis/TrafResultController.java
  6. 7 2
      src/main/java/com/its/op/controller/statistics/FcltSttsController.java
  7. 27 27
      src/main/java/com/its/op/controller/statistics/TrafficController.java
  8. 18 0
      src/main/java/com/its/op/mapper/analysis/OffrResultMapper.java
  9. 3 1
      src/main/java/com/its/op/mapper/analysis/PtrnDataMapper.java
  10. 14 0
      src/main/java/com/its/op/mapper/analysis/ReptCngsMapper.java
  11. 10 3
      src/main/java/com/its/op/mapper/analysis/TrafHistMapper.java
  12. 0 15
      src/main/java/com/its/op/mapper/analysis/TrafResultMapper.java
  13. 53 0
      src/main/java/com/its/op/service/analysis/impl/OffrResultServiceImpl.java
  14. 27 2
      src/main/java/com/its/op/service/analysis/impl/PtrnDataServiceImpl.java
  15. 8 8
      src/main/java/com/its/op/service/analysis/impl/ReptCngsServiceImpl.java
  16. 41 8
      src/main/java/com/its/op/service/analysis/impl/TrafHistServiceImpl.java
  17. 3 3
      src/main/java/com/its/op/service/statistics/impl/FcltSttsServiceImpl.java
  18. 2 2
      src/main/java/com/its/op/vo/analysis/OffrResultParam.java
  19. 21 0
      src/main/java/com/its/op/vo/analysis/OffrResultVo.java
  20. 51 5
      src/main/java/com/its/op/vo/analysis/PtrnDataParam.java
  21. 12 11
      src/main/java/com/its/op/vo/analysis/PtrnDataVo.java
  22. 15 0
      src/main/java/com/its/op/vo/analysis/ReptCngsParam.java
  23. 26 0
      src/main/java/com/its/op/vo/analysis/ReptCngsVo.java
  24. 15 0
      src/main/java/com/its/op/vo/analysis/TrafHistListParam.java
  25. 14 0
      src/main/java/com/its/op/vo/analysis/TrafHistListVo.java
  26. 1 1
      src/main/java/com/its/op/vo/analysis/TrafHistParam.java
  27. 3 12
      src/main/java/com/its/op/vo/analysis/TrafHistVo.java
  28. 0 24
      src/main/java/com/its/op/vo/analysis/TrafResultVo.java
  29. 62 0
      src/main/resources/mybatis/mapper/analysis/OffrResult.xml
  30. 93 36
      src/main/resources/mybatis/mapper/analysis/PtrnData.xml
  31. 32 0
      src/main/resources/mybatis/mapper/analysis/ReptCngs.xml
  32. 76 37
      src/main/resources/mybatis/mapper/analysis/TrafHist.xml
  33. 0 45
      src/main/resources/mybatis/mapper/analysis/TrafResult.xml

+ 43 - 0
src/main/java/com/its/op/controller/analysis/OffrResultController.java

@@ -0,0 +1,43 @@
+package com.its.op.controller.analysis;
+
+import com.its.op.service.analysis.impl.OffrResultServiceImpl;
+import com.its.op.vo.analysis.OffrResultParam;
+import com.its.op.vo.analysis.OffrResultVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/analysis/offr-result")
+@Api(tags = "04.분석-3.교통정보제공결과분석", description="교통정보제공결과분석")
+public class OffrResultController {
+
+    private OffrResultServiceImpl service;
+
+    public OffrResultController(OffrResultServiceImpl service) {
+        this.service = service;
+    }
+
+    @ApiOperation(value = "교통정보제공결과분석(TB_TRFC_PRCN_STAT)", response = OffrResultVo.class, responseContainer = "ArrayList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "offr_type", dataType = "string", value = "링크레벨구분, LINK(링크), IFSC(서비스링크), ROAD(도로), VMS(VMS)")
+    })
+    @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<OffrResultVo>> findAllByDateRange(@RequestBody OffrResultParam cond, HttpServletRequest request) {
+        List<OffrResultVo> result = this.service.findAllByDateRange(cond);
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+}

+ 7 - 1
src/main/java/com/its/op/controller/analysis/PtrnDataController.java

@@ -4,6 +4,8 @@ import com.its.op.service.analysis.impl.PtrnDataServiceImpl;
 import com.its.op.vo.analysis.PtrnDataParam;
 import com.its.op.vo.analysis.PtrnDataVo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
@@ -28,7 +30,11 @@ public class PtrnDataController {
         this.service = service;
     }
 
-    @ApiOperation(value = "패턴데이터분석(TB_CLCT_SYST_STTS_HS, TB_TRFC_PRCN_STAT)", response = PtrnDataParam.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "패턴데이터분석(TB_XXXX_5M_PTRN, TB_XXXX_15M_PTRN)", response = PtrnDataVo.class, responseContainer = "ArrayList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "ptrn_type", dataType = "string", value = "LINK(링크), IFSC(서비스링크), ROAD(도로)"),
+            @ApiImplicitParam(name = "ptrn_data", dataType = "string", value = "5M(5분패턴), 15M(15분패턴)")
+    })
     @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<PtrnDataVo>> findAllByDateRange(@RequestBody PtrnDataParam cond, HttpServletRequest request) {
         List<PtrnDataVo> result = this.service.findAllByDateRange(cond);

+ 38 - 0
src/main/java/com/its/op/controller/analysis/ReptCngsController.java

@@ -0,0 +1,38 @@
+package com.its.op.controller.analysis;
+
+import com.its.op.service.analysis.impl.ReptCngsServiceImpl;
+import com.its.op.vo.analysis.ReptCngsParam;
+import com.its.op.vo.analysis.ReptCngsVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/analysis/rept-cngs")
+@Api(tags = "04.분석-6.반복정체구간분석", description="반복정체구간분석")
+public class ReptCngsController {
+
+    private ReptCngsServiceImpl service;
+
+    public ReptCngsController(ReptCngsServiceImpl service) {
+        this.service = service;
+    }
+
+    @ApiOperation(value = "반복정체구간분석(TB_REPT_CNGS_SECT, TB_IFSC)", response = ReptCngsVo.class, responseContainer = "ArrayList")
+    @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<ReptCngsVo>> findAllByDateRange(@RequestBody ReptCngsParam cond, HttpServletRequest request) {
+        List<ReptCngsVo> result = this.service.findAllByDateRange(cond);
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+}

+ 26 - 9
src/main/java/com/its/op/controller/analysis/TrafHistController.java

@@ -1,9 +1,13 @@
 package com.its.op.controller.analysis;
 
-import com.its.op.service.analysis.impl.PrcnResultServiceImpl;
-import com.its.op.vo.analysis.PrcnResultParam;
-import com.its.op.vo.analysis.PrcnResultVo;
+import com.its.op.service.analysis.impl.TrafHistServiceImpl;
+import com.its.op.vo.analysis.TrafHistListParam;
+import com.its.op.vo.analysis.TrafHistListVo;
+import com.its.op.vo.analysis.TrafHistParam;
+import com.its.op.vo.analysis.TrafHistVo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
@@ -22,16 +26,29 @@ import java.util.List;
 @Api(tags = "04.분석-4.소통정보이력분석", description="소통정보이력분석")
 public class TrafHistController {
 
-    private PrcnResultServiceImpl service;
+    private TrafHistServiceImpl service;
 
-    public TrafHistController(PrcnResultServiceImpl service) {
+    public TrafHistController(TrafHistServiceImpl service) {
         this.service = service;
     }
 
-    @ApiOperation(value = "교통정보가공결과분석(TB_CLCT_SYST_STTS_HS, TB_TRFC_PRCN_STAT)", response = PrcnResultVo.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
-    public ResponseEntity<List<PrcnResultVo>> findAllByDateRange(@RequestBody PrcnResultParam cond, HttpServletRequest request) {
-        List<PrcnResultVo> result = this.service.findAllByDateRange(cond);
+    @ApiOperation(value = "0.이력목록조회(TB_IFSC_15M_STAT)", response = TrafHistVo.class, responseContainer = "ArrayList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "hist_type", dataType = "string", value = "LINK(링크), IFSC(서비스링크), ROAD(도로)")
+    })
+    @PostMapping(value = "/stat/", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<TrafHistVo>> findAllByDateRange(@RequestBody TrafHistParam cond, HttpServletRequest request) {
+        List<TrafHistVo> result = this.service.findAllByDateRange(cond);
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    @ApiOperation(value = "1.이력리스트조회(TB_IFSC_15M_STAT)", response = TrafHistListVo.class, responseContainer = "ArrayList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "hist_type", dataType = "string", value = "LINK(링크), IFSC(서비스링크), ROAD(도로)")
+    })
+    @PostMapping(value = "/hist/", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<TrafHistListVo>> findAllByDateRangeList(@RequestBody TrafHistListParam cond, HttpServletRequest request) {
+        List<TrafHistListVo> result = this.service.findAllByDateRangeList(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 

+ 0 - 38
src/main/java/com/its/op/controller/analysis/TrafResultController.java

@@ -1,38 +0,0 @@
-package com.its.op.controller.analysis;
-
-import com.its.op.service.analysis.impl.PrcnResultServiceImpl;
-import com.its.op.vo.analysis.PrcnResultParam;
-import com.its.op.vo.analysis.PrcnResultVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-
-@Slf4j
-@RestController
-@RequestMapping("/analysis/traf-result")
-@Api(tags = "04.분석-3.교통정보제공결과분석", description="교통정보제공결과분석")
-public class TrafResultController {
-
-    private PrcnResultServiceImpl service;
-
-    public TrafResultController(PrcnResultServiceImpl service) {
-        this.service = service;
-    }
-
-    @ApiOperation(value = "교통정보제공결과분석(TB_CLCT_SYST_STTS_HS, TB_TRFC_PRCN_STAT)", response = PrcnResultVo.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
-    public ResponseEntity<List<PrcnResultVo>> findAllByDateRange(@RequestBody PrcnResultParam cond, HttpServletRequest request) {
-        List<PrcnResultVo> result = this.service.findAllByDateRange(cond);
-        return new ResponseEntity<>(result, HttpStatus.OK);
-    }
-
-}

+ 7 - 2
src/main/java/com/its/op/controller/statistics/FcltSttsController.java

@@ -5,6 +5,8 @@ import com.its.op.vo.statistics.FcltSttsParam;
 import com.its.op.vo.statistics.FcltSttsTypeVo;
 import com.its.op.vo.statistics.FcltSttsVo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
@@ -26,14 +28,17 @@ public class FcltSttsController {
         this.service = service;
     }
 
-    @ApiOperation(value = "시설물 구분목록", response = FcltSttsTypeVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "0.시설물 구분목록", response = FcltSttsTypeVo.class, responseContainer = "ArrayList")
     @GetMapping(value = "/type/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<FcltSttsTypeVo>> findAll(HttpServletRequest request) {
         List<FcltSttsTypeVo> result = this.service.findAllFcltSttsType();
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "시설물 통신단절통계조회", response = FcltSttsVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "1.통신단절통계조회", response = FcltSttsVo.class, responseContainer = "ArrayList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "fclt_cd", dataType = "string", value = "시설물유형, CCTV, VMS, VDS")
+    })
     @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<FcltSttsVo>> findAllLink15MTerm(@RequestBody FcltSttsParam cond, HttpServletRequest request) {
         List<FcltSttsVo> result = this.service.findAllFcltStts(cond);

+ 27 - 27
src/main/java/com/its/op/controller/statistics/TrafficController.java

@@ -34,35 +34,35 @@ public class TrafficController {
     }
 
     //////////// 링크 기간검색
-    @ApiOperation(value = "기간검색-링크 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-링크 15분(TB_LINK_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/link-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLink15MTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllLink15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-링크 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-링크 시간(TB_LINK_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/link-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLinkHHTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllLinkHH(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-링크 일()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-링크 일(TB_LINK_DD_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/link-dd/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLinkDDTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllLinkDD(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-링크 월()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-링크 월(TB_LINK_MN_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/link-mn/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLinkMNTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllLinkMN(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-링크 년()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-링크 년(TB_LINK_YY_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/link-yy/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLinkYYTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllLinkYY(cond);
@@ -70,35 +70,35 @@ public class TrafficController {
     }
 
     //////////// 서비스 링크 기간검색
-    @ApiOperation(value = "기간검색-서비스링크 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-서비스링크 15분(TB_IFSC_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/ifsc-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfsc15MTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllIfsc15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-서비스링크 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-서비스링크 시간(TB_IFSC_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/ifsc-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfscHHTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllIfscHH(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-서비스링크 일()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-서비스링크 일(TB_IFSC_DD_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/ifsc-dd/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfscDDTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllIfscDD(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-서비스링크 월()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-서비스링크 월(TB_IFSC_MN_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/ifsc-mn/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfscMNTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllIfscMN(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-서비스링크 년()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-서비스링크 년(TB_IFSC_YY_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/ifsc-yy/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfscYYTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllIfscYY(cond);
@@ -106,35 +106,35 @@ public class TrafficController {
     }
 
     //////////// 도로 기간검색
-    @ApiOperation(value = "기간검색-도로 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-도로 15분(TB_ROAD_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/road-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoad15MTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllRoad15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-도로 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-도로 시간(TB_ROAD_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/road-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoadHHTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllRoadHH(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-도로 일()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-도로 일(TB_ROAD_DD_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/road-dd/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoadDDTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllRoadDD(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-도로 월()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-도로 월(TB_ROAD_MN_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/road-mn/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoadMNTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllRoadMN(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "기간검색-도로 년()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "기간검색-도로 년(TB_ROAD_YY_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/term/road-yy/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoadYYTerm(@RequestBody TrafficTermParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceTerm.findAllRoadYY(cond);
@@ -142,14 +142,14 @@ public class TrafficController {
     }
 
     //////////// 링크 시간대검색
-    @ApiOperation(value = "시간대검색-링크 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시간대검색-링크 15분(TB_LINK_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/hour/link-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLink15MHour(@RequestBody TrafficHourParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceHour.findAllLink15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "시간대검색-링크 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시간대검색-링크 시간(TB_LINK_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/hour/link-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLinkHHHour(@RequestBody TrafficHourParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceHour.findAllLinkHH(cond);
@@ -157,14 +157,14 @@ public class TrafficController {
     }
 
     //////////// 서비스 링크 시간대검색
-    @ApiOperation(value = "시간대검색-서비스링크 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시간대검색-서비스링크 15분(TB_IFSC_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/hour/ifsc-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfsc15MHour(@RequestBody TrafficHourParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceHour.findAllIfsc15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "시간대검색-서비스링크 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시간대검색-서비스링크 시간(TB_IFSC_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/hour/ifsc-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfscHHHour(@RequestBody TrafficHourParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceHour.findAllIfscHH(cond);
@@ -172,14 +172,14 @@ public class TrafficController {
     }
 
     //////////// 도로 시간대검색
-    @ApiOperation(value = "시간대검색-도로 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시간대검색-도로 15분(TB_ROAD_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/hour/road-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoad15MHour(@RequestBody TrafficHourParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceHour.findAllRoad15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "시간대검색-도로 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시간대검색-도로 시간(TB_ROAD_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/hour/road-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoadHHHour(@RequestBody TrafficHourParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceHour.findAllRoadHH(cond);
@@ -188,14 +188,14 @@ public class TrafficController {
 
     //////////// 링크 지정시각검색
     //////////// TODO: 지정일은 반드시 조회조건에 포함시켜야 한다.
-    @ApiOperation(value = "지정시각검색-링크 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "지정시각검색-링크 15분(TB_LINK_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/spec/link-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLink15MSpec(@RequestBody TrafficSpecParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceSpec.findAllLink15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "지정시각검색-링크 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "지정시각검색-링크 시간(TB_LINK_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/spec/link-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllLinkHHSpec(@RequestBody TrafficSpecParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceSpec.findAllLinkHH(cond);
@@ -203,14 +203,14 @@ public class TrafficController {
     }
 
     //////////// 서비스 링크 지정시각검색
-    @ApiOperation(value = "지정시각검색-서비스링크 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "지정시각검색-서비스링크 15분(TB_IFSC_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/spec/ifsc-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfsc15MSpec(@RequestBody TrafficSpecParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceSpec.findAllIfsc15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "지정시각검색-서비스링크 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "지정시각검색-서비스링크 시간(TB_IFSC_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/spec/ifsc-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllIfscHHSpec(@RequestBody TrafficSpecParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceSpec.findAllIfscHH(cond);
@@ -218,14 +218,14 @@ public class TrafficController {
     }
 
     //////////// 도로 지정시각검색
-    @ApiOperation(value = "지정시각검색-도로 15분()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "지정시각검색-도로 15분(TB_ROAD_15M_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/spec/road-15m/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoad15MSpec(@RequestBody TrafficSpecParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceSpec.findAllRoad15M(cond);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "지정시각검색-도로 시간()", response = TrafficVo.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "지정시각검색-도로 시간(TB_ROAD_HH_STAT)", response = TrafficVo.class, responseContainer = "ArrayList")
     @PostMapping(value = "/spec/road-hh/", produces = {"application/json; charset=utf8"})
     public ResponseEntity<List<TrafficVo>> findAllRoadHHSpec(@RequestBody TrafficSpecParam cond, HttpServletRequest request) {
         List<TrafficVo> result = this.serviceSpec.findAllRoadHH(cond);

+ 18 - 0
src/main/java/com/its/op/mapper/analysis/OffrResultMapper.java

@@ -0,0 +1,18 @@
+package com.its.op.mapper.analysis;
+
+import com.its.op.vo.analysis.OffrResultParam;
+import com.its.op.vo.analysis.OffrResultVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface OffrResultMapper {
+
+    List<OffrResultVo> findAllByDateRangeLINK(@Param("cond") OffrResultParam cond);
+    List<OffrResultVo> findAllByDateRangeIFSC(@Param("cond") OffrResultParam cond);
+    List<OffrResultVo> findAllByDateRangeROAD(@Param("cond") OffrResultParam cond);
+    List<OffrResultVo> findAllByDateRangeVMS(@Param("cond") OffrResultParam cond);
+
+}

+ 3 - 1
src/main/java/com/its/op/mapper/analysis/PtrnDataMapper.java

@@ -10,6 +10,8 @@ import java.util.List;
 @Mapper
 public interface PtrnDataMapper {
 
-    List<PtrnDataVo> findAllByDateRange(@Param("cond") PtrnDataParam cond);
+    List<PtrnDataVo> findAllByDateRangeLINK(@Param("cond") PtrnDataParam cond);
+    List<PtrnDataVo> findAllByDateRangeIFSC(@Param("cond") PtrnDataParam cond);
+    List<PtrnDataVo> findAllByDateRangeROAD(@Param("cond") PtrnDataParam cond);
 
 }

+ 14 - 0
src/main/java/com/its/op/mapper/analysis/ReptCngsMapper.java

@@ -0,0 +1,14 @@
+package com.its.op.mapper.analysis;
+
+import com.its.op.vo.analysis.ReptCngsParam;
+import com.its.op.vo.analysis.ReptCngsVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ReptCngsMapper {
+
+    List<ReptCngsVo> findAllByDateRange(@Param("cond") ReptCngsParam cond);
+}

+ 10 - 3
src/main/java/com/its/op/mapper/analysis/TrafHistMapper.java

@@ -1,7 +1,9 @@
 package com.its.op.mapper.analysis;
 
-import com.its.op.vo.analysis.PrcnResultParam;
-import com.its.op.vo.analysis.PrcnResultVo;
+import com.its.op.vo.analysis.TrafHistListParam;
+import com.its.op.vo.analysis.TrafHistListVo;
+import com.its.op.vo.analysis.TrafHistParam;
+import com.its.op.vo.analysis.TrafHistVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -10,6 +12,11 @@ import java.util.List;
 @Mapper
 public interface TrafHistMapper {
 
-    List<PrcnResultVo> findAllByDateRange(@Param("cond") PrcnResultParam cond);
+    List<TrafHistVo> findAllByDateRangeLINK(@Param("cond") TrafHistParam cond);
+    List<TrafHistVo> findAllByDateRangeIFSC(@Param("cond") TrafHistParam cond);
+    List<TrafHistVo> findAllByDateRangeROAD(@Param("cond") TrafHistParam cond);
 
+    List<TrafHistListVo> findAllByDateRangeListLINK(@Param("cond") TrafHistListParam cond);
+    List<TrafHistListVo> findAllByDateRangeListIFSC(@Param("cond") TrafHistListParam cond);
+    List<TrafHistListVo> findAllByDateRangeListROAD(@Param("cond") TrafHistListParam cond);
 }

+ 0 - 15
src/main/java/com/its/op/mapper/analysis/TrafResultMapper.java

@@ -1,15 +0,0 @@
-package com.its.op.mapper.analysis;
-
-import com.its.op.vo.analysis.PrcnResultParam;
-import com.its.op.vo.analysis.PrcnResultVo;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TrafResultMapper {
-
-    List<PrcnResultVo> findAllByDateRange(@Param("cond") PrcnResultParam cond);
-
-}

+ 53 - 0
src/main/java/com/its/op/service/analysis/impl/OffrResultServiceImpl.java

@@ -0,0 +1,53 @@
+package com.its.op.service.analysis.impl;
+
+import com.its.op.mapper.analysis.OffrResultMapper;
+import com.its.op.service.analysis.AnalysisService;
+import com.its.op.vo.analysis.OffrResultParam;
+import com.its.op.vo.analysis.OffrResultVo;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Getter
+@Setter
+@ToString
+@Service
+public class OffrResultServiceImpl implements AnalysisService {
+
+    private final OffrResultMapper mapper;
+
+    public OffrResultServiceImpl(OffrResultMapper mapper) {
+        this.mapper = mapper;
+    }
+
+    public List<OffrResultVo> findAllByDateRange(OffrResultParam cond) {
+        try {
+            if (cond.getOFFR_TYPE().equalsIgnoreCase("LINK")) {
+                return this.mapper.findAllByDateRangeLINK(cond);
+            }
+            else if (cond.getOFFR_TYPE().equalsIgnoreCase("IFSC")) {
+                return this.mapper.findAllByDateRangeIFSC(cond);
+            }
+            else if (cond.getOFFR_TYPE().equalsIgnoreCase("ROAD")) {
+                return this.mapper.findAllByDateRangeROAD(cond);
+            }
+            else if (cond.getOFFR_TYPE().equalsIgnoreCase("VMS")) {
+                return this.mapper.findAllByDateRangeVMS(cond);
+            }
+            else {
+                log.error("{}.findAllByDateRange: Unknown OFFR_TYPE: Cond: {}", getClass().getSimpleName(), cond);
+            }
+        }
+        catch (Exception e) {
+            log.error("{}.findAllByDateRange: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());
+        }
+        return new ArrayList<OffrResultVo>();
+    }
+
+}

+ 27 - 2
src/main/java/com/its/op/service/analysis/impl/PtrnDataServiceImpl.java

@@ -1,6 +1,5 @@
 package com.its.op.service.analysis.impl;
 
-import com.its.op.mapper.analysis.PrcnResultMapper;
 import com.its.op.mapper.analysis.PtrnDataMapper;
 import com.its.op.service.analysis.AnalysisService;
 import com.its.op.vo.analysis.PtrnDataParam;
@@ -29,7 +28,33 @@ public class PtrnDataServiceImpl implements AnalysisService {
 
     public List<PtrnDataVo> findAllByDateRange(PtrnDataParam cond) {
         try {
-            return this.mapper.findAllByDateRange(cond);
+            if (cond.getPTRN_TYPE().equalsIgnoreCase("LINK")) {
+                if (cond.getPTRN_DATA().equalsIgnoreCase("5M")) {
+                    cond.setTABLE_NAME("TB_LINK_5M_PTRN");
+                }
+                else {
+                    cond.setTABLE_NAME("TB_LINK_15M_PTRN");
+                }
+                return this.mapper.findAllByDateRangeLINK(cond);
+            }
+            else if (cond.getPTRN_TYPE().equalsIgnoreCase("IFSC")) {
+                if (cond.getPTRN_DATA().equalsIgnoreCase("5M")) {
+                    cond.setTABLE_NAME("TB_IFSC_5M_PTRN");
+                }
+                else {
+                    cond.setTABLE_NAME("TB_IFSC_15M_PTRN");
+                }
+                return this.mapper.findAllByDateRangeIFSC(cond);
+            }
+            else {
+                if (cond.getPTRN_DATA().equalsIgnoreCase("5M")) {
+                    cond.setTABLE_NAME("TB_ROAD_5M_PTRN");
+                }
+                else {
+                    cond.setTABLE_NAME("TB_ROAD_15M_PTRN");
+                }
+                return this.mapper.findAllByDateRangeROAD(cond);
+            }
         }
         catch (Exception e) {
             log.error("{}.findAllByDateRange: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());

+ 8 - 8
src/main/java/com/its/op/service/analysis/impl/TrafResultServiceImpl.java → src/main/java/com/its/op/service/analysis/impl/ReptCngsServiceImpl.java

@@ -1,9 +1,9 @@
 package com.its.op.service.analysis.impl;
 
-import com.its.op.mapper.analysis.PrcnResultMapper;
+import com.its.op.mapper.analysis.ReptCngsMapper;
 import com.its.op.service.analysis.AnalysisService;
-import com.its.op.vo.analysis.PrcnResultParam;
-import com.its.op.vo.analysis.PrcnResultVo;
+import com.its.op.vo.analysis.ReptCngsParam;
+import com.its.op.vo.analysis.ReptCngsVo;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -18,22 +18,22 @@ import java.util.List;
 @Setter
 @ToString
 @Service
-public class TrafResultServiceImpl implements AnalysisService {
+public class ReptCngsServiceImpl implements AnalysisService {
 
-    private final PrcnResultMapper mapper;
+    private final ReptCngsMapper mapper;
 
-    public TrafResultServiceImpl(PrcnResultMapper mapper) {
+    public ReptCngsServiceImpl(ReptCngsMapper mapper) {
         this.mapper = mapper;
     }
 
-    public List<PrcnResultVo> findAllByDateRange(PrcnResultParam cond) {
+    public List<ReptCngsVo> findAllByDateRange(ReptCngsParam cond) {
         try {
             return this.mapper.findAllByDateRange(cond);
         }
         catch (Exception e) {
             log.error("{}.findAllByDateRange: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());
         }
-        return new ArrayList<PrcnResultVo>();
+        return new ArrayList<ReptCngsVo>();
     }
 
 }

+ 41 - 8
src/main/java/com/its/op/service/analysis/impl/TrafHistServiceImpl.java

@@ -1,9 +1,11 @@
 package com.its.op.service.analysis.impl;
 
-import com.its.op.mapper.analysis.PrcnResultMapper;
+import com.its.op.mapper.analysis.TrafHistMapper;
 import com.its.op.service.analysis.AnalysisService;
-import com.its.op.vo.analysis.PrcnResultParam;
-import com.its.op.vo.analysis.PrcnResultVo;
+import com.its.op.vo.analysis.TrafHistListParam;
+import com.its.op.vo.analysis.TrafHistListVo;
+import com.its.op.vo.analysis.TrafHistParam;
+import com.its.op.vo.analysis.TrafHistVo;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -20,20 +22,51 @@ import java.util.List;
 @Service
 public class TrafHistServiceImpl implements AnalysisService {
 
-    private final PrcnResultMapper mapper;
+    private final TrafHistMapper mapper;
 
-    public TrafHistServiceImpl(PrcnResultMapper mapper) {
+    public TrafHistServiceImpl(TrafHistMapper mapper) {
         this.mapper = mapper;
     }
 
-    public List<PrcnResultVo> findAllByDateRange(PrcnResultParam cond) {
+    public List<TrafHistVo> findAllByDateRange(TrafHistParam cond) {
         try {
-            return this.mapper.findAllByDateRange(cond);
+            if (cond.getHIST_TYPE().equalsIgnoreCase("LINK")) {
+                return this.mapper.findAllByDateRangeLINK(cond);
+            }
+            else if (cond.getHIST_TYPE().equalsIgnoreCase("IFSC")) {
+                return this.mapper.findAllByDateRangeIFSC(cond);
+            }
+            else if (cond.getHIST_TYPE().equalsIgnoreCase("ROAD")) {
+                return this.mapper.findAllByDateRangeROAD(cond);
+            }
+            else {
+                log.error("{}.findAllByDateRange: Unknown OFFR_TYPE: Cond: {}", getClass().getSimpleName(), cond);
+            }
         }
         catch (Exception e) {
             log.error("{}.findAllByDateRange: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());
         }
-        return new ArrayList<PrcnResultVo>();
+        return new ArrayList<TrafHistVo>();
     }
 
+    public List<TrafHistListVo> findAllByDateRangeList(TrafHistListParam cond) {
+        try {
+            if (cond.getHIST_TYPE().equalsIgnoreCase("LINK")) {
+                return this.mapper.findAllByDateRangeListLINK(cond);
+            }
+            else if (cond.getHIST_TYPE().equalsIgnoreCase("IFSC")) {
+                return this.mapper.findAllByDateRangeListIFSC(cond);
+            }
+            else if (cond.getHIST_TYPE().equalsIgnoreCase("ROAD")) {
+                return this.mapper.findAllByDateRangeListROAD(cond);
+            }
+            else {
+                log.error("{}.findAllByDateRangeList: Unknown OFFR_TYPE: Cond: {}", getClass().getSimpleName(), cond);
+            }
+        }
+        catch (Exception e) {
+            log.error("{}.findAllByDateRangeList: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());
+        }
+        return new ArrayList<TrafHistListVo>();
+    }
 }

+ 3 - 3
src/main/java/com/its/op/service/statistics/impl/FcltSttsServiceImpl.java

@@ -37,15 +37,15 @@ public class FcltSttsServiceImpl implements StatisticsService {
 
     public List<FcltSttsVo> findAllFcltStts(FcltSttsParam cond) {
         try {
-            if (cond.getFCLT_CD().equals("CCTV")) {
+            if (cond.getFCLT_CD().equalsIgnoreCase("CCTV")) {
                 return this.mapper.findAllFcltSttsCCTV(cond);
             }
             else
-            if (cond.getFCLT_CD().equals("VMS")) {
+            if (cond.getFCLT_CD().equalsIgnoreCase("VMS")) {
                 return this.mapper.findAllFcltSttsVMS(cond);
             }
             else
-            if (cond.getFCLT_CD().equals("VDS")) {
+            if (cond.getFCLT_CD().equalsIgnoreCase("VDS")) {
                 return this.mapper.findAllFcltSttsVDS(cond);
             }
             else {

+ 2 - 2
src/main/java/com/its/op/vo/analysis/TrafResultParam.java → src/main/java/com/its/op/vo/analysis/OffrResultParam.java

@@ -9,8 +9,8 @@ import lombok.ToString;
 @Setter
 @ToString
 @ApiModel(description = "교통정보제공결과분석 파라미터")
-public class TrafResultParam {
-    private String TRAF_LEVL;       //
+public class OffrResultParam {
+    private String OFFR_TYPE;       // LINK, IFSC, ROAD, VMS
     private String FROM_DT;
     private String TO_DT;
 }

+ 21 - 0
src/main/java/com/its/op/vo/analysis/OffrResultVo.java

@@ -0,0 +1,21 @@
+package com.its.op.vo.analysis;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+//@JsonNaming(UpperCaseUnderscoreStrategy.class)
+public class OffrResultVo {
+    private String PRCN_DT;
+    private String PRCN_DT_FMT;
+    private int    TOT_CNT;         // 총링크수
+    private int    OFFR_CNT;        // 생성수(제공건수)
+    private int    LTC1_CNT;        // 원활
+    private int    LTC2_CNT;        // 지체
+    private int    LTC3_CNT;        // 정체
+    private int    LTC0_CNT;        // 정보없음
+
+}

+ 51 - 5
src/main/java/com/its/op/vo/analysis/PtrnDataParam.java

@@ -1,16 +1,62 @@
 package com.its.op.vo.analysis;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModel;
-import lombok.Getter;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Setter;
 import lombok.ToString;
 
-@Getter
 @Setter
 @ToString
 @ApiModel(description = "패턴데이터분석 파라미터")
 public class PtrnDataParam {
-    private String TRAF_LEVL;       //
-    private String FROM_DT;
-    private String TO_DT;
+    private String PTRN_TYPE;       // LINK, IFSC, ROAD 선택
+    private String PTRN_DATA;       // 5M(5 분 패턴), 15M(15분 패턴) 선택
+    private String ID;              // ID, (LINK_ID, IFSC_ID, ROAD_ID)
+    private String PTRN_WEEK;       // DTW1(월), DTW2(화), DTW3(수), DTW4(목), DTW5(금), DTW6(토), DTW7(일)
+    private String BASE_MN;         // 기준월(YYYYMM)
+    private String COMP_MN;         // 비교월(YYYYMM)
+    private String FROM_HM;         // 시작시간대(HH24MI)
+    private String TO_HM;           // 종료시간대(HH24MI)
+
+    @JsonIgnore
+    private String TABLE_NAME;
+
+    @ApiModelProperty(value = "Table Name", notes = "Table Name", hidden = true)
+    public String getTABLE_NAME() {
+        return TABLE_NAME;
+    }
+
+    public String getID() {
+        return ID;
+    }
+
+    public String getPTRN_TYPE() {
+        return PTRN_TYPE;
+    }
+
+    public String getPTRN_DATA() {
+        return PTRN_DATA;
+    }
+
+    public String getPTRN_WEEK() {
+        return PTRN_WEEK;
+    }
+
+    public String getBASE_MN() {
+        return BASE_MN;
+    }
+
+    public String getCOMP_MN() {
+        return COMP_MN;
+    }
+
+    public String getFROM_HM() {
+        return FROM_HM;
+    }
+
+    public String getTO_HM() {
+        return TO_HM;
+    }
+
 }

+ 12 - 11
src/main/java/com/its/op/vo/analysis/PtrnDataVo.java

@@ -9,16 +9,17 @@ import lombok.ToString;
 @ToString
 //@JsonNaming(UpperCaseUnderscoreStrategy.class)
 public class PtrnDataVo {
-    private String PRCN_DT;
-    private String PRCN_DT_FMT;
-    private int    PRCN_TOT;        // 총가공개수
-    private int    OPER01;          // 운영자개입
-    private int    VDS01;           // 영상 VDS
-    private int    MOCT01;          // 민간정보
-    private int    UTIS01;          // 중앙센터-UTIS
-    private int    UTIS02;          // 중앙센터-ITS
+    private String ID;              // ID, (LINK_ID, IFSC_ID, ROAD_ID)
+    private String SECT_NAME;       // 구간명
+    private String SECT_LNGT;       // 구간길이
+    private String DAY_TYPE_CD;     // 패턴요일
+    private String PTRN_HM;         // 패턴시각
+
+    private int    BASE_SPED;       // 기준월 속도
+    private int    BASE_TRVL_HH;    // 기준월 통행시간
+    private int    COMP_SPED;       // 비교월 속도
+    private int    COMP_TRVL_HH;    // 비교월 통행시간
+    private int    DIFF_SPED;       // 속도 차이(기준월-비교월)
+    private int    DIFF_TRVL_HH;    // 통행시간 차이(기준월-비교월)
 
-    private int    MISS_NUM;        // 결측개수
-    private int    ADJS_NUM;        // 보정개수
-    private int    SMTH_NUM;        // 평활화개수
 }

+ 15 - 0
src/main/java/com/its/op/vo/analysis/ReptCngsParam.java

@@ -0,0 +1,15 @@
+package com.its.op.vo.analysis;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+@ApiModel(description = "소통정보이력분석 파라미터")
+public class ReptCngsParam {
+    private String DAY_TYPE_CD; // ALL(전체), DTW1(월), DTW2(화), DTW3(수), DTW4(목), DTW5(금), DTW6(토), DTW7(일)
+    private String BASE_MN;
+}

+ 26 - 0
src/main/java/com/its/op/vo/analysis/ReptCngsVo.java

@@ -0,0 +1,26 @@
+package com.its.op.vo.analysis;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+//@JsonNaming(UpperCaseUnderscoreStrategy.class)
+public class ReptCngsVo {
+    private String DAY_TYPE_NM;
+    private String STAT_YM;
+    private String IFSC_ID;
+    private String IFSC_NM;
+    private String STRT_NM;
+    private String END_NM;
+    private int    SECT_LNGT;
+    private String CNFS_STRT_HM;
+    private String CNFS_END_HM;
+    private String AVRG_SPED;
+    private String AVRG_TRVL_HH;
+    private String DCSN_YN;
+    private String CRTN_YMD;
+    private String REPT_CNGS_SECT_ORGN_NM;
+}

+ 15 - 0
src/main/java/com/its/op/vo/analysis/TrafHistListParam.java

@@ -0,0 +1,15 @@
+package com.its.op.vo.analysis;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+@ApiModel(description = "소통정보이력분석 파라미터")
+public class TrafHistListParam {
+    private String HIST_TYPE;       // LINK, IFSC, ROAD, 현재 IFSC 만 사용(LINK, ROAD 필요할 경우를 대비해서 ...)
+    private String STAT_DT;         // 통계시각 (TrafHistVo.STAT_DT)
+}

+ 14 - 0
src/main/java/com/its/op/vo/analysis/TrafHistListVo.java

@@ -0,0 +1,14 @@
+package com.its.op.vo.analysis;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+public class TrafHistListVo {
+    private String ID;
+    private String CMTR_GRAD_CD;
+    private int    SPED;
+}

+ 1 - 1
src/main/java/com/its/op/vo/analysis/TrafHistParam.java

@@ -10,7 +10,7 @@ import lombok.ToString;
 @ToString
 @ApiModel(description = "소통정보이력분석 파라미터")
 public class TrafHistParam {
-    private String TRAF_LEVL;       //
+    private String HIST_TYPE;       // LINK, IFSC, ROAD, 현재 IFSC 만 사용(LINK, ROAD 필요할 경우를 대비해서 ...)
     private String FROM_DT;
     private String TO_DT;
 }

+ 3 - 12
src/main/java/com/its/op/vo/analysis/TrafHistVo.java

@@ -9,16 +9,7 @@ import lombok.ToString;
 @ToString
 //@JsonNaming(UpperCaseUnderscoreStrategy.class)
 public class TrafHistVo {
-    private String PRCN_DT;
-    private String PRCN_DT_FMT;
-    private int    PRCN_TOT;        // 총가공개수
-    private int    OPER01;          // 운영자개입
-    private int    VDS01;           // 영상 VDS
-    private int    MOCT01;          // 민간정보
-    private int    UTIS01;          // 중앙센터-UTIS
-    private int    UTIS02;          // 중앙센터-ITS
-
-    private int    MISS_NUM;        // 결측개수
-    private int    ADJS_NUM;        // 보정개수
-    private int    SMTH_NUM;        // 평활화개수
+    private String STAT_DT;         // 통계시각
+    private String STAT_DT_FMT;     // 통계시각 형식
+    private int    DATA_CNT;        // 데이터 건수
 }

+ 0 - 24
src/main/java/com/its/op/vo/analysis/TrafResultVo.java

@@ -1,24 +0,0 @@
-package com.its.op.vo.analysis;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-//@JsonNaming(UpperCaseUnderscoreStrategy.class)
-public class TrafResultVo {
-    private String PRCN_DT;
-    private String PRCN_DT_FMT;
-    private int    PRCN_TOT;        // 총가공개수
-    private int    OPER01;          // 운영자개입
-    private int    VDS01;           // 영상 VDS
-    private int    MOCT01;          // 민간정보
-    private int    UTIS01;          // 중앙센터-UTIS
-    private int    UTIS02;          // 중앙센터-ITS
-
-    private int    MISS_NUM;        // 결측개수
-    private int    ADJS_NUM;        // 보정개수
-    private int    SMTH_NUM;        // 평활화개수
-}

+ 62 - 0
src/main/resources/mybatis/mapper/analysis/OffrResult.xml

@@ -0,0 +1,62 @@
+<?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.op.mapper.analysis.OffrResultMapper">
+
+    <select id="findAllByDateRangeLINK" parameterType="com.its.op.vo.analysis.OffrResultParam" resultType="com.its.op.vo.analysis.OffrResultVo">
+        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT,
+               (SELECT COUNT(1) AS CNT FROM TB_LINK WHERE DEL_YN = 'N') AS TOT_CNT,
+               (A.LINK_LIGT_NUM + A.LINK_DELY_NUM + A.LINK_CNGS_NUM) AS OFFR_CNT,
+               A.LINK_LIGT_NUM AS LTC1_CNT,
+               A.LINK_DELY_NUM AS LTC2_CNT,
+               A.LINK_CNGS_NUM AS LTC3_CNT,
+               ((SELECT COUNT(1) AS CNT FROM TB_LINK  WHERE DEL_YN = 'N')
+                   - A.LINK_LIGT_NUM - A.LINK_DELY_NUM - A.LINK_CNGS_NUM) AS LTC0_CNT
+        FROM TB_TRFC_PRCN_STAT A
+        WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        ORDER BY A.PRCN_DT
+    </select>
+
+    <select id="findAllByDateRangeIFSC" parameterType="com.its.op.vo.analysis.OffrResultParam" resultType="com.its.op.vo.analysis.OffrResultVo">
+        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT,
+               (SELECT COUNT(1) AS CNT FROM TB_IFSC WHERE DEL_YN = 'N') AS TOT_CNT,
+               (A.IFSC_LIGT_NUM + A.IFSC_DELY_NUM + A.IFSC_CNGS_NUM) AS OFFR_CNT,
+               A.IFSC_LIGT_NUM AS LTC1_CNT,
+               A.IFSC_DELY_NUM AS LTC2_CNT,
+               A.IFSC_CNGS_NUM AS LTC3_CNT,
+               ((SELECT COUNT(1) AS CNT FROM TB_IFSC  WHERE DEL_YN = 'N')
+                   - A.IFSC_LIGT_NUM - A.IFSC_DELY_NUM - A.IFSC_CNGS_NUM) AS LTC0_CNT
+        FROM TB_TRFC_PRCN_STAT A
+        WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        ORDER BY A.PRCN_DT
+    </select>
+
+    <select id="findAllByDateRangeROAD" parameterType="com.its.op.vo.analysis.OffrResultParam" resultType="com.its.op.vo.analysis.OffrResultVo">
+        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT,
+               (SELECT COUNT(1) AS CNT FROM TB_ROAD WHERE DEL_YN = 'N') AS TOT_CNT,
+               (A.ROAD_LIGT_NUM + A.ROAD_DELY_NUM + A.ROAD_CNGS_NUM) AS OFFR_CNT,
+               A.ROAD_LIGT_NUM AS LTC1_CNT,
+               A.ROAD_DELY_NUM AS LTC2_CNT,
+               A.ROAD_CNGS_NUM AS LTC3_CNT,
+               ((SELECT COUNT(1) AS CNT FROM TB_ROAD  WHERE DEL_YN = 'N')
+                   - A.ROAD_LIGT_NUM - A.ROAD_DELY_NUM - A.ROAD_CNGS_NUM) AS LTC0_CNT
+        FROM TB_TRFC_PRCN_STAT A
+        WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        ORDER BY A.PRCN_DT
+    </select>
+
+    <select id="findAllByDateRangeVMS" parameterType="com.its.op.vo.analysis.OffrResultParam" resultType="com.its.op.vo.analysis.OffrResultVo">
+        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT,
+               (SELECT COUNT(1) AS CNT FROM TB_VMS_IFSC) AS TOT_CNT,
+               (A.VMS_IFSC_LIGT_NUM + A.VMS_IFSC_DELY_NUM + A.VMS_IFSC_CNGS_NUM) AS OFFR_CNT,
+               A.VMS_IFSC_LIGT_NUM AS LTC1_CNT,
+               A.VMS_IFSC_DELY_NUM AS LTC2_CNT,
+               A.VMS_IFSC_CNGS_NUM AS LTC3_CNT,
+               ((SELECT COUNT(1) AS CNT FROM TB_VMS_IFSC)
+                   - A.VMS_IFSC_LIGT_NUM - A.VMS_IFSC_DELY_NUM - A.VMS_IFSC_CNGS_NUM) AS LTC0_CNT
+        FROM TB_TRFC_PRCN_STAT A
+        WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        ORDER BY A.PRCN_DT
+    </select>
+
+</mapper>

+ 93 - 36
src/main/resources/mybatis/mapper/analysis/PtrnData.xml

@@ -3,43 +3,100 @@
 
 <mapper namespace="com.its.op.mapper.analysis.PtrnDataMapper">
 
-<!--
-    // 수집시스템 조회
-    SELECT CLCT_SYST_CD, CLCT_SYST_NM
-    FROM TB_CLCT_SYST_STUP
-    WHERE USE_YN = 'Y'
--->
+    <select id="findAllByDateRangeLINK" parameterType="com.its.op.vo.analysis.PtrnDataParam" resultType="com.its.op.vo.analysis.PtrnDataVo">
+        SELECT MAX(LINK_ID)     AS ID,
+               MAX(SECT_NAME)   AS SECT_NAME,
+               MAX(LINK_LENG)   AS SECT_LNGT,
+               MAX(DAY_TYPE_CD) AS DAY_TYPE_CD,
+               MAX(STAT_HM)     AS PTRN_HM,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, SPED,    0)) AS BASE_SPED,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, TRVL_HH, 0)) AS BASE_TRVL_HH,
+               MAX(DECODE(STAT_YM, #{cond.COMP_MN}, SPED,    0)) AS COMP_SPED,
+               MAX(DECODE(STAT_YM, #{cond.COMP_MN}, TRVL_HH, 0)) AS COMP_TRVL_HH,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, SPED,    0)) - MAX(DECODE(STAT_YM, #{cond.COMP_MN}, SPED,    0)) AS DIFF_SPED,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, TRVL_HH, 0)) - MAX(DECODE(STAT_YM, #{cond.COMP_MN}, TRVL_HH, 0)) AS DIFF_TRVL_HH
+        FROM (SELECT B.STAT_YM, A.LINK_ID AS LINK_ID, SECT_NAME, A.LINK_LENG AS LINK_LENG,
+                     B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH
+              FROM (SELECT T2.LINK_ID, T2.F_NODE, T2.T_NODE, T2.LINK_LENG, T3.NODE_NAME||'-'||T4.NODE_NAME SECT_NAME,
+                           T2.SECT_GRAD_CD
+                    FROM TB_LINK T2, TB_NODE T3, TB_NODE T4
+                    WHERE T2.LINK_ID = #{cond.ID}
+                      AND T2.F_NODE  = T3.NODE_ID
+                      AND T2.T_NODE  = T4.NODE_ID
+                   ) A,
+                   (SELECT STAT_YM, LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH
+                    FROM ${cond.TABLE_NAME}
+                    WHERE LINK_ID = #{cond.ID}
+                      AND STAT_YM IN ( #{cond.BASE_MN}, #{cond.COMP_MN} )
+                      AND STAT_HM BETWEEN #{cond.FROM_HM} AND #{cond.TO_HM}
+                      AND DAY_TYPE_CD = #{cond.PTRN_WEEK}
+                   ) B
+              WHERE A.LINK_ID = B.LINK_ID
+             )
+        GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM
+        ORDER BY STAT_HM
+    </select>
+
+    <select id="findAllByDateRangeIFSC" parameterType="com.its.op.vo.analysis.PtrnDataParam" resultType="com.its.op.vo.analysis.PtrnDataVo">
+        SELECT MAX(LINK_ID)     AS ID,
+               MAX(SECT_NAME)   As SECT_NAME,
+               MAX(LINK_LENG)   AS SECT_LNGT,
+               MAX(DAY_TYPE_CD) AS DAY_TYPE_CD,
+               MAX(STAT_HM)     AS PTRN_HM,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, SPED,    0)) AS BASE_SPED,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, TRVL_HH, 0)) AS BASE_TRVL_HH,
+               MAX(DECODE(STAT_YM, #{cond.COMP_MN}, SPED,    0)) AS COMP_SPED,
+               MAX(DECODE(STAT_YM, #{cond.COMP_MN}, TRVL_HH, 0)) AS COMP_TRVL_HH,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, SPED,    0)) - MAX(DECODE(STAT_YM, #{cond.COMP_MN}, SPED,    0)) AS DIFF_SPED,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, TRVL_HH, 0)) - MAX(DECODE(STAT_YM, #{cond.COMP_MN}, TRVL_HH, 0)) AS DIFF_TRVL_HH
+        FROM (SELECT B.STAT_YM, A.LINK_ID AS LINK_ID, SECT_NAME, A.LINK_LENG LINK_LENG,
+                     B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH
+              FROM (SELECT T2.IFSC_ID LINK_ID, T2.SECT_LNGT LINK_LENG, T2.STRT_NM||'-'||T2.END_NM SECT_NAME, T2.SECT_GRAD_CD
+                    FROM TB_IFSC T2
+                    WHERE T2.IFSC_ID = ${cond.ID}
+                   ) A,
+                   (SELECT STAT_YM, IFSC_ID LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH
+                    FROM ${cond.TABLE_NAME}
+                    WHERE IFSC_ID = #{cond.ID}
+                      AND STAT_YM IN ( #{cond.BASE_MN}, #{cond.COMP_MN} )
+                      AND STAT_HM BETWEEN #{cond.FROM_HM} AND #{cond.TO_HM}
+                      AND DAY_TYPE_CD = #{cond.PTRN_WEEK}
+                   ) B
+              WHERE A.LINK_ID = B.LINK_ID
+             )
+        GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM
+        ORDER BY STAT_HM
+    </select>
 
-    <select id="findAllByDateRange" parameterType="com.its.op.vo.analysis.PtrnDataParam" resultType="com.its.op.vo.analysis.PtrnDataVo">
-        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT
-               ,A.OPER01+A.VDS01+A.MOCT01+A.UTIS01+A.UTIS02+B.MISS_NUM AS PRCN_TOT
-               ,A.OPER01
-               ,A.VDS01
-               ,A.MOCT01
-               ,A.UTIS01
-               ,A.UTIS02
-               ,B.MISS_NUM
-               ,B.ADJS_NUM
-               ,B.SMTH_NUM
-        FROM (SELECT A.PRCN_DT
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'OPER01', A.FUSN_NUM, 0)) AS OPER01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'VDS01',  A.FUSN_NUM, 0)) AS VDS01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'MOCT01', A.FUSN_NUM, 0)) AS MOCT01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS01', A.FUSN_NUM, 0)) AS UTIS01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS02', A.FUSN_NUM, 0)) AS UTIS02
-              FROM TB_CLCT_SYST_STTS_HS A
-              WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
-                AND A.CLCT_SYST_CD IN (SELECT CLCT_SYST_CD
-                                       FROM TB_CLCT_SYST_STUP
-                                       WHERE USE_YN = 'Y')
-              GROUP BY A.PRCN_DT
-             ) A,
-             (SELECT PRCN_DT, MISS_NUM, ADJS_NUM, SMTH_NUM
-              FROM TB_TRFC_PRCN_STAT
-              WHERE PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
-             ) B
-        WHERE A.PRCN_DT = B.PRCN_DT
-        ORDER BY A.PRCN_DT
+    <select id="findAllByDateRangeROAD" parameterType="com.its.op.vo.analysis.PtrnDataParam" resultType="com.its.op.vo.analysis.PtrnDataVo">
+        SELECT MAX(LINK_ID)     AS ID,
+               MAX(SECT_NAME)   AS SECT_NAME,
+               MAX(LINK_LENG)   AS SECT_LNGT,
+               MAX(DAY_TYPE_CD) AS DAY_TYPE_CD,
+               MAX(STAT_HM)     AS PTRN_HM,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, SPED,    0)) AS BASE_SPED,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, TRVL_HH, 0)) AS BASE_TRVL_HH,
+               MAX(DECODE(STAT_YM, #{cond.COMP_MN}, SPED,    0)) AS COMP_SPED,
+               MAX(DECODE(STAT_YM, #{cond.COMP_MN}, TRVL_HH, 0)) AS COMP_TRVL_HH,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, SPED,    0)) - MAX(DECODE(STAT_YM, #{cond.COMP_MN}, SPED,    0)) AS DIFF_SPED,
+               MAX(DECODE(STAT_YM, #{cond.BASE_MN}, TRVL_HH, 0)) - MAX(DECODE(STAT_YM, #{cond.COMP_MN}, TRVL_HH, 0)) AS DIFF_TRVL_HH
+        FROM (SELECT B.STAT_YM, A.LINK_ID LINK_ID, SECT_NAME, A.LINK_LENG LINK_LENG,
+                     B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH
+              FROM (SELECT T2.ROAD_ID LINK_ID, T2.SECT_LNGT LINK_LENG, T2.STRT_NM||'-'||T2.END_NM SECT_NAME, T2.SECT_GRAD_CD
+                    FROM TB_ROAD T2
+                    WHERE T2.ROAD_ID = #{cond.ID}
+                   ) A,
+                   (SELECT STAT_YM, ROAD_ID LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH
+                    FROM ${cond.TABLE_NAME}
+                    WHERE ROAD_ID = #{cond.ID}
+                      AND STAT_YM IN ( #{cond.BASE_MN}, #{cond.COMP_MN} )
+                      AND STAT_HM BETWEEN #{cond.FROM_HM} AND #{cond.TO_HM}
+                      AND DAY_TYPE_CD = #{cond.PTRN_WEEK}
+                   ) B
+              WHERE A.LINK_ID = B.LINK_ID
+             )
+        GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM
+        ORDER BY STAT_HM
     </select>
 
 </mapper>

+ 32 - 0
src/main/resources/mybatis/mapper/analysis/ReptCngs.xml

@@ -0,0 +1,32 @@
+<?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.op.mapper.analysis.ReptCngsMapper">
+
+    <select id="findAllByDateRange" parameterType="com.its.op.vo.analysis.ReptCngsParam" resultType="com.its.op.vo.analysis.ReptCngsVo">
+        SELECT (SELECT '['||CMMN_CD||'] ' || CMMN_CD_KOR_NM
+                  FROM TB_CMMN_CD
+                 WHERE CMMN_CLSF_CD = 'DTW'
+                   AND CMMN_CD      = A.DAY_TYPE_CD
+               ) AS DAY_TYPE_NM,
+               A.STAT_YM, A.IFSC_ID,
+               B.IFSC_NM, B.STRT_NM, B.END_NM, B.SECT_LNGT,
+               A.CNFS_STRT_HM, A.CNFS_END_HM, A.AVRG_SPED, A.AVRG_TRVL_HH,
+               A.DCSN_YN, A.CRTN_YMD,
+               (SELECT CMMN_CD_KOR_NM
+                FROM TB_CMMN_CD
+                WHERE CMMN_CLSF_CD = 'RCS'
+                  AND CMMN_CD      = A.REPT_CNGS_SECT_ORGN_CD
+               ) AS REPT_CNGS_SECT_ORGN_NM
+        FROM TB_REPT_CNGS_SECT A,
+             TB_IFSC           B
+        WHERE B.DEL_YN      = 'N'
+          AND A.IFSC_ID     = B.IFSC_ID
+          AND A.STAT_YM     = #{cond.BASE_MN}
+        <if test="cond.DAY_TYPE_CD != 'ALL'">
+          AND A.DAY_TYPE_CD = #{cond.DAY_TYPE_CD}
+        </if>
+        ORDER BY A.CNFS_STRT_HM
+    </select>
+
+</mapper>

+ 76 - 37
src/main/resources/mybatis/mapper/analysis/TrafHist.xml

@@ -3,43 +3,82 @@
 
 <mapper namespace="com.its.op.mapper.analysis.TrafHistMapper">
 
-<!--
-    // 수집시스템 조회
-    SELECT CLCT_SYST_CD, CLCT_SYST_NM
-    FROM TB_CLCT_SYST_STUP
-    WHERE USE_YN = 'Y'
--->
-
-    <select id="findAllByDateRange" parameterType="com.its.op.vo.analysis.TrafHistParam" resultType="com.its.op.vo.analysis.TrafHistVo">
-        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT
-               ,A.OPER01+A.VDS01+A.MOCT01+A.UTIS01+A.UTIS02+B.MISS_NUM AS PRCN_TOT
-               ,A.OPER01
-               ,A.VDS01
-               ,A.MOCT01
-               ,A.UTIS01
-               ,A.UTIS02
-               ,B.MISS_NUM
-               ,B.ADJS_NUM
-               ,B.SMTH_NUM
-        FROM (SELECT A.PRCN_DT
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'OPER01', A.FUSN_NUM, 0)) AS OPER01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'VDS01',  A.FUSN_NUM, 0)) AS VDS01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'MOCT01', A.FUSN_NUM, 0)) AS MOCT01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS01', A.FUSN_NUM, 0)) AS UTIS01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS02', A.FUSN_NUM, 0)) AS UTIS02
-              FROM TB_CLCT_SYST_STTS_HS A
-              WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
-                AND A.CLCT_SYST_CD IN (SELECT CLCT_SYST_CD
-                                       FROM TB_CLCT_SYST_STUP
-                                       WHERE USE_YN = 'Y')
-              GROUP BY A.PRCN_DT
-             ) A,
-             (SELECT PRCN_DT, MISS_NUM, ADJS_NUM, SMTH_NUM
-              FROM TB_TRFC_PRCN_STAT
-              WHERE PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
-             ) B
-        WHERE A.PRCN_DT = B.PRCN_DT
-        ORDER BY A.PRCN_DT
+    <select id="findAllByDateRangeLINK" parameterType="com.its.op.vo.analysis.TrafHistParam" resultType="com.its.op.vo.analysis.TrafHistVo">
+        <![CDATA[
+        SELECT A.STAT_DT, FN_TODATEFMT(A.STAT_DT) AS PRCN_DT_FMT, COUNT(A.LINK_ID) AS DATA_CNT
+        FROM TB_LINK_15M_STAT A, TB_LINK B
+        WHERE B.DEL_YN = 'N'
+          AND A.LINK_ID = B.LINK_ID
+          AND A.STAT_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        GROUP BY A.STAT_DT
+        ORDER BY A.STAT_DT
+        ]]>
+    </select>
+
+    <select id="findAllByDateRangeIFSC" parameterType="com.its.op.vo.analysis.TrafHistParam" resultType="com.its.op.vo.analysis.TrafHistVo">
+        <![CDATA[
+        SELECT A.STAT_DT, FN_TODATEFMT(A.STAT_DT) AS PRCN_DT_FMT, COUNT(A.IFSC_ID) AS DATA_CNT
+        FROM TB_IFSC_15M_STAT A, TB_IFSC B
+        WHERE B.DEL_YN = 'N'
+          AND A.IFSC_ID = B.IFSC_ID
+          AND A.STAT_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        GROUP BY A.STAT_DT
+        ORDER BY A.STAT_DT
+        ]]>
+    </select>
+
+    <select id="findAllByDateRangeROAD" parameterType="com.its.op.vo.analysis.TrafHistParam" resultType="com.its.op.vo.analysis.TrafHistVo">
+        <![CDATA[
+        SELECT A.STAT_DT, FN_TODATEFMT(A.STAT_DT) AS PRCN_DT_FMT, COUNT(A.ROAD_ID) AS DATA_CNT
+        FROM TB_ROAD_15M_STAT A, TB_ROAD B
+        WHERE B.DEL_YN = 'N'
+          AND A.ROAD_ID = B.ROAD_ID
+          AND A.STAT_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+        GROUP BY A.STAT_DT
+        ORDER BY A.STAT_DT
+        ]]>
+    </select>
+
+    <select id="findAllByDateRangeListLINK" parameterType="com.its.op.vo.analysis.TrafHistListParam" resultType="com.its.op.vo.analysis.TrafHistListVo">
+        <![CDATA[
+        SELECT A.LINK_ID AS ID, NVL(B.CMTR_GRAD_CD, 'LTC0') AS CMTR_GRAD_CD, C.SPED
+        FROM TB_LINK           A,
+             TB_CMTR_GRAD_CLSF B,
+             TB_LINK_15M_STAT  C
+        WHERE A.DEL_YN       = 'N'
+          AND A.LINK_ID      = C.LINK_ID
+          AND A.SECT_GRAD_CD = B.SECT_GRAD_CD
+          AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED)
+          AND STAT_DT =  #{cond.STAT_DT}
+        ]]>
+    </select>
+
+    <select id="findAllByDateRangeListIFSC" parameterType="com.its.op.vo.analysis.TrafHistListParam" resultType="com.its.op.vo.analysis.TrafHistListVo">
+        <![CDATA[
+        SELECT A.IFSC_ID AS ID, NVL(B.CMTR_GRAD_CD, 'LTC0') AS CMTR_GRAD_CD, C.SPED
+        FROM TB_IFSC           A,
+             TB_CMTR_GRAD_CLSF B,
+             TB_IFSC_15M_STAT  C
+        WHERE A.DEL_YN       = 'N'
+          AND A.IFSC_ID      = C.IFSC_ID
+          AND A.SECT_GRAD_CD = B.SECT_GRAD_CD
+          AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED)
+          AND STAT_DT =  #{cond.STAT_DT}
+        ]]>
+    </select>
+
+    <select id="findAllByDateRangeListROAD" parameterType="com.its.op.vo.analysis.TrafHistListParam" resultType="com.its.op.vo.analysis.TrafHistListVo">
+        <![CDATA[
+        SELECT A.ROAD_ID AS ID, NVL(B.CMTR_GRAD_CD, 'LTC0') AS CMTR_GRAD_CD, C.SPED
+        FROM TB_ROAD           A,
+             TB_CMTR_GRAD_CLSF B,
+             TB_ROAD_15M_STAT  C
+        WHERE A.DEL_YN       = 'N'
+          AND A.ROAD_ID      = C.ROAD_ID
+          AND A.SECT_GRAD_CD = B.SECT_GRAD_CD
+          AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED)
+          AND STAT_DT =  #{cond.STAT_DT}
+        ]]>
     </select>
 
 </mapper>

+ 0 - 45
src/main/resources/mybatis/mapper/analysis/TrafResult.xml

@@ -1,45 +0,0 @@
-<?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.op.mapper.analysis.TrafResultMapper">
-
-<!--
-    // 수집시스템 조회
-    SELECT CLCT_SYST_CD, CLCT_SYST_NM
-    FROM TB_CLCT_SYST_STUP
-    WHERE USE_YN = 'Y'
--->
-
-    <select id="findAllByDateRange" parameterType="com.its.op.vo.analysis.TrafResultParam" resultType="com.its.op.vo.analysis.TrafResultVo">
-        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT
-               ,A.OPER01+A.VDS01+A.MOCT01+A.UTIS01+A.UTIS02+B.MISS_NUM AS PRCN_TOT
-               ,A.OPER01
-               ,A.VDS01
-               ,A.MOCT01
-               ,A.UTIS01
-               ,A.UTIS02
-               ,B.MISS_NUM
-               ,B.ADJS_NUM
-               ,B.SMTH_NUM
-        FROM (SELECT A.PRCN_DT
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'OPER01', A.FUSN_NUM, 0)) AS OPER01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'VDS01',  A.FUSN_NUM, 0)) AS VDS01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'MOCT01', A.FUSN_NUM, 0)) AS MOCT01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS01', A.FUSN_NUM, 0)) AS UTIS01
-                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS02', A.FUSN_NUM, 0)) AS UTIS02
-              FROM TB_CLCT_SYST_STTS_HS A
-              WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
-                AND A.CLCT_SYST_CD IN (SELECT CLCT_SYST_CD
-                                       FROM TB_CLCT_SYST_STUP
-                                       WHERE USE_YN = 'Y')
-              GROUP BY A.PRCN_DT
-             ) A,
-             (SELECT PRCN_DT, MISS_NUM, ADJS_NUM, SMTH_NUM
-              FROM TB_TRFC_PRCN_STAT
-              WHERE PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
-             ) B
-        WHERE A.PRCN_DT = B.PRCN_DT
-        ORDER BY A.PRCN_DT
-    </select>
-
-</mapper>