Pārlūkot izejas kodu

시설물 상태정보 조회 API 뷰테이블 사용하는 것 삭제

shjung 3 gadi atpakaļ
vecāks
revīzija
c6a902a5b4

+ 5 - 6
src/main/java/com/its/api/its/controller/common/CommonController.java

@@ -2,7 +2,6 @@ package com.its.api.its.controller.common;
 
 import com.its.api.its.model.dto.code.TbClctSystStupDto;
 import com.its.api.its.model.dto.common.CongestTrafficDto;
-import com.its.api.its.model.dto.common.WeatherInfoDto;
 import com.its.api.its.service.code.TbClctSystStupService;
 import com.its.api.its.service.common.CommonService;
 import io.swagger.annotations.Api;
@@ -38,10 +37,10 @@ public class CommonController {
         return this.commonService.findAllCongestTraffic();
     }
 
-    @ApiOperation(value = "현재기상정보조회", response = WeatherInfoDto.class, responseContainer = "ArrayList")
-    @GetMapping(value = "/weather-info", produces = {"application/json; charset=utf8"})
-    public List<WeatherInfoDto> findAllWeatherInfo() {
-        return this.commonService.findAllWeatherInfo();
-    }
+//    @ApiOperation(value = "현재기상정보조회", response = WeatherInfoDto.class, responseContainer = "ArrayList")
+//    @GetMapping(value = "/weather-info", produces = {"application/json; charset=utf8"})
+//    public List<WeatherInfoDto> findAllWeatherInfo() {
+//        return this.commonService.findAllWeatherInfo();
+//    }
 
 }

+ 13 - 14
src/main/java/com/its/api/its/controller/management/FacilityController.java

@@ -1,9 +1,8 @@
 package com.its.api.its.controller.management;
 
-import com.its.api.its.model.dto.view.VwFcltSttsCntDto;
-import com.its.api.its.model.dto.view.VwFcltSttsDto;
-import com.its.api.its.service.view.VwFcltSttsCntService;
-import com.its.api.its.service.view.VwFcltSttsService;
+import com.its.api.its.model.dto.facility.FcltSttsCntDto;
+import com.its.api.its.model.dto.facility.FcltSttsDto;
+import com.its.api.its.service.common.CommonSttsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -14,25 +13,25 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
-@Api(tags = "00.교통상황관리-0.메인-2.시설물xxxxxxxxx")
+@Api(tags = "00.교통상황관리-0.메인-2.시설물")
 @Validated
 @RestController
 @RequiredArgsConstructor
-@RequestMapping("/api-temp/manage/main/fclt")
+@RequestMapping("/api/manage/main/fclt")
 public class FacilityController {
 
-    private final VwFcltSttsService fcltSttsService;
-    private final VwFcltSttsCntService fcltSttsCntService;
+    private final CommonSttsService service;
 
-    @ApiOperation(value = "시설물 상태(VW_FCLT_STTS)", response = VwFcltSttsDto.class, responseContainer = "ArrayList")
+
+    @ApiOperation(value = "시설물 상태", response = FcltSttsDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/stts", produces = {"application/json; charset=utf8"})
-    public List<VwFcltSttsDto> findFcltSttsAll() {
-        return this.fcltSttsService.findAll();
+    public List<FcltSttsDto> findFcltSttsAll() {
+        return this.service.findFcltSttsAll();
     }
 
-    @ApiOperation(value = "시설물 상태 현황(VW_FCLT_STTS_CNT)", response = VwFcltSttsCntDto.class, responseContainer = "ArrayList")
+    @ApiOperation(value = "시설물 상태 현황", response = FcltSttsCntDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/stts-cnt", produces = {"application/json; charset=utf8"})
-    public List<VwFcltSttsCntDto> findFcltSttsCntAll() {
-        return this.fcltSttsCntService.findAll();
+    public List<FcltSttsCntDto> findFcltSttsCntAll() {
+        return this.service.findFcltSttsCntAll();
     }
 }

+ 7 - 3
src/main/java/com/its/api/its/model/dto/view/VwFcltSttsCntDto.java → src/main/java/com/its/api/its/model/dto/facility/FcltSttsCntDto.java

@@ -1,10 +1,12 @@
-package com.its.api.its.model.dto.view;
+package com.its.api.its.model.dto.facility;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 
@@ -13,8 +15,10 @@ import java.io.Serializable;
  */
 @Data
 @Builder
-@ApiModel("VwFcltSttsCntDto(시설물현황)")
-public class VwFcltSttsCntDto implements Serializable {
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("FcltSttsCntDto(시설물현황)")
+public class FcltSttsCntDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("시설물유형")  // Y VARCHAR(4)

+ 12 - 8
src/main/java/com/its/api/its/model/dto/view/VwFcltSttsDto.java → src/main/java/com/its/api/its/model/dto/facility/FcltSttsDto.java

@@ -1,10 +1,12 @@
-package com.its.api.its.model.dto.view;
+package com.its.api.its.model.dto.facility;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 
@@ -13,8 +15,10 @@ import java.io.Serializable;
  */
 @Data
 @Builder
-@ApiModel("VwFcltSttsDto(시설물 상태정보)")
-public class VwFcltSttsDto implements Serializable {
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("FcltSttsDto(시설물 상태정보)")
+public class FcltSttsDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("시설물유형")  // Y VARCHAR(4)
@@ -45,23 +49,23 @@ public class VwFcltSttsDto implements Serializable {
     @JsonProperty("y_crdn")
     private Double yCrdn;
 
-    @ApiModelProperty("")  // Y VARCHAR(1)
+    @ApiModelProperty("상태코드")  // Y VARCHAR(1)
     @JsonProperty("stts_cd")
     private String sttsCd;
 
-    @ApiModelProperty("")  // Y VARCHAR(4)
+    @ApiModelProperty("상태코드 설명")  // Y VARCHAR(4)
     @JsonProperty("stts_desc")
     private String sttsDesc;
 
-    @ApiModelProperty("")  // Y VARCHAR(200)
+    @ApiModelProperty("영상주소")  // Y VARCHAR(200)
     @JsonProperty("strm_url")
     private String strmUrl;
 
-    @ApiModelProperty("")  // Y VARCHAR(65532)
+    @ApiModelProperty("시설물정보1")  // Y VARCHAR(65532)
     @JsonProperty("fclt_info1")
     private String fcltInfo1;
 
-    @ApiModelProperty("")  // Y CHAR(0)
+    @ApiModelProperty("시설물정보2")  // Y CHAR(0)
     @JsonProperty("fclt_info2")
     private String fcltInfo2;
 

+ 0 - 92
src/main/java/com/its/api/its/model/entity/view/VwFcltStts.java

@@ -1,92 +0,0 @@
-package com.its.api.its.model.entity.view;
-
-import com.its.api.its.model.dto.view.VwFcltSttsDto;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-/**
- *  Entity Class
- */
-@Getter
-@NoArgsConstructor(access = AccessLevel.PROTECTED)
-@Builder
-@AllArgsConstructor
-@ApiModel("시설물 상태정보")
-@Entity
-@Table(name = "VW_FCLT_STTS")
-@IdClass(VwFcltSttsKey.class)
-public class VwFcltStts implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("시설물유형")  // Y VARCHAR(4)
-    @Id
-    @Column(name = "FCLT_TYPE", length = 4)
-    private String fcltType;
-
-    @ApiModelProperty("시설물아이디")  // Y VARCHAR(30)
-    @Id
-    @Column(name = "FCLT_ID", length = 30)
-    private String fcltId;
-
-    @ApiModelProperty("시설물명")  // Y VARCHAR(100)
-    @Column(name = "FCLT_NM", length = 100)
-    private String fcltNm;
-
-    @ApiModelProperty("시설물관리번호")  // Y VARCHAR(256)
-    @Column(name = "FCLT_NMBR", length = 256)
-    private String fcltNmbr;
-
-    @ApiModelProperty("시설물종류")  // Y VARCHAR(32)
-    @Column(name = "FCLT_KIND", length = 32)
-    private String fcltKind;
-
-    @ApiModelProperty("위치X좌표")  // Y NUMBER(0)
-    @Column(name = "X_CRDN", columnDefinition = "NUMBER", length = 0)
-    private Double xCrdn;
-
-    @ApiModelProperty("위치Y좌표")  // Y NUMBER(0)
-    @Column(name = "Y_CRDN", columnDefinition = "NUMBER", length = 0)
-    private Double yCrdn;
-
-    @ApiModelProperty("상태코드")  // Y VARCHAR(1)
-    @Column(name = "STTS_CD", length = 1)
-    private String sttsCd;
-
-    @ApiModelProperty("상태코드설명")  // Y VARCHAR(4)
-    @Column(name = "STTS_DESC", length = 4)
-    private String sttsDesc;
-
-    @ApiModelProperty("스트림주소")  // Y VARCHAR(200)
-    @Column(name = "STRM_URL", length = 200)
-    private String strmUrl;
-
-    @ApiModelProperty("정보1")  // Y VARCHAR(65532)
-    @Column(name = "FCLT_INFO1", length = 200)
-    private String fcltInfo1;
-
-    @ApiModelProperty("정보2")  // Y CHAR(0)
-    @Column(name = "FCLT_INFO2", columnDefinition="CHAR", length = 200)
-    private String fcltInfo2;
-
-    public VwFcltSttsDto toDto() {
-        return VwFcltSttsDto.builder()
-                .fcltType(this.fcltType)
-                .fcltId(this.fcltId)
-                .fcltNm(this.fcltNm)
-                .fcltNmbr(this.fcltNmbr)
-                .fcltKind(this.fcltKind)
-                .xCrdn(this.xCrdn)
-                .yCrdn(this.yCrdn)
-                .sttsCd(this.sttsCd)
-                .sttsDesc(this.sttsDesc)
-                .strmUrl(this.strmUrl)
-                .fcltInfo1(this.fcltInfo1)
-                .fcltInfo2(this.fcltInfo2)
-                .build();
-    }
-
-}

+ 0 - 58
src/main/java/com/its/api/its/model/entity/view/VwFcltSttsCnt.java

@@ -1,58 +0,0 @@
-package com.its.api.its.model.entity.view;
-
-import com.its.api.its.model.dto.view.VwFcltSttsCntDto;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import java.io.Serializable;
-
-/**
- *  Entity Class
- */
-@Getter
-@NoArgsConstructor(access = AccessLevel.PROTECTED)
-@Builder
-@AllArgsConstructor
-@ApiModel("시설물현황")
-@Entity
-@Table(name = "VW_FCLT_STTS_CNT")
-public class VwFcltSttsCnt implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("시설물유형")  // Y VARCHAR(4)
-    @Id
-    @Column(name = "FCLT_TYPE", length = 4)
-    private String fcltType;
-
-    @ApiModelProperty("시설물명")  // Y VARCHAR(100)
-    @Column(name = "FCLT_NM", length = 100)
-    private String fcltNm;
-
-    @ApiModelProperty("전체개수")  // Y NUMBER(0)
-    @Column(name = "TOTAL_CNT", columnDefinition = "NUMBER", length = 3)
-    private Integer totalCnt;
-
-    @ApiModelProperty("정상개수")  // Y NUMBER(0)
-    @Column(name = "NORMAL_CNT", columnDefinition = "NUMBER", length = 3)
-    private Integer normalCnt;
-
-    @ApiModelProperty("오류개수")  // Y NUMBER(0)
-    @Column(name = "ERROR_CNT", columnDefinition = "NUMBER", length = 3)
-    private Integer errorCnt;
-
-    public VwFcltSttsCntDto toDto() {
-        return VwFcltSttsCntDto.builder()
-                .fcltType(this.fcltType)
-                .fcltNm(this.fcltNm)
-                .totalCnt(this.totalCnt)
-                .normalCnt(this.normalCnt)
-                .errorCnt(this.errorCnt)
-                .build();
-    }
-
-}

+ 0 - 22
src/main/java/com/its/api/its/model/entity/view/VwFcltSttsKey.java

@@ -1,22 +0,0 @@
-package com.its.api.its.model.entity.view;
-
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-/**
- * VDS 제어기 상태 원시 Key Class
- */
-@Data
-@NoArgsConstructor(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class VwFcltSttsKey implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String fcltType;
-    private String fcltId;
-
-}

+ 1 - 1
src/main/java/com/its/api/its/repository/common/CommonMapper.java

@@ -9,5 +9,5 @@ import java.util.List;
 @Mapper
 public interface CommonMapper {
     List<CongestTrafficDto> findAllCongestTraffic();
-    List<WeatherInfoDto> findAllWeatherInfo();
+    //List<WeatherInfoDto> findAllWeatherInfo();
 }

+ 2 - 2
src/main/java/com/its/api/its/repository/ifsc/TbIfscTrafRepository.java

@@ -13,13 +13,13 @@ import java.util.Optional;
 @Repository
 public interface TbIfscTrafRepository extends JpaRepository<TbIfscTraf, Long>, JpaSpecificationExecutor<TbIfscTraf> {
 
-    @Query("select p from TbIfscTraf p inner join fetch p.ifsc ifsc")
+    @Query("select p from TbIfscTraf p inner join fetch p.ifsc ifsc inner join fetch ifsc.fromNode fnode inner join fetch ifsc.toNode tnode")
     List<TbIfscTraf> findAll();
 
     @Query("select p from TbIfscTraf p")
     List<TbIfscTraf> findAllTraf();
 
-    @Query("select p from TbIfscTraf p inner join fetch p.ifsc ifsc where p.ifscId = :ifscId")
+    @Query("select p from TbIfscTraf p inner join fetch p.ifsc ifsc inner join fetch ifsc.fromNode fnode inner join fetch ifsc.toNode tnode where p.ifscId = :ifscId")
     Optional<TbIfscTraf> findById(@Param("ifscId") Long ifscId);
 
 }

+ 2 - 2
src/main/java/com/its/api/its/repository/road/TbRoadTrafRepository.java

@@ -13,13 +13,13 @@ import java.util.Optional;
 @Repository
 public interface TbRoadTrafRepository extends JpaRepository<TbRoadTraf, Long>, JpaSpecificationExecutor<TbRoadTraf> {
 
-    @Query("select p from TbRoadTraf p inner join fetch p.road road")
+    @Query("select p from TbRoadTraf p inner join fetch p.road road inner join fetch road.fromNode fnode inner join fetch road.toNode tnode")
     List<TbRoadTraf> findAll();
 
     @Query("select p from TbRoadTraf p")
     List<TbRoadTraf> findAllTraf();
 
-    @Query("select p from TbRoadTraf p inner join fetch p.road road where p.roadId = :roadId")
+    @Query("select p from TbRoadTraf p inner join fetch p.road road inner join fetch road.fromNode fnode inner join fetch road.toNode tnode where p.roadId = :roadId")
     Optional<TbRoadTraf> findById(@Param("roadId") Long roadId);
 
 }

+ 0 - 11
src/main/java/com/its/api/its/repository/view/VwFcltSttsCntRepository.java

@@ -1,11 +0,0 @@
-package com.its.api.its.repository.view;
-
-import com.its.api.its.model.entity.view.VwFcltSttsCnt;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface VwFcltSttsCntRepository extends JpaRepository<VwFcltSttsCnt, String>, JpaSpecificationExecutor<VwFcltSttsCnt> {
-
-}

+ 0 - 12
src/main/java/com/its/api/its/repository/view/VwFcltSttsRepository.java

@@ -1,12 +0,0 @@
-package com.its.api.its.repository.view;
-
-import com.its.api.its.model.entity.view.VwFcltStts;
-import com.its.api.its.model.entity.view.VwFcltSttsKey;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface VwFcltSttsRepository extends JpaRepository<VwFcltStts, VwFcltSttsKey>, JpaSpecificationExecutor<VwFcltStts> {
-
-}

+ 4 - 5
src/main/java/com/its/api/its/service/common/CommonService.java

@@ -1,7 +1,6 @@
 package com.its.api.its.service.common;
 
 import com.its.api.its.model.dto.common.CongestTrafficDto;
-import com.its.api.its.model.dto.common.WeatherInfoDto;
 import com.its.api.its.repository.common.CommonMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -29,8 +28,8 @@ public class CommonService {
      * 기상정보 조회
      * @return
      */
-    public List<WeatherInfoDto> findAllWeatherInfo() {
-        List<WeatherInfoDto> result = this.repo.findAllWeatherInfo();
-        return result;
-    }
+//    public List<WeatherInfoDto> findAllWeatherInfo() {
+//        List<WeatherInfoDto> result = this.repo.findAllWeatherInfo();
+//        return result;
+//    }
 }

+ 160 - 2
src/main/java/com/its/api/its/service/common/CommonSttsService.java

@@ -2,6 +2,9 @@ package com.its.api.its.service.common;
 
 import com.its.api.bis.service.BitService;
 import com.its.api.its.model.dto.common.FcltSttsListDto;
+import com.its.api.its.model.dto.common.FcltSttsSummaryDto;
+import com.its.api.its.model.dto.facility.FcltSttsCntDto;
+import com.its.api.its.model.dto.facility.FcltSttsDto;
 import com.its.api.its.service.cctv.TbCctvCtlrService;
 import com.its.api.its.service.vds.TbVdsCtlrService;
 import com.its.api.its.service.vms.TbVmsCtlrService;
@@ -11,6 +14,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Slf4j
 @RequiredArgsConstructor
 @Service
@@ -39,7 +45,7 @@ public class CommonSttsService {
         FcltSttsListDto vms = this.vmsService.findAllSttsListTotal(true);
         result.getFcltList().add(vms.getFcltList().get(0));
 
-        // VMS
+        // VDS
         FcltSttsListDto vds = this.vdsService.findAllSttsListTotal(true);
         result.getFcltList().add(vds.getFcltList().get(0));
 
@@ -50,6 +56,11 @@ public class CommonSttsService {
         return result;
     }
 
+    /**
+     * 시설물 상태정보 Summary
+     * @return
+     */
+    @Transactional(readOnly = true)
     public FcltSttsListDto findAllFcltSttsSummary() {
         FcltSttsListDto result = new FcltSttsListDto();
 
@@ -61,7 +72,7 @@ public class CommonSttsService {
         FcltSttsListDto vms = this.vmsService.findAllSttsListTotal(false);
         result.getFcltList().add(vms.getFcltList().get(0));
 
-        // VMS
+        // VDS
         FcltSttsListDto vds = this.vdsService.findAllSttsListTotal(false);
         result.getFcltList().add(vds.getFcltList().get(0));
 
@@ -75,4 +86,151 @@ public class CommonSttsService {
 
         return result;
     }
+
+    /**
+     * ITS 시설물 상태정보 전체 조회
+     * findAllFcltSttsTotal 함수와 동일함(전체현황 제외)
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<FcltSttsDto> findFcltSttsAll() {
+        List<FcltSttsDto> result = new ArrayList<>();
+
+        // CCTV
+        FcltSttsListDto cctv = this.cctvService.findAllSttsListTotal(true);
+        FcltSttsSummaryDto cctvSummary = cctv.getFcltList().get(0);
+        cctvSummary.getFcltObjs().forEach(obj -> {
+            result.add(FcltSttsDto.builder()
+                    .fcltType(obj.getFcltType())
+                    .fcltId(obj.getFcltId())
+                    .fcltNm(obj.getFcltNm())
+                    .fcltNmbr(obj.getFcltNmbr())
+                    .fcltKind(obj.getFcltKind())
+                    .xCrdn(obj.getXCrdn())
+                    .yCrdn(obj.getYCrdn())
+                    .sttsCd(obj.getSttsCd())
+                    .sttsDesc(obj.getSttsDesc())
+                    .strmUrl(obj.getStrmUrl())
+                    .fcltInfo1(obj.getFcltInfo1())
+                    .fcltInfo2(obj.getFcltInfo2())
+                    .build());
+        });
+
+        // VMS
+        FcltSttsListDto vms = this.vmsService.findAllSttsListTotal(true);
+        FcltSttsSummaryDto vmsSummary = vms.getFcltList().get(0);
+        vmsSummary.getFcltObjs().forEach(obj -> {
+            result.add(FcltSttsDto.builder()
+                    .fcltType(obj.getFcltType())
+                    .fcltId(obj.getFcltId())
+                    .fcltNm(obj.getFcltNm())
+                    .fcltNmbr(obj.getFcltNmbr())
+                    .fcltKind(obj.getFcltKind())
+                    .xCrdn(obj.getXCrdn())
+                    .yCrdn(obj.getYCrdn())
+                    .sttsCd(obj.getSttsCd())
+                    .sttsDesc(obj.getSttsDesc())
+                    .strmUrl(obj.getStrmUrl())
+                    .fcltInfo1(obj.getFcltInfo1())
+                    .fcltInfo2(obj.getFcltInfo2())
+                    .build());
+        });
+
+        // VDS
+        FcltSttsListDto vds = this.vdsService.findAllSttsListTotal(true);
+        FcltSttsSummaryDto vdsSummary = vds.getFcltList().get(0);
+        vdsSummary.getFcltObjs().forEach(obj -> {
+            result.add(FcltSttsDto.builder()
+                    .fcltType(obj.getFcltType())
+                    .fcltId(obj.getFcltId())
+                    .fcltNm(obj.getFcltNm())
+                    .fcltNmbr(obj.getFcltNmbr())
+                    .fcltKind(obj.getFcltKind())
+                    .xCrdn(obj.getXCrdn())
+                    .yCrdn(obj.getYCrdn())
+                    .sttsCd(obj.getSttsCd())
+                    .sttsDesc(obj.getSttsDesc())
+                    .strmUrl(obj.getStrmUrl())
+                    .fcltInfo1(obj.getFcltInfo1())
+                    .fcltInfo2(obj.getFcltInfo2())
+                    .build());
+        });
+
+        // RSE
+        FcltSttsListDto rse = this.rseService.findAllListSttsTotal(true);
+        FcltSttsSummaryDto rseSummary = rse.getFcltList().get(0);
+        rseSummary.getFcltObjs().forEach(obj -> {
+            result.add(FcltSttsDto.builder()
+                    .fcltType(obj.getFcltType())
+                    .fcltId(obj.getFcltId())
+                    .fcltNm(obj.getFcltNm())
+                    .fcltNmbr(obj.getFcltNmbr())
+                    .fcltKind(obj.getFcltKind())
+                    .xCrdn(obj.getXCrdn())
+                    .yCrdn(obj.getYCrdn())
+                    .sttsCd(obj.getSttsCd())
+                    .sttsDesc(obj.getSttsDesc())
+                    .strmUrl(obj.getStrmUrl())
+                    .fcltInfo1(obj.getFcltInfo1())
+                    .fcltInfo2(obj.getFcltInfo2())
+                    .build());
+        });
+
+        return result;
+    }
+
+    /**
+     * ITS 시설물 상태 현황 전체 조회
+     * findAllFcltSttsTotal 함수와 동일함
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<FcltSttsCntDto> findFcltSttsCntAll() {
+        List<FcltSttsCntDto> result = new ArrayList<>();
+
+        // CCTV
+        FcltSttsListDto cctv = this.cctvService.findAllSttsListTotal(false);
+        FcltSttsSummaryDto cctvSummary = cctv.getFcltList().get(0);
+        result.add(FcltSttsCntDto.builder()
+                .fcltType(cctvSummary.getFcltType())
+                .fcltNm(cctvSummary.getFcltNm())
+                .totalCnt(cctvSummary.getTotalCnt())
+                .normalCnt(cctvSummary.getNormalCnt())
+                .errorCnt(cctvSummary.getErrorCnt())
+                .build());
+
+        // VMS
+        FcltSttsListDto vms = this.vmsService.findAllSttsListTotal(false);
+        FcltSttsSummaryDto vmsSummary = vms.getFcltList().get(0);
+        result.add(FcltSttsCntDto.builder()
+                .fcltType(vmsSummary.getFcltType())
+                .fcltNm(vmsSummary.getFcltNm())
+                .totalCnt(vmsSummary.getTotalCnt())
+                .normalCnt(vmsSummary.getNormalCnt())
+                .errorCnt(vmsSummary.getErrorCnt())
+                .build());
+
+        // VDS
+        FcltSttsListDto vds = this.vdsService.findAllSttsListTotal(false);
+        FcltSttsSummaryDto vdsSummary = vds.getFcltList().get(0);
+        result.add(FcltSttsCntDto.builder()
+                .fcltType(vdsSummary.getFcltType())
+                .fcltNm(vdsSummary.getFcltNm())
+                .totalCnt(vdsSummary.getTotalCnt())
+                .normalCnt(vdsSummary.getNormalCnt())
+                .errorCnt(vdsSummary.getErrorCnt())
+                .build());
+        // RSE
+        FcltSttsListDto rse = this.rseService.findAllListSttsTotal(false);
+        FcltSttsSummaryDto rseSummary = rse.getFcltList().get(0);
+        result.add(FcltSttsCntDto.builder()
+                .fcltType(rseSummary.getFcltType())
+                .fcltNm(rseSummary.getFcltNm())
+                .totalCnt(rseSummary.getTotalCnt())
+                .normalCnt(rseSummary.getNormalCnt())
+                .errorCnt(rseSummary.getErrorCnt())
+                .build());
+
+        return result;
+    }
 }

+ 0 - 32
src/main/java/com/its/api/its/service/view/VwFcltSttsCntService.java

@@ -1,32 +0,0 @@
-package com.its.api.its.service.view;
-
-import com.its.api.its.model.dto.view.VwFcltSttsCntDto;
-import com.its.api.its.model.entity.view.VwFcltSttsCnt;
-import com.its.api.its.repository.view.VwFcltSttsCntRepository;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Slf4j
-@RequiredArgsConstructor
-@Service
-public class VwFcltSttsCntService {
-
-    private final VwFcltSttsCntRepository repo;
-
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<VwFcltSttsCntDto> findAll() {
-        List<VwFcltSttsCntDto> result = new ArrayList<>();
-        List<VwFcltSttsCnt> data = this.repo.findAll();
-        for (VwFcltSttsCnt entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
-}

+ 0 - 32
src/main/java/com/its/api/its/service/view/VwFcltSttsService.java

@@ -1,32 +0,0 @@
-package com.its.api.its.service.view;
-
-import com.its.api.its.model.dto.view.VwFcltSttsDto;
-import com.its.api.its.model.entity.view.VwFcltStts;
-import com.its.api.its.repository.view.VwFcltSttsRepository;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Slf4j
-@RequiredArgsConstructor
-@Service
-public class VwFcltSttsService {
-
-    private final VwFcltSttsRepository repo;
-
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<VwFcltSttsDto> findAll() {
-        List<VwFcltSttsDto> result = new ArrayList<>();
-        List<VwFcltStts> data = this.repo.findAll();
-        for (VwFcltStts entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
-}

+ 15 - 15
src/main/resources/mybatis/mapper/its/common/CommonMapper.xml

@@ -52,20 +52,20 @@
         WHERE ATRD_NM IS NOT NULL
     </select>
 
-    <select id="findAllWeatherInfo" resultType="com.its.api.its.model.dto.common.WeatherInfoDto">
-        SELECT * FROM
-            (SELECT
-                 ANNOUNCEDATE,
-                 ANNOUNCETIMECODE,
-                 NVL(TEMPERATURE,'-') TEMPERATURE,
-                 WEATHERCODE,
-                 MINTEMPERATURE,
-                 MAXTEMPERATURE
-             FROM KMA_OVERLAND
-             WHERE ANNOUNCEDATE > SYSDATE - 1
-               AND ANNOUNCETIMECODE = 0
-             ORDER BY ANNOUNCEDATE DESC)
-        WHERE ROWNUM = 1
-    </select>
+<!--    <select id="findAllWeatherInfo" resultType="com.its.api.its.model.dto.common.WeatherInfoDto">-->
+<!--        SELECT * FROM-->
+<!--            (SELECT-->
+<!--                 ANNOUNCEDATE,-->
+<!--                 ANNOUNCETIMECODE,-->
+<!--                 NVL(TEMPERATURE,'-') TEMPERATURE,-->
+<!--                 WEATHERCODE,-->
+<!--                 MINTEMPERATURE,-->
+<!--                 MAXTEMPERATURE-->
+<!--             FROM KMA_OVERLAND-->
+<!--             WHERE ANNOUNCEDATE > SYSDATE - 1-->
+<!--               AND ANNOUNCETIMECODE = 0-->
+<!--             ORDER BY ANNOUNCEDATE DESC)-->
+<!--        WHERE ROWNUM = 1-->
+<!--    </select>-->
 
 </mapper>