shjung 2 лет назад
Родитель
Сommit
362a2e3905
33 измененных файлов с 431 добавлено и 170 удалено
  1. 18 32
      src/main/java/com/its/op/controller/its/rse/TbRseCtlrCnncHsController.java
  2. 18 7
      src/main/java/com/its/op/controller/its/rse/TbRseCtrlHsController.java
  3. 22 4
      src/main/java/com/its/op/controller/its/rse/TbRseObuClctHsController.java
  4. 18 4
      src/main/java/com/its/op/controller/its/rse/TbRseObuClctStatDdController.java
  5. 18 4
      src/main/java/com/its/op/controller/its/rse/TbRseObuClctStatHhController.java
  6. 5 0
      src/main/java/com/its/op/dao/repository/its/rse/TbRseCtlrCnncHsRepository.java
  7. 4 0
      src/main/java/com/its/op/dao/repository/its/rse/TbRseCtrlHsRepository.java
  8. 13 0
      src/main/java/com/its/op/dao/repository/its/rse/TbRseObuClctHsRepository.java
  9. 4 0
      src/main/java/com/its/op/dao/repository/its/rse/TbRseObuClctStatDdRepository.java
  10. 4 0
      src/main/java/com/its/op/dao/repository/its/rse/TbRseObuClctStatHhRepository.java
  11. 5 0
      src/main/java/com/its/op/dao/repository/its/rse/TbRseSectTrafHsRepository.java
  12. 35 1
      src/main/java/com/its/op/dto/its/cctv/TbCctvCtlrDto.java
  13. 9 50
      src/main/java/com/its/op/dto/its/rse/TbRseCtlrCnncHsDto.java
  14. 13 0
      src/main/java/com/its/op/dto/its/rse/TbRseCtrlHsDto.java
  15. 11 0
      src/main/java/com/its/op/dto/its/rse/TbRseObuClctHsDto.java
  16. 12 0
      src/main/java/com/its/op/dto/its/rse/TbRseObuClctStatDdDto.java
  17. 13 1
      src/main/java/com/its/op/dto/its/rse/TbRseObuClctStatHhDto.java
  18. 19 0
      src/main/java/com/its/op/dto/its/rse/TbRseSectTrafHsDto.java
  19. 15 0
      src/main/java/com/its/op/entity/its/cctv/TbCctvCtlr.java
  20. 3 3
      src/main/java/com/its/op/entity/its/cctv/TbCctvMonitoring.java
  21. 14 7
      src/main/java/com/its/op/entity/its/rse/TbRseCtlrCnncHs.java
  22. 15 5
      src/main/java/com/its/op/entity/its/rse/TbRseCtrlHs.java
  23. 15 1
      src/main/java/com/its/op/entity/its/rse/TbRseObuClctHs.java
  24. 15 1
      src/main/java/com/its/op/entity/its/rse/TbRseObuClctStatDd.java
  25. 14 1
      src/main/java/com/its/op/entity/its/rse/TbRseObuClctStatHh.java
  26. 17 1
      src/main/java/com/its/op/entity/its/rse/TbRseSectTrafHs.java
  27. 9 46
      src/main/java/com/its/op/service/its/rse/TbRseCtlrCnncHsService.java
  28. 12 0
      src/main/java/com/its/op/service/its/rse/TbRseCtrlHsService.java
  29. 23 0
      src/main/java/com/its/op/service/its/rse/TbRseObuClctHsService.java
  30. 12 0
      src/main/java/com/its/op/service/its/rse/TbRseObuClctStatDdService.java
  31. 12 0
      src/main/java/com/its/op/service/its/rse/TbRseObuClctStatHhService.java
  32. 12 0
      src/main/java/com/its/op/service/its/rse/TbRseSectTrafHsService.java
  33. 2 2
      src/main/java/com/its/op/service/its/vds/VdsControlService.java

+ 18 - 32
src/main/java/com/its/op/controller/its/rse/TbRseCtlrCnncHsController.java

@@ -1,10 +1,12 @@
 package com.its.op.controller.its.rse;
 
 import com.its.op.dto.its.rse.TbRseCtlrCnncHsDto;
+import com.its.op.dto.its.rse.TbRseCtlrSttsHsDto;
 import com.its.op.entity.its.rse.TbRseCtlrCnncHsKey;
 import com.its.op.service.its.rse.TbRseCtlrCnncHsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -21,10 +23,23 @@ public class TbRseCtlrCnncHsController {
 
     private final TbRseCtlrCnncHsService service;
 
-    @ApiOperation(value = "RSE 접속로그 이력 전체조회(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class, responseContainer = "ArrayList")
+//    @ApiOperation(value = "RSE 접속로그 이력 전체조회(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class, responseContainer = "ArrayList")
+//    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+//    public List<TbRseCtlrCnncHsDto> findAll() {
+//        return this.service.findAll();
+//    }
+
+    @ApiOperation(value = "RSE 접속로그 이력조회(TB_RSE_CTLR_STTS_HS)", response = TbRseCtlrCnncHsDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseCtlrCnncHsDto> findAll() {
-        return this.service.findAll();
+    public List<TbRseCtlrCnncHsDto> findAllByDateRange(
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24MI00)", example = "20210112152000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24MI59)", example = "20221112152000", required = true)
+            @RequestParam String TO_DT,
+            @ApiParam(name = "id", value = "RSE 관리번호 목록", example = "[00000001,00000002]", required = true)
+            @RequestParam List<Long> id
+    ) {
+        return this.service.findAllByDateRange(FROM_DT, TO_DT, id);
     }
 
     @ApiOperation(value = "RSE 접속로그 이력 개별조회(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class)
@@ -33,34 +48,5 @@ public class TbRseCtlrCnncHsController {
         return this.service.findById(id);
     }
 
-    @ApiOperation(value = "RSE 접속로그 이력 정보변경(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class)
-    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public TbRseCtlrCnncHsDto updateById(@PathVariable final TbRseCtlrCnncHsKey id, @RequestBody @Valid final TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq req) {
-        return this.service.updateById(id, req);
-    }
-
-    @ApiOperation(value = "RSE 접속로그 이력 정보변경/생성-목록(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class, responseContainer = "ArrayList")
-    @PostMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseCtlrCnncHsDto> mergeInfoList(@RequestBody @Valid final List<TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq> listReq) {
-        return this.service.mergeInfoList(listReq);
-    }
-
-    @ApiOperation(value = "RSE 접속로그 이력 정보변경/생성-개별(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class)
-    @PostMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public TbRseCtlrCnncHsDto mergeInfo(@PathVariable("id") TbRseCtlrCnncHsKey id, @RequestBody @Valid final TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq req) {
-        return this.service.mergeInfo(req);
-    }
-
-    @ApiOperation(value = "RSE 접속로그 이력 정보삭제-개별(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class)
-    @DeleteMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public TbRseCtlrCnncHsDto deleteDataById(@PathVariable("id") TbRseCtlrCnncHsKey id) {
-        return this.service.deleteById(id);
-    }
-
-    @ApiOperation(value = "RSE 접속로그 이력 정보삭제-목록(TB_RSE_CTLR_CNNC_HS)", response = TbRseCtlrCnncHsDto.class, responseContainer = "ArrayList")
-    @DeleteMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseCtlrCnncHsDto> deleteDataByIds(@RequestBody @Valid final List<TbRseCtlrCnncHsKey> ids) {
-        return this.service.deleteByIds(ids);
-    }
 
 }

+ 18 - 7
src/main/java/com/its/op/controller/its/rse/TbRseCtrlHsController.java

@@ -1,15 +1,14 @@
 package com.its.op.controller.its.rse;
 
+import com.its.op.dto.its.rse.TbRseCtlrSttsHsDto;
 import com.its.op.dto.its.rse.TbRseCtrlHsDto;
 import com.its.op.service.its.rse.TbRseCtrlHsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -22,10 +21,22 @@ public class TbRseCtrlHsController {
 
     private final TbRseCtrlHsService service;
 
-    @ApiOperation(value = "RSE 제어 이력 전체조회(TB_RSE_CTRL_HS)", response = TbRseCtrlHsDto.class, responseContainer = "ArrayList")
+//    @ApiOperation(value = "RSE 제어 이력 전체조회(TB_RSE_CTRL_HS)", response = TbRseCtrlHsDto.class, responseContainer = "ArrayList")
+//    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+//    public List<TbRseCtrlHsDto> findAll() {
+//        return this.service.findAll();
+//    }
+    @ApiOperation(value = "RSE 제어 이력조회(TB_RSE_CTLR_STTS_HS)", response = TbRseCtlrSttsHsDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseCtrlHsDto> findAll() {
-        return this.service.findAll();
+    public List<TbRseCtrlHsDto> findAllByDateRange(
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24MI00)", example = "20210112152000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24MI59)", example = "20221112152000", required = true)
+            @RequestParam String TO_DT,
+            @ApiParam(name = "id", value = "RSE 관리번호 목록", example = "[00000001,00000002]", required = true)
+            @RequestParam List<Long> id
+    ) {
+        return this.service.findAllByDateRange(FROM_DT, TO_DT, id);
     }
 
     @ApiOperation(value = "RSE 제어 이력 개별조회(TB_RSE_CTRL_HS)", response = TbRseCtrlHsDto.class)

+ 22 - 4
src/main/java/com/its/op/controller/its/rse/TbRseObuClctHsController.java

@@ -1,13 +1,16 @@
 package com.its.op.controller.its.rse;
 
 import com.its.op.dto.its.rse.TbRseObuClctHsDto;
+import com.its.op.dto.its.rse.TbRseSectTrafHsDto;
 import com.its.op.service.its.rse.TbRseObuClctHsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -21,10 +24,25 @@ public class TbRseObuClctHsController {
 
     private final TbRseObuClctHsService service;
 
-    @ApiOperation(value = "RSE OBU 수집 이력 전체조회(TB_RSE_OBU_CLCT_HS)", response = TbRseObuClctHsDto.class, responseContainer = "ArrayList")
+//    @ApiOperation(value = "RSE OBU 수집 이력 전체조회(TB_RSE_OBU_CLCT_HS)", response = TbRseObuClctHsDto.class, responseContainer = "ArrayList")
+//    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+//    public List<TbRseObuClctHsDto> findAll() {
+//        return this.service.findAll();
+//    }
+    @ApiOperation(value = "RSE OBU 수집 이력조회(TB_RSE_CTLR_STTS_HS)", response = TbRseObuClctHsDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseObuClctHsDto> findAll() {
-        return this.service.findAll();
+    public List<TbRseObuClctHsDto> findAllByDateRange(
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24MI00)", example = "20210112152000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24MI59)", example = "20221112152000", required = true)
+            @RequestParam String TO_DT,
+            @ApiParam(name = "TYPE", value = "차종", example = "00", required = true)
+            @RequestParam String TYPE,
+            @ApiParam(name = "KIND", value = "OBU 종류", example = "00", required = true)
+            @RequestParam String KIND,
+            @ApiParam(name = "id", value = "RSE 구간 목록", example = "[00000001,00000002]", required = true)
+            @RequestParam List<Long> id
+    ) {
+        return this.service.findAllByDateRange(FROM_DT, TO_DT, TYPE, KIND, id);
     }
-
 }

+ 18 - 4
src/main/java/com/its/op/controller/its/rse/TbRseObuClctStatDdController.java

@@ -1,13 +1,16 @@
 package com.its.op.controller.its.rse;
 
 import com.its.op.dto.its.rse.TbRseObuClctStatDdDto;
+import com.its.op.dto.its.rse.TbRseObuClctStatHhDto;
 import com.its.op.service.its.rse.TbRseObuClctStatDdService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -21,11 +24,22 @@ public class TbRseObuClctStatDdController {
 
     private final TbRseObuClctStatDdService service;
 
-    @ApiOperation(value = "RSE OBU 수집 일 통계 전체조회(TB_RSE_OBU_CLCT_STAT_DD)", response = TbRseObuClctStatDdDto.class, responseContainer = "ArrayList")
+//    @ApiOperation(value = "RSE OBU 수집 일 통계 전체조회(TB_RSE_OBU_CLCT_STAT_DD)", response = TbRseObuClctStatDdDto.class, responseContainer = "ArrayList")
+//    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+//    public List<TbRseObuClctStatDdDto> findAll() {
+//        return this.service.findAll();
+//    }
+    @ApiOperation(value = "RSE OBU 일 통계조회(TB_RSE_OBU_CLCT_STAT_DD)", response = TbRseObuClctStatDdDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseObuClctStatDdDto> findAll() {
-        return this.service.findAll();
+    public List<TbRseObuClctStatDdDto> findAllByDateRange(
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24MI00)", example = "20210112152000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24MI59)", example = "20221112152000", required = true)
+            @RequestParam String TO_DT,
+            @ApiParam(name = "id", value = "수집구간 번호 목록", example = "[00000001,00000002]", required = true)
+            @RequestParam List<Long> id
+    ) {
+        return this.service.findAllByDateRange(FROM_DT, TO_DT, id);
     }
 
-
 }

+ 18 - 4
src/main/java/com/its/op/controller/its/rse/TbRseObuClctStatHhController.java

@@ -1,13 +1,16 @@
 package com.its.op.controller.its.rse;
 
+import com.its.op.dto.its.rse.TbRseObuClctHsDto;
 import com.its.op.dto.its.rse.TbRseObuClctStatHhDto;
 import com.its.op.service.its.rse.TbRseObuClctStatHhService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -21,11 +24,22 @@ public class TbRseObuClctStatHhController {
 
     private final TbRseObuClctStatHhService service;
 
-    @ApiOperation(value = "RSE OBU 수집 시간 통계 전체조회(TB_RSE_OBU_CLCT_STAT_HH)", response = TbRseObuClctStatHhDto.class, responseContainer = "ArrayList")
+//    @ApiOperation(value = "RSE OBU 수집 시간 통계 전체조회(TB_RSE_OBU_CLCT_STAT_HH)", response = TbRseObuClctStatHhDto.class, responseContainer = "ArrayList")
+//    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+//    public List<TbRseObuClctStatHhDto> findAll() {
+//        return this.service.findAll();
+//    }
+    @ApiOperation(value = "RSE OBU 수집 시간 통계 조회(TB_RSE_OBU_CLCT_STAT_HH)", response = TbRseObuClctStatHhDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
-    public List<TbRseObuClctStatHhDto> findAll() {
-        return this.service.findAll();
+    public List<TbRseObuClctStatHhDto> findAllByDateRange(
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24MI00)", example = "20210112152000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24MI59)", example = "20221112152000", required = true)
+            @RequestParam String TO_DT,
+            @ApiParam(name = "id", value = "수집구간 번호 목록", example = "[00000001,00000002]", required = true)
+            @RequestParam List<Long> id
+    ) {
+        return this.service.findAllByDateRange(FROM_DT, TO_DT, id);
     }
 
-
 }

+ 5 - 0
src/main/java/com/its/op/dao/repository/its/rse/TbRseCtlrCnncHsRepository.java

@@ -2,9 +2,11 @@ package com.its.op.dao.repository.its.rse;
 
 import com.its.op.entity.its.rse.TbRseCtlrCnncHs;
 import com.its.op.entity.its.rse.TbRseCtlrCnncHsKey;
+import com.its.op.entity.its.rse.TbRseCtlrSttsHs;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,4 +20,7 @@ public interface TbRseCtlrCnncHsRepository extends JpaRepository<TbRseCtlrCnncHs
     @Query("select p from TbRseCtlrCnncHs p")
     List<TbRseCtlrCnncHs> findAllList();
 
+    @Query("select p from TbRseCtlrCnncHs p inner join fetch p.rse where p.clctDt between :fromDt and :toDt and p.rseCtlrNmbr in :ids")
+    List<TbRseCtlrCnncHs> findAllByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
+
 }

+ 4 - 0
src/main/java/com/its/op/dao/repository/its/rse/TbRseCtrlHsRepository.java

@@ -1,9 +1,11 @@
 package com.its.op.dao.repository.its.rse;
 
+import com.its.op.entity.its.rse.TbRseCtlrSttsHs;
 import com.its.op.entity.its.rse.TbRseCtrlHs;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -17,4 +19,6 @@ public interface TbRseCtrlHsRepository extends JpaRepository<TbRseCtrlHs, Long>,
     @Query("select p from TbRseCtrlHs p")
     List<TbRseCtrlHs> findAllList();
 
+    @Query("select p from TbRseCtrlHs p inner join fetch p.rse where p.cntlDt between :fromDt and :toDt and p.rseCtlrNmbr in :ids")
+    List<TbRseCtrlHs> findAllByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
 }

+ 13 - 0
src/main/java/com/its/op/dao/repository/its/rse/TbRseObuClctHsRepository.java

@@ -2,9 +2,11 @@ package com.its.op.dao.repository.its.rse;
 
 import com.its.op.entity.its.rse.TbRseObuClctHs;
 import com.its.op.entity.its.rse.TbRseObuClctHsKey;
+import com.its.op.entity.its.rse.TbRseSectTrafHs;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,4 +20,15 @@ public interface TbRseObuClctHsRepository extends JpaRepository<TbRseObuClctHs,
     @Query("select p from TbRseObuClctHs p")
     List<TbRseObuClctHs> findAllList();
 
+    @Query("select p from TbRseObuClctHs p inner join fetch p.rse where p.clctDt between :fromDt and :toDt and p.obuKind = :kind and p.rseCtlrNmbr in :ids")
+    List<TbRseObuClctHs> findAllCtypByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("kind") String kind, @Param("ids") List<Long> ids);
+
+    @Query("select p from TbRseObuClctHs p inner join fetch p.rse where p.clctDt between :fromDt and :toDt and p.ctyp = :type and p.rseCtlrNmbr in :ids")
+    List<TbRseObuClctHs> findAllKindByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("type") String type, @Param("ids") List<Long> ids);
+
+    @Query("select p from TbRseObuClctHs p inner join fetch p.rse where p.clctDt between :fromDt and :toDt and p.rseCtlrNmbr in :ids")
+    List<TbRseObuClctHs> findAllByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
+
+    @Query("select p from TbRseObuClctHs p inner join fetch p.rse where p.clctDt between :fromDt and :toDt and p.ctyp = :type and p.obuKind = :kind and p.rseCtlrNmbr in :ids")
+    List<TbRseObuClctHs> findAllCKByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("type") String type, @Param("kind") String kind, @Param("ids") List<Long> ids);
 }

+ 4 - 0
src/main/java/com/its/op/dao/repository/its/rse/TbRseObuClctStatDdRepository.java

@@ -2,9 +2,11 @@ package com.its.op.dao.repository.its.rse;
 
 import com.its.op.entity.its.rse.TbRseObuClctStatDd;
 import com.its.op.entity.its.rse.TbRseObuClctStatDdKey;
+import com.its.op.entity.its.rse.TbRseObuClctStatHh;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,4 +20,6 @@ public interface TbRseObuClctStatDdRepository extends JpaRepository<TbRseObuClct
     @Query("select p from TbRseObuClctStatDd p")
     List<TbRseObuClctStatDd> findAllList();
 
+    @Query("select p from TbRseObuClctStatDd p inner join fetch p.rse where p.statDt between :fromDt and :toDt and p.rseCtlrNmbr in :ids")
+    List<TbRseObuClctStatDd> findAllByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
 }

+ 4 - 0
src/main/java/com/its/op/dao/repository/its/rse/TbRseObuClctStatHhRepository.java

@@ -1,10 +1,12 @@
 package com.its.op.dao.repository.its.rse;
 
+import com.its.op.entity.its.rse.TbRseObuClctHs;
 import com.its.op.entity.its.rse.TbRseObuClctStatHh;
 import com.its.op.entity.its.rse.TbRseObuClctStatHhKey;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,4 +20,6 @@ public interface TbRseObuClctStatHhRepository extends JpaRepository<TbRseObuClct
     @Query("select p from TbRseObuClctStatHh p")
     List<TbRseObuClctStatHh> findAllList();
 
+    @Query("select p from TbRseObuClctStatHh p inner join fetch p.rse where p.statDt between :fromDt and :toDt and p.rseCtlrNmbr in :ids")
+    List<TbRseObuClctStatHh> findAllByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
 }

+ 5 - 0
src/main/java/com/its/op/dao/repository/its/rse/TbRseSectTrafHsRepository.java

@@ -1,10 +1,12 @@
 package com.its.op.dao.repository.its.rse;
 
+import com.its.op.entity.its.rse.TbRseCtlrCnncHs;
 import com.its.op.entity.its.rse.TbRseSectTrafHs;
 import com.its.op.entity.its.rse.TbRseSectTrafHsKey;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,4 +20,7 @@ public interface TbRseSectTrafHsRepository extends JpaRepository<TbRseSectTrafHs
     @Query("select p from TbRseSectTrafHs p")
     List<TbRseSectTrafHs> findAllList();
 
+    @Query("select p from TbRseSectTrafHs p inner join fetch p.rse where p.prcnDt between :fromDt and :toDt and p.rseSectId in :ids")
+    List<TbRseSectTrafHs> findAllByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
+
 }

+ 35 - 1
src/main/java/com/its/op/dto/its/cctv/TbCctvCtlrDto.java

@@ -160,6 +160,18 @@ public class TbCctvCtlrDto implements Serializable {
     @JsonProperty("del_yn")
     private String delYn;
 
+    @ApiModelProperty("RTC 서버 아이피")  // Y VARCHAR2(20)
+    @JsonProperty("rtc_svr_ip")
+    private String rtcSvrIp;
+
+    @ApiModelProperty("RTC 서버 포트")  // Y NUMBER(5)
+    @JsonProperty("rtc_svr_port")
+    private Integer rtcSvrPort;
+
+    @ApiModelProperty("RTC ID")  // Y VARCHAR2(56)
+    @JsonProperty("rtc_id")
+    private String rtcId;
+
     // Code Description Field
     @ApiModelProperty("CCTV 유형 코드('CCTVT') 설명")
     @JsonProperty("cctv_type_desc")    // CCTV_TYPE_CD
@@ -339,6 +351,21 @@ public class TbCctvCtlrDto implements Serializable {
         @Pattern(regexp = "[YN]")
         private String useYn;
 
+        @ApiModelProperty("RTC 서버 아이피, Nullable = Y, VARCHAR2(20)")  // Y VARCHAR2(20)
+        @JsonProperty("rtc_svr_ip")
+        @Size(max=20)
+        private String rtcSvrIp;
+
+        @ApiModelProperty("RTC 서버 포트, Nullable = Y, NUMBER(5)")  // Y NUMBER(5)
+        @JsonProperty("rtc_svr_port")
+        @PositiveOrZero
+        private Integer rtcSvrPort;
+
+        @ApiModelProperty("RTC ID, Nullable = Y, VARCHAR2(56)")  // Y VARCHAR2(56)
+        @JsonProperty("rtc_id")
+        @Size(max=56)
+        private String rtcId;
+
         @ApiModelProperty("팬 ON 온도, Nullable = Y, NUMBER(3)")  // Y NUMBER(3)
         @JsonProperty("fan_on_tmpr")
         @PositiveOrZero
@@ -367,7 +394,8 @@ public class TbCctvCtlrDto implements Serializable {
 
         @Builder
         public TbCctvCtlrUpdReq(Long cctv_ctlr_nmbr, String cctv_ctlr_id, String cctv_nm, String istl_lctn_nm, String istl_lctn_addr, String cctv_ctlr_ip, Integer cctv_ctlr_port, Integer cctv_ctlr_local_no, String cctv_type_cd, String cctv_capt_ip, Integer cctv_capt_port, String strm_svr_ip, Integer strm_svr_port, String strm_sesn_nm, Double x_crdn, Double y_crdn, String strm_rtsp_addr, String strm_http_addr, String intr_http_addr,
-                                String web_rtc_svr_ip, Integer web_rtc_svr_port, String web_rtc_id, Integer altt_imag_nmbr, String altt_imag_dspl_yn, String syop_cntl_yn, Long link_id, Long node_id, String cctv_id, String cctv_area_dvsn, String use_yn, Integer fan_on_tmpr, Integer fan_off_tmpr, Integer hetr_on_tmpr, Integer hetr_off_tmpr, String del_yn) {
+                                String web_rtc_svr_ip, Integer web_rtc_svr_port, String web_rtc_id, Integer altt_imag_nmbr, String altt_imag_dspl_yn, String syop_cntl_yn, Long link_id, Long node_id, String cctv_id, String cctv_area_dvsn, String use_yn, Integer fan_on_tmpr, Integer fan_off_tmpr, Integer hetr_on_tmpr, Integer hetr_off_tmpr, String del_yn,
+                                String rtc_svr_ip, Integer rtc_svr_port, String rtc_id) {
             this.cctvCtlrNmbr = cctv_ctlr_nmbr;
             this.cctvCtlrId = cctv_ctlr_id;
             this.cctvNm = cctv_nm;
@@ -403,6 +431,9 @@ public class TbCctvCtlrDto implements Serializable {
             this.hetrOnTmpr = hetr_on_tmpr;
             this.hetrOffTmpr = hetr_off_tmpr;
             this.delYn = del_yn;
+            this.rtcSvrIp = rtc_svr_ip;
+            this.rtcSvrPort = rtc_svr_port;
+            this.rtcId = rtc_id;
         }
 
         public TbCctvCtlr toEntity() {
@@ -442,6 +473,9 @@ public class TbCctvCtlrDto implements Serializable {
                     .hetrOnTmpr(this.hetrOnTmpr)
                     .hetrOffTmpr(this.hetrOffTmpr)
                     .delYn(this.delYn)
+                    .rtcSvrIp(this.rtcSvrIp)
+                    .rtcSvrPort(this.rtcSvrPort)
+                    .rtcId(this.rtcId)
                     .build();
         }
 

+ 9 - 50
src/main/java/com/its/op/dto/its/rse/TbRseCtlrCnncHsDto.java

@@ -40,57 +40,16 @@ public class TbRseCtlrCnncHsDto implements Serializable {
     private String logAddress;
 
     // Code Description Field
-    @ApiModel("TbRseCtlrCnncHsUpdReq(RSE 접속로그 이력 정보변경)")
-    @Getter
-    @Setter
-    @ToString
-    @NoArgsConstructor//(access = AccessLevel.PROTECTED)
-    public static class TbRseCtlrCnncHsUpdReq {
+    @ApiModelProperty("RSE 제어기 ID")  // Y VARCHAR2(30)
+    @JsonProperty("rse_ctlr_id")
+    private String rseCtlrId;
 
-        @ApiModelProperty("RSE 제어기 번호, Nullable = N, NUMBER(10)")  // N NUMBER(10)
-        @JsonProperty("rse_ctlr_nmbr")
-        @PositiveOrZero
-        private Long rseCtlrNmbr;
+    @ApiModelProperty("RSE 명칭")  // Y VARCHAR2(40)
+    @JsonProperty("rse_nm")
+    private String rseNm;
 
-        @ApiModelProperty("수집 일시, Nullable = N, VARCHAR2(14)")  // N VARCHAR2(14)
-        @JsonProperty("clct_dt")
-        @Size(min=1, max=14)
-        private String clctDt;
-
-        @ApiModelProperty("로그 유형, Nullable = Y, VARCHAR2(7)")  // Y VARCHAR2(7)
-        @JsonProperty("log_type")
-        @Size(min=1, max=7)
-        private String logType;
-
-        @ApiModelProperty("로그 ID, Nullable = Y, VARCHAR2(64)")  // Y VARCHAR2(64)
-        @JsonProperty("log_id")
-        @Size(min=1, max=64)
-        private String logId;
-
-        @ApiModelProperty("로그 ADDRESS, Nullable = Y, VARCHAR2(20)")  // Y VARCHAR2(20)
-        @JsonProperty("log_address")
-        @Size(min=1, max=20)
-        private String logAddress;
-
-        @Builder
-        public TbRseCtlrCnncHsUpdReq(Long rse_ctlr_nmbr, String clct_dt, String log_type, String log_id, String log_address) {
-            this.rseCtlrNmbr = rse_ctlr_nmbr;
-            this.clctDt = clct_dt;
-            this.logType = log_type;
-            this.logId = log_id;
-            this.logAddress = log_address;
-        }
-
-        public TbRseCtlrCnncHs toEntity() {
-            return TbRseCtlrCnncHs.builder()
-                    .rseCtlrNmbr(this.rseCtlrNmbr)
-                    .clctDt(this.clctDt)
-                    .logType(this.logType)
-                    .logId(this.logId)
-                    .logAddress(this.logAddress)
-                    .build();
-        }
-
-    }
+    @ApiModelProperty("설치 위치 명")  // Y VARCHAR2(40)
+    @JsonProperty("istl_lctn_nm")
+    private String istlLctnNm;
 
 }

+ 13 - 0
src/main/java/com/its/op/dto/its/rse/TbRseCtrlHsDto.java

@@ -45,4 +45,17 @@ public class TbRseCtrlHsDto implements Serializable {
     @JsonProperty("user_id")
     private String userId;
 
+    // Code Description Field
+    @ApiModelProperty("RSE 제어기 ID")  // Y VARCHAR2(30)
+    @JsonProperty("rse_ctlr_id")
+    private String rseCtlrId;
+
+    @ApiModelProperty("RSE 명칭")  // Y VARCHAR2(40)
+    @JsonProperty("rse_nm")
+    private String rseNm;
+
+    @ApiModelProperty("설치 위치 명")  // Y VARCHAR2(40)
+    @JsonProperty("istl_lctn_nm")
+    private String istlLctnNm;
+
 }

+ 11 - 0
src/main/java/com/its/op/dto/its/rse/TbRseObuClctHsDto.java

@@ -37,6 +37,17 @@ public class TbRseObuClctHsDto implements Serializable {
     @JsonProperty("obu_kind")
     private String obuKind;
 
+    @ApiModelProperty("RSE 제어기 ID")  // Y VARCHAR2(30)
+    @JsonProperty("rse_ctlr_id")
+    private String rseCtlrId;
+
+    @ApiModelProperty("RSE 명칭")  // Y VARCHAR2(40)
+    @JsonProperty("rse_nm")
+    private String rseNm;
+
+    @ApiModelProperty("설치 위치 명")  // Y VARCHAR2(40)
+    @JsonProperty("istl_lctn_nm")
+    private String istlLctnNm;
     // Code Description Field
 
 }

+ 12 - 0
src/main/java/com/its/op/dto/its/rse/TbRseObuClctStatDdDto.java

@@ -33,6 +33,18 @@ public class TbRseObuClctStatDdDto implements Serializable {
     @JsonProperty("clct_num")
     private Integer clctNum;
 
+    @ApiModelProperty("RSE 제어기 ID")  // Y VARCHAR2(30)
+    @JsonProperty("rse_ctlr_id")
+    private String rseCtlrId;
+
+    @ApiModelProperty("RSE 명칭")  // Y VARCHAR2(40)
+    @JsonProperty("rse_nm")
+    private String rseNm;
+
+    @ApiModelProperty("설치 위치 명")  // Y VARCHAR2(40)
+    @JsonProperty("istl_lctn_nm")
+    private String istlLctnNm;
+
     // Code Description Field
     @ApiModelProperty("요일 유형 코드 설명")
     @JsonProperty("day_type_desc")    // DAY_TYPE_CD

+ 13 - 1
src/main/java/com/its/op/dto/its/rse/TbRseObuClctStatHhDto.java

@@ -33,9 +33,21 @@ public class TbRseObuClctStatHhDto implements Serializable {
     @JsonProperty("clct_num")
     private Integer clctNum;
 
-    // Code Description Field
     @ApiModelProperty("요일 유형 코드 설명")
     @JsonProperty("day_type_desc")    // DAY_TYPE_CD
     private String dayTypeDesc;
 
+    @ApiModelProperty("RSE 제어기 ID")  // Y VARCHAR2(30)
+    @JsonProperty("rse_ctlr_id")
+    private String rseCtlrId;
+
+    @ApiModelProperty("RSE 명칭")  // Y VARCHAR2(40)
+    @JsonProperty("rse_nm")
+    private String rseNm;
+
+    @ApiModelProperty("설치 위치 명")  // Y VARCHAR2(40)
+    @JsonProperty("istl_lctn_nm")
+    private String istlLctnNm;
+    // Code Description Field
+
 }

+ 19 - 0
src/main/java/com/its/op/dto/its/rse/TbRseSectTrafHsDto.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 
+import javax.persistence.Column;
 import java.io.Serializable;
 
 /**
@@ -38,5 +39,23 @@ public class TbRseSectTrafHsDto implements Serializable {
     private Integer trvlHh;
 
     // Code Description Field
+    @ApiModelProperty("시작 지점 명")  // Y VARCHAR2(60)
+    @JsonProperty("strt_spot_nm")
+    private String strtSpotNm;
 
+    @ApiModelProperty("종료 지점 명")  // Y VARCHAR2(60)
+    @JsonProperty("end_spot_nm")
+    private String endSpotNm;
+
+    @ApiModelProperty("삭제 여부")  // Y CHAR(1)
+    @JsonProperty("del_yn")
+    private String delYn;
+
+    @ApiModelProperty("시작 RSE 제어기 번호")  // N NUMBER(10)
+    @JsonProperty("strt_rse_ctlr_nmbr")
+    private Long strtRseCtlrNmbr;
+
+    @ApiModelProperty("종료 RSE 제어기 번호")  // N NUMBER(10)
+    @JsonProperty("end_rse_ctlr_nmbr")
+    private Long endRseCtlrNmbr;
 }

+ 15 - 0
src/main/java/com/its/op/entity/its/cctv/TbCctvCtlr.java

@@ -170,6 +170,18 @@ public class TbCctvCtlr implements Serializable {
     @Column(name = "DEL_YN", columnDefinition = "CHAR", length = 1)
     private String delYn;
 
+    @ApiModelProperty("RTC 서버 아이피")  // Y VARCHAR2(20)
+    @Column(name = "RTC_SVR_IP", length = 20)
+    private String rtcSvrIp;
+
+    @ApiModelProperty("RTC 서버 포트")  // Y NUMBER(5)
+    @Column(name = "RTC_SVR_PORT", columnDefinition = "NUMBER", length = 5)
+    private Integer rtcSvrPort;
+
+    @ApiModelProperty("RTC ID")  // Y VARCHAR2(56)
+    @Column(name = "RTC_ID", length = 56)
+    private String rtcId;
+
     @OneToOne
     @JoinColumn(insertable=false, updatable=false, name="CCTV_CTLR_NMBR", referencedColumnName = "CCTV_CTLR_NMBR")
     @NotFound(action = NotFoundAction.IGNORE)
@@ -216,6 +228,9 @@ public class TbCctvCtlr implements Serializable {
                 .hetrOnTmpr(this.hetrOnTmpr)
                 .hetrOffTmpr(this.hetrOffTmpr)
                 .delYn(this.delYn)
+                .rtcSvrIp(this.rtcSvrIp)
+                .rtcSvrPort(this.rtcSvrPort)
+                .rtcId(this.rtcId)
                 .build();
         dto.setCctvTypeDesc(CodeManager.getCodeDesc(CodeManager.CCTV_TYPE_CD, dto.getCctvTypeCd()));
         return dto;

+ 3 - 3
src/main/java/com/its/op/entity/its/cctv/TbCctvMonitoring.java

@@ -71,9 +71,9 @@ public class TbCctvMonitoring implements Serializable {
             dto.setIstlLctnNm(this.cctv.getIstlLctnNm());
             dto.setStrmRtmpAddr(this.cctv.getStrmSesnNm());
             dto.setStrmHttpAddr(this.cctv.getStrmHttpAddr());
-            dto.setWebRtcSvrIp(this.cctv.getWebRtcSvrIp());
-            dto.setWebRtcSvrPort(this.cctv.getWebRtcSvrPort());
-            dto.setWebRtcId(this.cctv.getWebRtcId());
+            dto.setWebRtcSvrIp(this.cctv.getRtcSvrIp());
+            dto.setWebRtcSvrPort(this.cctv.getRtcSvrPort());
+            dto.setWebRtcId(this.cctv.getRtcId());
         }
         else {
             dto.setCctvCtlrId("-");

+ 14 - 7
src/main/java/com/its/op/entity/its/rse/TbRseCtlrCnncHs.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -47,14 +49,25 @@ public class TbRseCtlrCnncHs implements Serializable {
     @Column(name = "LOG_ADDRESS", length = 20)
     private String logAddress;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="RSE_CTLR_NMBR", referencedColumnName = "RSE_CTLR_NMBR")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbRseCtlr rse;
+
     public TbRseCtlrCnncHsDto toDto() {
-        return TbRseCtlrCnncHsDto.builder()
+        TbRseCtlrCnncHsDto dto = TbRseCtlrCnncHsDto.builder()
                 .rseCtlrNmbr(this.rseCtlrNmbr)
                 .clctDt(this.clctDt)
                 .logType(this.logType)
                 .logId(this.logId)
                 .logAddress(this.logAddress)
                 .build();
+        if (this.rse != null) {
+            dto.setRseCtlrId(this.rse.getRseCtlrId());
+            dto.setRseNm(this.rse.getRseNm());
+            dto.setIstlLctnNm(this.rse.getIstlLctnNm());
+        }
+        return dto;
     }
 
     public TbRseCtlrCnncHs(Long rseCtlrNmbr, String clctDt) {
@@ -62,10 +75,4 @@ public class TbRseCtlrCnncHs implements Serializable {
         this.clctDt = clctDt;
     }
 
-    public void updateInfo(TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq req) {
-        this.logType = req.getLogType();
-        this.logId = req.getLogId();
-        this.logAddress = req.getLogAddress();
-    }
-
 }

+ 15 - 5
src/main/java/com/its/op/entity/its/rse/TbRseCtrlHs.java

@@ -7,11 +7,10 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
 import java.io.Serializable;
 
 /**
@@ -56,11 +55,16 @@ public class TbRseCtrlHs implements Serializable {
     @Column(name = "USER_ID", length = 20)
     private String userId;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="RSE_CTLR_NMBR", referencedColumnName = "RSE_CTLR_NMBR")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbRseCtlr rse;
+
     public void setResult(String rspsType) {
         this.rspsType = rspsType;
     }
     public TbRseCtrlHsDto toDto() {
-        return TbRseCtrlHsDto.builder()
+        TbRseCtrlHsDto dto = TbRseCtrlHsDto.builder()
                 .ctrlSeq(this.ctrlSeq)
                 .rseCtlrNmbr(this.rseCtlrNmbr)
                 .cntlDt(this.cntlDt)
@@ -69,6 +73,12 @@ public class TbRseCtrlHs implements Serializable {
                 .rspsType(this.rspsType)
                 .userId(this.userId)
                 .build();
+        if (this.rse != null) {
+            dto.setRseCtlrId(this.rse.getRseCtlrId());
+            dto.setRseNm(this.rse.getRseNm());
+            dto.setIstlLctnNm(this.rse.getIstlLctnNm());
+        }
+        return dto;
     }
 
     public TbRseCtrlHs(Long ctrlSeq) {

+ 15 - 1
src/main/java/com/its/op/entity/its/rse/TbRseObuClctHs.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -48,14 +50,26 @@ public class TbRseObuClctHs implements Serializable {
     @Column(name = "OBU_KIND", length = 7)
     private String obuKind;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="RSE_CTLR_NMBR", referencedColumnName = "RSE_CTLR_NMBR")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbRseCtlr rse;
+
     public TbRseObuClctHsDto toDto() {
-        return TbRseObuClctHsDto.builder()
+        TbRseObuClctHsDto dto = TbRseObuClctHsDto.builder()
                 .rseCtlrNmbr(this.rseCtlrNmbr)
                 .clctDt(this.clctDt)
                 .obuIdntNmbr(this.obuIdntNmbr)
                 .ctyp(this.ctyp)
                 .obuKind(this.obuKind)
                 .build();
+        if (this.rse != null) {
+            dto.setRseCtlrNmbr(this.rse.getRseCtlrNmbr());
+            dto.setRseCtlrId(this.rse.getRseCtlrId());
+            dto.setIstlLctnNm(this.rse.getIstlLctnNm());
+            dto.setRseNm(this.rse.getRseNm());
+        }
+        return dto;
     }
 
     public TbRseObuClctHs(Long rseCtlrNmbr, String clctDt, String obuIdntNmbr) {

+ 15 - 1
src/main/java/com/its/op/entity/its/rse/TbRseObuClctStatDd.java

@@ -1,12 +1,15 @@
 package com.its.op.entity.its.rse;
 
 import com.its.op.dto.its.rse.TbRseObuClctStatDdDto;
+import com.its.op.dto.its.rse.TbRseObuClctStatHhDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -43,13 +46,24 @@ public class TbRseObuClctStatDd implements Serializable {
     @Column(name = "CLCT_NUM", columnDefinition = "NUMBER", length = 7)
     private Integer clctNum;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="RSE_CTLR_NMBR", referencedColumnName = "RSE_CTLR_NMBR")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbRseCtlr rse;
+
     public TbRseObuClctStatDdDto toDto() {
-        return TbRseObuClctStatDdDto.builder()
+        TbRseObuClctStatDdDto dto = TbRseObuClctStatDdDto.builder()
                 .statDt(this.statDt)
                 .rseCtlrNmbr(this.rseCtlrNmbr)
                 .dayTypeCd(this.dayTypeCd)
                 .clctNum(this.clctNum)
                 .build();
+        if (this.rse != null) {
+            dto.setRseCtlrId(this.rse.getRseCtlrId());
+            dto.setIstlLctnNm(this.rse.getIstlLctnNm());
+            dto.setRseNm(this.rse.getRseNm());
+        }
+        return dto;
     }
 
     public TbRseObuClctStatDd(String statDt, Long rseCtlrNmbr) {

+ 14 - 1
src/main/java/com/its/op/entity/its/rse/TbRseObuClctStatHh.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -43,13 +45,24 @@ public class TbRseObuClctStatHh implements Serializable {
     @Column(name = "CLCT_NUM", columnDefinition = "NUMBER", length = 7)
     private Integer clctNum;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="RSE_CTLR_NMBR", referencedColumnName = "RSE_CTLR_NMBR")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbRseCtlr rse;
+
     public TbRseObuClctStatHhDto toDto() {
-        return TbRseObuClctStatHhDto.builder()
+        TbRseObuClctStatHhDto dto = TbRseObuClctStatHhDto.builder()
                 .statDt(this.statDt)
                 .rseCtlrNmbr(this.rseCtlrNmbr)
                 .dayTypeCd(this.dayTypeCd)
                 .clctNum(this.clctNum)
                 .build();
+        if (this.rse != null) {
+            dto.setRseCtlrId(this.rse.getRseCtlrId());
+            dto.setIstlLctnNm(this.rse.getIstlLctnNm());
+            dto.setRseNm(this.rse.getRseNm());
+        }
+        return dto;
     }
 
     public TbRseObuClctStatHh(String statDt, Long rseCtlrNmbr) {

+ 17 - 1
src/main/java/com/its/op/entity/its/rse/TbRseSectTrafHs.java

@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.NotFound;
+import org.hibernate.annotations.NotFoundAction;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -47,14 +49,28 @@ public class TbRseSectTrafHs implements Serializable {
     @Column(name = "TRVL_HH", columnDefinition = "NUMBER", length = 6)
     private Integer trvlHh;
 
+    @OneToOne
+    @JoinColumn(insertable=false, updatable=false, name="RSE_SECT_ID", referencedColumnName = "RSE_SECT_ID")
+    @NotFound(action = NotFoundAction.IGNORE)
+    private TbRseSect rse;
+
     public TbRseSectTrafHsDto toDto() {
-        return TbRseSectTrafHsDto.builder()
+        TbRseSectTrafHsDto dto = TbRseSectTrafHsDto.builder()
                 .rseSectId(this.rseSectId)
                 .prcnDt(this.prcnDt)
                 .tfvl(this.tfvl)
                 .trvlSped(this.trvlSped)
                 .trvlHh(this.trvlHh)
                 .build();
+        if (this.rse != null) {
+            dto.setRseSectId(this.rse.getRseSectId());
+            dto.setStrtSpotNm(this.rse.getStrtSpotNm());
+            dto.setEndSpotNm(this.rse.getEndSpotNm());
+            dto.setStrtRseCtlrNmbr(this.rse.getStrtRseCtlrNmbr());
+            dto.setEndRseCtlrNmbr(this.rse.getEndRseCtlrNmbr());
+        }
+
+        return dto;
     }
 
     public TbRseSectTrafHs(Long rseSectId, String prcnDt) {

+ 9 - 46
src/main/java/com/its/op/service/its/rse/TbRseCtlrCnncHsService.java

@@ -2,8 +2,10 @@ package com.its.op.service.its.rse;
 
 import com.its.op.dao.repository.its.rse.TbRseCtlrCnncHsRepository;
 import com.its.op.dto.its.rse.TbRseCtlrCnncHsDto;
+import com.its.op.dto.its.rse.TbRseCtlrSttsHsDto;
 import com.its.op.entity.its.rse.TbRseCtlrCnncHs;
 import com.its.op.entity.its.rse.TbRseCtlrCnncHsKey;
+import com.its.op.entity.its.rse.TbRseCtlrSttsHs;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -52,55 +54,16 @@ public class TbRseCtlrCnncHsService {
         return entity.toDto();
     }
 
-    // 데이터 변경
-    @Transactional
-    public TbRseCtlrCnncHsDto updateById(TbRseCtlrCnncHsKey id, TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq req) {
-        TbRseCtlrCnncHs entity = requireOne(id);
-        entity.updateInfo(req);
-        this.repo.save(entity);
-        return entity.toDto();
-    }
-
-    // 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
-    @Transactional
-    public List<TbRseCtlrCnncHsDto> mergeInfoList(List<TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq> reqList) {
-        List<TbRseCtlrCnncHsDto> result = new ArrayList<>();
-        for (TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq req : reqList) {
-            TbRseCtlrCnncHs obj = req.toEntity();
-            this.repo.save(obj);
-            result.add(obj.toDto());
-        }
-        return result;
-    }
 
-    // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
-    @Transactional
-    public TbRseCtlrCnncHsDto mergeInfo(TbRseCtlrCnncHsDto.TbRseCtlrCnncHsUpdReq req) {
-        TbRseCtlrCnncHs obj = req.toEntity();
-        this.repo.save(obj);
-        return obj.toDto();
-    }
-
-    // 정보 삭제-개별, 데이터 존재하지 않으면 Exception
-    @Transactional
-    public TbRseCtlrCnncHsDto deleteById(TbRseCtlrCnncHsKey id) {
-        TbRseCtlrCnncHs entity = requireOne(id);
-        this.repo.deleteById(id);
-        return entity.toDto();
-    }
-
-    // 정보 삭제-목록, 존재하는 데이터 만 삭제
-    @Transactional
-    public List<TbRseCtlrCnncHsDto> deleteByIds(List<TbRseCtlrCnncHsKey> ids) {
+    @Transactional(readOnly = true)
+    public List<TbRseCtlrCnncHsDto> findAllByDateRange(String fromDt, String toDt, List<Long> ids) {
         List<TbRseCtlrCnncHsDto> result = new ArrayList<>();
-        for (TbRseCtlrCnncHsKey id : ids) {
-            Optional<TbRseCtlrCnncHs> obj = this.repo.findById(id);
-            if (obj.isPresent()) {
-                this.repo.deleteById(id);
-                result.add(obj.get().toDto());
-            }
+        List<TbRseCtlrCnncHs> data = this.repo.findAllByDateRange(fromDt, toDt, ids);
+        if (data != null) {
+            data.forEach(obj -> {
+                result.add(obj.toDto());
+            });
         }
         return result;
     }
-
 }

+ 12 - 0
src/main/java/com/its/op/service/its/rse/TbRseCtrlHsService.java

@@ -1,7 +1,9 @@
 package com.its.op.service.its.rse;
 
 import com.its.op.dao.repository.its.rse.TbRseCtrlHsRepository;
+import com.its.op.dto.its.rse.TbRseCtlrSttsHsDto;
 import com.its.op.dto.its.rse.TbRseCtrlHsDto;
+import com.its.op.entity.its.rse.TbRseCtlrSttsHs;
 import com.its.op.entity.its.rse.TbRseCtrlHs;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -51,4 +53,14 @@ public class TbRseCtrlHsService {
         return entity.toDto();
     }
 
+    public List<TbRseCtrlHsDto> findAllByDateRange(String fromDt, String toDt, List<Long> ids) {
+        List<TbRseCtrlHsDto> result = new ArrayList<>();
+        List<TbRseCtrlHs> data = this.repo.findAllByDateRange(fromDt, toDt, ids);
+        if (data != null) {
+            data.forEach(obj -> {
+                  result.add(obj.toDto());
+            });
+        }
+        return result;
+    }
 }

+ 23 - 0
src/main/java/com/its/op/service/its/rse/TbRseObuClctHsService.java

@@ -52,4 +52,27 @@ public class TbRseObuClctHsService {
         return entity.toDto();
     }
 
+    @Transactional(readOnly = true)
+    public List<TbRseObuClctHsDto> findAllByDateRange(String fromDt, String toDt, String type, String kind, List<Long> ids) {
+        List<TbRseObuClctHsDto> result = new ArrayList<>();
+        List<TbRseObuClctHs> data = new ArrayList<>();
+        if (type.equals("00") && !kind.equals("00")) {
+            data = this.repo.findAllCtypByDateRange(fromDt, toDt, kind, ids);
+        }
+        else if (!type.equals("00") && kind.equals("00")) {
+            data = this.repo.findAllKindByDateRange(fromDt, toDt, type, ids);
+        }
+        else if (type.equals("00") && kind.equals("00")) {
+            data = this.repo.findAllByDateRange(fromDt, toDt, ids);
+        }
+        else {
+            data = this.repo.findAllCKByDateRange(fromDt, toDt, type, kind, ids);
+        }
+        if (data != null) {
+            data.forEach(obj -> {
+                result.add(obj.toDto());
+            });
+        }
+        return result;
+    }
 }

+ 12 - 0
src/main/java/com/its/op/service/its/rse/TbRseObuClctStatDdService.java

@@ -2,8 +2,10 @@ package com.its.op.service.its.rse;
 
 import com.its.op.dao.repository.its.rse.TbRseObuClctStatDdRepository;
 import com.its.op.dto.its.rse.TbRseObuClctStatDdDto;
+import com.its.op.dto.its.rse.TbRseObuClctStatHhDto;
 import com.its.op.entity.its.rse.TbRseObuClctStatDd;
 import com.its.op.entity.its.rse.TbRseObuClctStatDdKey;
+import com.its.op.entity.its.rse.TbRseObuClctStatHh;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -45,4 +47,14 @@ public class TbRseObuClctStatDdService {
         return result;
     }
 
+    public List<TbRseObuClctStatDdDto> findAllByDateRange(String fromDt, String toDt, List<Long> ids) {
+        List<TbRseObuClctStatDdDto> result = new ArrayList<>();
+        List<TbRseObuClctStatDd> data = this.repo.findAllByDateRange(fromDt, toDt, ids);
+        if (data != null) {
+            data.forEach(obj -> {
+                result.add(obj.toDto());
+            });
+        }
+        return result;
+    }
 }

+ 12 - 0
src/main/java/com/its/op/service/its/rse/TbRseObuClctStatHhService.java

@@ -1,7 +1,9 @@
 package com.its.op.service.its.rse;
 
 import com.its.op.dao.repository.its.rse.TbRseObuClctStatHhRepository;
+import com.its.op.dto.its.rse.TbRseObuClctHsDto;
 import com.its.op.dto.its.rse.TbRseObuClctStatHhDto;
+import com.its.op.entity.its.rse.TbRseObuClctHs;
 import com.its.op.entity.its.rse.TbRseObuClctStatHh;
 import com.its.op.entity.its.rse.TbRseObuClctStatHhKey;
 import lombok.RequiredArgsConstructor;
@@ -45,4 +47,14 @@ public class TbRseObuClctStatHhService {
         return result;
     }
 
+    public List<TbRseObuClctStatHhDto> findAllByDateRange(String fromDt, String toDt, List<Long> ids) {
+        List<TbRseObuClctStatHhDto> result = new ArrayList<>();
+        List<TbRseObuClctStatHh> data = this.repo.findAllByDateRange(fromDt, toDt, ids);
+        if (data != null) {
+            data.forEach(obj -> {
+                result.add(obj.toDto());
+            });
+        }
+        return result;
+    }
 }

+ 12 - 0
src/main/java/com/its/op/service/its/rse/TbRseSectTrafHsService.java

@@ -1,7 +1,9 @@
 package com.its.op.service.its.rse;
 
 import com.its.op.dao.repository.its.rse.TbRseSectTrafHsRepository;
+import com.its.op.dto.its.rse.TbRseCtlrCnncHsDto;
 import com.its.op.dto.its.rse.TbRseSectTrafHsDto;
+import com.its.op.entity.its.rse.TbRseCtlrCnncHs;
 import com.its.op.entity.its.rse.TbRseSectTrafHs;
 import com.its.op.entity.its.rse.TbRseSectTrafHsKey;
 import lombok.RequiredArgsConstructor;
@@ -45,4 +47,14 @@ public class TbRseSectTrafHsService {
         return result;
     }
 
+    public List<TbRseSectTrafHsDto> findAllByDateRange(String fromDt, String toDt, List<Long> ids) {
+        List<TbRseSectTrafHsDto> result = new ArrayList<>();
+        List<TbRseSectTrafHs> data = this.repo.findAllByDateRange(fromDt, toDt, ids);
+        if (data != null) {
+            data.forEach(obj -> {
+                result.add(obj.toDto());
+            });
+        }
+        return result;
+    }
 }

+ 2 - 2
src/main/java/com/its/op/service/its/vds/VdsControlService.java

@@ -234,9 +234,9 @@ public class VdsControlService {
 
         String ipAddress = this.config.getIpAddress();
         int port = this.config.getPort();
-        int taskTimeout = 6000; // milli-seconds
+        int taskTimeout = 20000; // milli-seconds
         int connectTimeout = 3000; // milli-seconds
-        int readTimeout = 4000; // milli-seconds
+        int readTimeout = 20000; // milli-seconds
 
         ExecutorService executorService = Executors.newSingleThreadExecutor();
         Callable<Integer> task = new Callable<Integer>() {