shjung 2 лет назад
Родитель
Сommit
db9f982e35

+ 1 - 0
src/main/java/com/its/op/controller/its/cctv/TbCctvCtlrSttsHsController.java

@@ -50,4 +50,5 @@ public class TbCctvCtlrSttsHsController {
     ) {
         return this.service.findAllFailByDateRange(FROM_DT, TO_DT, id);
     }
+
 }

+ 30 - 0
src/main/java/com/its/op/controller/its/scrs/TbScIxrCmraSttsController.java

@@ -0,0 +1,30 @@
+package com.its.op.controller.its.scrs;
+
+import com.its.op.dto.its.scrs.TbScIxrCmraSttsDto;
+import com.its.op.service.its.scrs.TbScIxrCmraMngmService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.RestController;
+
+import java.util.List;
+
+@Api(tags = "14.스마트교차로-1.관리-2.스마트교차로카메라 상태 모니터링")
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/api/ccam/monitoring/stts")
+public class TbScIxrCmraSttsController {
+
+    private final TbScIxrCmraMngmService service;
+
+    @ApiOperation(value = "카메라 상태 전체조회(TB_SC_IXR_CMRA_STTS)", response = TbScIxrCmraSttsDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+    public List<TbScIxrCmraSttsDto> findAll() {
+        return this.service.findAllStts();
+    }
+
+}

+ 36 - 0
src/main/java/com/its/op/controller/its/scrs/TbScIxrCmraSttsHsController.java

@@ -0,0 +1,36 @@
+package com.its.op.controller.its.scrs;
+
+import com.its.op.dto.its.scrs.TbScIxrCmraSttsHsDto;
+import com.its.op.service.its.scrs.TbScIxrCmraSttsHsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.RestController;
+
+import java.util.List;
+
+@Api(tags = "14.스마트교차로-3.이력-2.스마트교차로카메라 상태 이력")
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/api/ccam/history")
+public class TbScIxrCmraSttsHsController {
+
+    private final TbScIxrCmraSttsHsService service;
+
+    @ApiOperation(value = "카메라 상태 이력 전체조회(TB_SC_IXR_CMRA_STTS_HS)", response = TbScIxrCmraSttsHsDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+    public List<TbScIxrCmraSttsHsDto> findAll() {
+        return this.service.findAll();
+    }
+
+    @ApiOperation(value = "카메라 상태 이력 전체조회(TB_SC_IXR_CMRA_STTS_HS)", response = TbScIxrCmraSttsHsDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/list", produces = {"application/json; charset=utf8"})
+    public List<TbScIxrCmraSttsHsDto> findAllList() {
+        return this.service.findAllList();
+    }
+
+}

+ 11 - 11
src/main/java/com/its/op/dao/repository/its/cctv/TbCctvCtlrSttsHsRepository.java

@@ -67,18 +67,18 @@ public interface TbCctvCtlrSttsHsRepository extends JpaRepository<TbCctvCtlrStts
     List<FcltSttsStatErrorInf> findAllStatisticsCommErrByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt);
 
     @Query(value =
-            "SELECT 'CCTV' AS fcltType, A.CCTV_CTLR_NMBR AS fcltNmbr, A.CCTV_CTLR_ID AS fcltId, A.ISTL_LCTN_NM AS fcltNm,    " +
+            "SELECT 'CCTV' AS fcltType, A.CCTV_CTLR_NMBR AS fcltNmbr, A.CCTV_CTLR_ID AS fcltId, A.ISTL_LCTN_NM AS fcltNm,            " +
             "       B.CONN_STTS_CD AS commSttsCd, B.DOOR_STTS_CD AS doorSttsCd, NVL(B.CBOX_TMPR, 0) AS cboxTmpr, B.CRTN_DT AS crtnDt " +
-            "  FROM TB_CCTV_CTLR A,                                                                                          " +
-            "       (SELECT CCTV_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD,                                                    " +
-            "               CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT                                            " +
-            "          FROM TB_CCTV_CTLR_STTS_HS                                                                                  " +
-            "         WHERE CRTN_DT BETWEEN :fromDt AND :toDt                                                                " +
-            "           AND (CMNC_STTS_CD      <> 'CMS0' OR                                                                  " +
-            "                CBOX_DOOR_STTS_CD <> 'CDS0' OR                                                                  " +
-            "                CBOX_TMPR > 40)                                                                                 " +
-            "       ) B                                                                                                      " +
-            " WHERE A.CCTV_CTLR_NMBR = B.CCTV_CTLR_NMBR  "
+            "  FROM TB_CCTV_CTLR A,                                                                                                  " +
+            "       (SELECT CCTV_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD,                                                            " +
+            "               CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT                                                    " +
+            "          FROM TB_CCTV_CTLR_STTS_HS                                                                                     " +
+            "         WHERE CRTN_DT BETWEEN :fromDt AND :toDt                                                                        " +
+            "           AND (CMNC_STTS_CD      <> 'CMS0' OR                                                                          " +
+            "                CBOX_DOOR_STTS_CD <> 'CDS0' OR                                                                          " +
+            "                CBOX_TMPR > 40)                                                                                         " +
+            "       ) B                                                                                                              " +
+            " WHERE A.CCTV_CTLR_NMBR = B.CCTV_CTLR_NMBR                                                                              "
             , nativeQuery = true)
     List<FcltSttsErrorInf> findAllSttsErrorByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt);
 

+ 11 - 11
src/main/java/com/its/op/dao/repository/its/rse/TbRseCtlrSttsHsRepository.java

@@ -70,18 +70,18 @@ public interface TbRseCtlrSttsHsRepository extends JpaRepository<TbRseCtlrSttsHs
     List<FcltSttsStatErrorInf> findAllStatisticsCommErrByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt);
 
     @Query(value =
-            "SELECT 'DSRC' AS fcltType, A.RSE_CTLR_NMBR AS fcltNmbr, A.RSE_CTLR_ID AS fcltId, A.ISTL_LCTN_NM AS fcltNm,    " +
+            "SELECT 'DSRC' AS fcltType, A.RSE_CTLR_NMBR AS fcltNmbr, A.RSE_CTLR_ID AS fcltId, A.ISTL_LCTN_NM AS fcltNm,              " +
             "       B.CONN_STTS_CD AS commSttsCd, B.DOOR_STTS_CD AS doorSttsCd, NVL(B.CBOX_TMPR, 0) AS cboxTmpr, B.CRTN_DT AS crtnDt " +
-            "  FROM TB_RSE_CTLR A,                                                                                          " +
-            "       (SELECT RSE_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD,                                                    " +
-            "               CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT                                            " +
-            "          FROM TB_RSE_CTLR_STTS_HS                                                                                  " +
-            "         WHERE CRTN_DT BETWEEN :fromDt AND :toDt                                                                " +
-            "           AND (CMNC_STTS_CD      <> 'CMS0' OR                                                                  " +
-            "                CBOX_DOOR_STTS_CD <> 'CDS0' OR                                                                  " +
-            "                CBOX_TMPR > 40)                                                                                 " +
-            "       ) B                                                                                                      " +
-            " WHERE A.RSE_CTLR_NMBR = B.RSE_CTLR_NMBR  "
+            "  FROM TB_RSE_CTLR A,                                                                                                   " +
+            "       (SELECT RSE_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD,                                                             " +
+            "               CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT                                                    " +
+            "          FROM TB_RSE_CTLR_STTS_HS                                                                                      " +
+            "         WHERE CRTN_DT BETWEEN :fromDt AND :toDt                                                                        " +
+            "           AND (CMNC_STTS_CD      <> 'CMS0' OR                                                                          " +
+            "                CBOX_DOOR_STTS_CD <> 'CDS0' OR                                                                          " +
+            "                CBOX_TMPR > 40)                                                                                         " +
+            "       ) B                                                                                                              " +
+            " WHERE A.RSE_CTLR_NMBR = B.RSE_CTLR_NMBR                                                                                "
             , nativeQuery = true)
     List<FcltSttsErrorInf> findAllSttsErrorByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt);
 

+ 2 - 2
src/main/java/com/its/op/dao/repository/its/scrs/TbScIxrCmraMngmRepository.java

@@ -13,10 +13,10 @@ import java.util.List;
 @Repository
 public interface TbScIxrCmraMngmRepository extends JpaRepository<TbScIxrCmraMngm, TbScIxrCmraMngmKey>, JpaSpecificationExecutor<TbScIxrCmraMngm> {
 
-    @Query("select p from TbScIxrCmraMngm p")
+    @Query("select p from TbScIxrCmraMngm p left outer join fetch p.state state ")
     List<TbScIxrCmraMngm> findAll();
 
-    @Query("select p from TbScIxrCmraMngm p")
+    @Query("select p from TbScIxrCmraMngm p left outer join fetch p.state state ")
     List<TbScIxrCmraMngm> findAllList();
 
     @Query("select p from TbScIxrCmraMngm p where p.ixrId = :ixrId")

+ 16 - 0
src/main/java/com/its/op/dao/repository/its/scrs/TbScIxrCmraSttsHsRepository.java

@@ -1,10 +1,12 @@
 package com.its.op.dao.repository.its.scrs;
 
+import com.its.op.dto.its.facility.FcltSttsErrorInf;
 import com.its.op.entity.its.scrs.TbScIxrCmraSttsHs;
 import com.its.op.entity.its.scrs.TbScIxrCmraSttsHsKey;
 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,18 @@ public interface TbScIxrCmraSttsHsRepository extends JpaRepository<TbScIxrCmraSt
     @Query("select p from TbScIxrCmraSttsHs p")
     List<TbScIxrCmraSttsHs> findAllList();
 
+    @Query(value =
+            "SELECT 'CCAM' AS fcltType, A.CMRA_ID AS fcltNmbr, A.CMRA_ID AS fcltId, A.ISTL_LCTN AS fcltNm,                           " +
+            "       B.CONN_STTS_CD AS commSttsCd, B.DOOR_STTS_CD AS doorSttsCd, NVL(B.CBOX_TMPR, 0) AS cboxTmpr, B.CRTN_DT AS crtnDt " +
+            "  FROM TB_SC_IXR_CMRA_MNGM A,                                                                                           " +
+            "       (SELECT IXR_ID, CMRA_ID, DECODE(CMRA_STTS, 0, 'CMS0', 'CMS1') AS CONN_STTS_CD,                                   " +
+            "               'CDS0' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CLCT_DT AS CRTN_DT                                               " +
+            "          FROM TB_SC_IXR_CMRA_STTS                                                                                      " +
+            "         WHERE CLCT_DT BETWEEN :fromDt AND :toDt                                                                        " +
+            "           AND (CMRA_STTS <> 1)                                                                                         " +
+            "       ) B                                                                                                              " +
+            " WHERE A.IXR_ID = B.IXR_ID AND A.CMRA_ID = B.CMRA_ID                                                                    "
+            , nativeQuery = true)
+    List<FcltSttsErrorInf> findAllSttsErrorByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt);
+
 }

+ 17 - 0
src/main/java/com/its/op/dao/repository/its/wcam/TbWcamCtlrSttsHsRepository.java

@@ -1,6 +1,7 @@
 package com.its.op.dao.repository.its.wcam;
 
 import com.its.op.dto.its.common.SttsHsErrCntInf;
+import com.its.op.dto.its.facility.FcltSttsErrorInf;
 import com.its.op.entity.its.wcam.TbWcamCtlrSttsHs;
 import com.its.op.entity.its.wcam.TbWcamCtrlSttsHsKey;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -35,4 +36,20 @@ public interface TbWcamCtlrSttsHsRepository extends JpaRepository<TbWcamCtlrStts
             "   and (p.cmncSttsCd <> 'CMS0')" +
             "   and p.wcamCtlrNmbr in :ids")
     List<TbWcamCtlrSttsHs> findAllFailByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("ids") List<Long> ids);
+
+
+    @Query(value =
+            "SELECT 'WCAM' AS fcltType, A.WCAM_CTLR_NMBR AS fcltNmbr, A.WCAM_CTLR_ID AS fcltId, A.ISTL_LCTN_NM AS fcltNm,            " +
+            "       B.CONN_STTS_CD AS commSttsCd, B.DOOR_STTS_CD AS doorSttsCd, NVL(B.CBOX_TMPR, 0) AS cboxTmpr, B.CRTN_DT AS crtnDt " +
+            "  FROM TB_WCAM_CTLR A,                                                                                                  " +
+            "       (SELECT WCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD,                                                            " +
+            "               'CDS0' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT                                                          " +
+            "          FROM TB_WCAM_CTLR_STTS_HS                                                                                     " +
+            "         WHERE CRTN_DT BETWEEN :fromDt AND :toDt                                                                        " +
+            "           AND (CMNC_STTS_CD <> 'CMS0')                                                                                 " +
+            "       ) B                                                                                                              " +
+            " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR                                                                              "
+            , nativeQuery = true)
+    List<FcltSttsErrorInf> findAllSttsErrorByDateRange(@Param("fromDt") String fromDt, @Param("toDt") String toDt);
+
 }

+ 29 - 6
src/main/java/com/its/op/entity/its/scrs/TbScIxrCmraMngm.java

@@ -120,8 +120,31 @@ public class TbScIxrCmraMngm implements Serializable {
             @JoinColumn(insertable=false, updatable=false, name = "DRCT_DVSN_CD", referencedColumnName = "DRCT_DVSN_CD")
     })
     @NotFound(action = NotFoundAction.IGNORE)
-    private TbScIxrCmraStts stts;
-
+    private TbScIxrCmraStts state;
+
+    public String getCmncSttsCd() {
+        String result = "CMS1";
+        if (this.state != null) {
+            if (this.state.getCmraStts() == 1)
+            result = "CMS0";
+        } else {
+            result = "CMS1";
+        }
+        return result;
+    }
+    public TbScIxrCmraStts getState() {
+        if (this.state == null) {
+            TbScIxrCmraStts state = TbScIxrCmraStts.builder()
+                    .ixrId(this.ixrId)
+                    .cmraId(this.cmraId)
+                    .drctDvsnCd(this.drctDvsnCd)
+                    .clctDt("19700101000000")
+                    .cmraStts(1)
+                    .build();
+            this.state = state;
+        }
+        return this.state;
+    }
     public TbScIxrCmraMngmDto toDto() {
         return TbScIxrCmraMngmDto.builder()
                 .ixrId(this.ixrId)
@@ -159,10 +182,10 @@ public class TbScIxrCmraMngm implements Serializable {
                 .cmncSttsCd(CodeManager.CMNC_STTS_ERROR)
                 .build();
 
-        if (this.stts != null) {
-            dto.setUpdtDt(this.stts.getClctDt());
-            dto.setCmraStts(this.stts.getCmraStts());
-            if (1 == this.stts.getCmraStts()) {
+        if (this.state != null) {
+            dto.setUpdtDt(this.state.getClctDt());
+            dto.setCmraStts(this.state.getCmraStts());
+            if (1 == this.state.getCmraStts()) {
                 dto.setCmncSttsCd(CodeManager.CMNC_STTS_NORMAL);
             }
         }

+ 2 - 4
src/main/java/com/its/op/entity/its/scrs/TbScIxrCmraStts.java

@@ -3,10 +3,7 @@ package com.its.op.entity.its.scrs;
 import com.its.op.dto.its.scrs.TbScIxrCmraSttsDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
+import lombok.*;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -15,6 +12,7 @@ import java.io.Serializable;
  * 카메라 상태 Entity Class
  */
 @Getter
+@Setter
 @NoArgsConstructor//(access = AccessLevel.PROTECTED)
 @Builder
 @AllArgsConstructor

+ 17 - 7
src/main/java/com/its/op/service/its/facility/TbFcltSttsErrorHsService.java

@@ -2,8 +2,10 @@ package com.its.op.service.its.facility;
 
 import com.its.op.dao.repository.its.cctv.TbCctvCtlrSttsHsRepository;
 import com.its.op.dao.repository.its.rse.TbRseCtlrSttsHsRepository;
+import com.its.op.dao.repository.its.scrs.TbScIxrCmraSttsHsRepository;
 import com.its.op.dao.repository.its.vds.TbVdsCtlrSttsHsRepository;
 import com.its.op.dao.repository.its.vms.TbVmsCtlrSttsHsRepository;
+import com.its.op.dao.repository.its.wcam.TbWcamCtlrSttsHsRepository;
 import com.its.op.dto.its.facility.FcltSttsErrorDto;
 import com.its.op.dto.its.facility.FcltSttsErrorInf;
 import lombok.RequiredArgsConstructor;
@@ -20,10 +22,12 @@ import java.util.NoSuchElementException;
 @Service
 public class TbFcltSttsErrorHsService {
 
+    private final TbWcamCtlrSttsHsRepository wcamSttsHsRepo;
     private final TbCctvCtlrSttsHsRepository cctvSttsHsRepo;
     private final TbVmsCtlrSttsHsRepository vmsSttsHsRepo;
     private final TbVdsCtlrSttsHsRepository vdsSttsHsRepo;
     private final TbRseCtlrSttsHsRepository rseSttsHsRepo;
+    private final TbScIxrCmraSttsHsRepository ccamSttsHsRepo;
 
     /**
      * 시설물 장애내역 조회
@@ -35,21 +39,27 @@ public class TbFcltSttsErrorHsService {
     @Transactional(readOnly = true)
     public List<FcltSttsErrorDto> findAllFcltSttsErrorList(String type, String fromDt, String toDt) throws NoSuchElementException {
         //TODO:2023
-        if (("CCTV").equalsIgnoreCase(type)) {
+        if (("WCAM").equalsIgnoreCase(type)) {
+            return findAllStatisticsCommErrByDateRangeResult(this.wcamSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
+        }
+        else if (("CCTV").equalsIgnoreCase(type)) {
             return findAllStatisticsCommErrByDateRangeResult(this.cctvSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
         }
-        else
-        if (("VMS").equalsIgnoreCase(type)) {
+        else if (("VMS").equalsIgnoreCase(type)) {
             return findAllStatisticsCommErrByDateRangeResult(this.vmsSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
         }
-        else
-        if (("VDS").equalsIgnoreCase(type)) {
+        else if (("VDS").equalsIgnoreCase(type)) {
             return findAllStatisticsCommErrByDateRangeResult(this.vdsSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
         }
-        else
-        if (("DSRC").equalsIgnoreCase(type)) {
+        else if (("DSRC").equalsIgnoreCase(type)) {
             return findAllStatisticsCommErrByDateRangeResult(this.rseSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
         }
+//        else if (("SIG").equalsIgnoreCase(type)) {
+//            return findAllStatisticsCommErrByDateRangeResult(this.sgnlSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
+//        }
+        else if (("CCAM").equalsIgnoreCase(type)) {
+            return findAllStatisticsCommErrByDateRangeResult(this.ccamSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), type);
+        }
         else
         if (("ALL").equalsIgnoreCase(type)) {
             List<FcltSttsErrorDto> cctvList = findAllStatisticsCommErrByDateRangeResult(this.cctvSttsHsRepo.findAllSttsErrorByDateRange(fromDt, toDt), "CCTV");

+ 30 - 6
src/main/java/com/its/op/service/its/scrs/TbScIxrCmraMngmService.java

@@ -4,20 +4,19 @@ import com.its.op.dao.repository.its.scrs.TbScIxrCmraMngmRepository;
 import com.its.op.dto.its.common.FcltSttsDto;
 import com.its.op.dto.its.common.FcltSttsListDto;
 import com.its.op.dto.its.common.FcltSttsSummaryDto;
+import com.its.op.dto.its.facility.TbFcltSttsAlrmStupDto;
 import com.its.op.dto.its.scrs.TbScIxrCmraMngmDto;
 import com.its.op.dto.its.scrs.TbScIxrCmraSttsDto;
 import com.its.op.entity.its.scrs.TbScIxrCmraMngm;
 import com.its.op.entity.its.scrs.TbScIxrCmraMngmKey;
 import com.its.op.global.CodeManager;
+import com.its.op.service.its.facility.TbFcltSttsAlrmStupService;
 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;
-import java.util.NoSuchElementException;
-import java.util.Optional;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
 @Slf4j
@@ -25,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger;
 @Service
 public class TbScIxrCmraMngmService {
 
+    private final TbFcltSttsAlrmStupService alarmService;
     private final TbScIxrCmraMngmRepository repo;
+    private String fcltType = "CCAM";
 
     // 데이터 1건 조회, 없으면 exception
     private TbScIxrCmraMngm requireOne(TbScIxrCmraMngmKey ixrId) throws NoSuchElementException {
@@ -121,7 +122,6 @@ public class TbScIxrCmraMngmService {
     @Transactional(readOnly = true)
     public FcltSttsListDto findAllSttsListTotal(boolean total) {
 
-        String fcltType = "CCAM";
         FcltSttsListDto result = new FcltSttsListDto();
 
         AtomicInteger error = new AtomicInteger(0);
@@ -133,7 +133,7 @@ public class TbScIxrCmraMngmService {
             TbScIxrCmraSttsDto dto = obj.toSttsDto();
             if (total) {
                 FcltSttsDto stts = FcltSttsDto.builder()
-                        .fcltType(fcltType)
+                        .fcltType(this.fcltType)
                         .fcltNmbr(obj.getCmraId())
                         .fcltId(String.valueOf(obj.getCmraId()))
                         .fcltNm(obj.getIstlLctn())
@@ -183,4 +183,28 @@ public class TbScIxrCmraMngmService {
         }
         return result;
     }
+
+    /**
+     * 삭제 되지 않은 제어기 상태 정보 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<TbScIxrCmraSttsDto> findAllStts() {
+        Map<String, TbFcltSttsAlrmStupDto> alarmMap = this.alarmService.loadAlarmSetup(this.fcltType);
+        List<TbScIxrCmraSttsDto> result = new ArrayList<>();
+        List<TbScIxrCmraMngm> data = this.repo.findAllList();
+        data.forEach(obj -> {
+            if (!CodeManager.CMNC_STTS_NORMAL.equals(obj.getCmncSttsCd())) {
+                TbFcltSttsAlrmStupDto alarm = alarmMap.get(obj.getCmraId());
+                if (alarm != null && "Y".equals(alarm.getUseYn())) {
+                    if ("N".equals(alarm.getCmncStts())) {
+                        obj.getState().setCmraStts(1);
+                    }
+                }
+            }
+            result.add(obj.toSttsDto());
+        });
+        return result;
+    }
+
 }

+ 0 - 64
src/main/java/com/its/op/service/its/scrs/TbScIxrCmraSttsService.java

@@ -1,64 +0,0 @@
-package com.its.op.service.its.scrs;
-
-import com.its.op.dao.repository.its.scrs.TbScIxrCmraSttsRepository;
-import com.its.op.dto.its.scrs.TbScIxrCmraSttsDto;
-import com.its.op.entity.its.scrs.TbScIxrCmraMngmKey;
-import com.its.op.entity.its.scrs.TbScIxrCmraStts;
-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;
-import java.util.NoSuchElementException;
-import java.util.Optional;
-
-@Slf4j
-@RequiredArgsConstructor
-@Service
-public class TbScIxrCmraSttsService {
-
-    private final TbScIxrCmraSttsRepository repo;
-
-    // 데이터 1건 조회, 없으면 exception
-    private TbScIxrCmraStts requireOne(TbScIxrCmraMngmKey ixrId) throws NoSuchElementException {
-        Optional<TbScIxrCmraStts> info = this.repo.findById(ixrId);
-        if (info.isPresent()) {
-            return info.get();
-        }
-        else {
-            throw new NoSuchElementException("데이터가 존재하지 않습니다: " + ixrId);
-        }
-    }
-
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<TbScIxrCmraSttsDto> findAll() {
-        List<TbScIxrCmraSttsDto> result = new ArrayList<>();
-        List<TbScIxrCmraStts> data = this.repo.findAll();
-        for (TbScIxrCmraStts entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<TbScIxrCmraSttsDto> findAllList() {
-        List<TbScIxrCmraSttsDto> result = new ArrayList<>();
-        List<TbScIxrCmraStts> data = this.repo.findAllList();
-        for (TbScIxrCmraStts entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
-    // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
-    @Transactional(readOnly = true)
-    public TbScIxrCmraSttsDto findById(TbScIxrCmraMngmKey ixrId) {
-        TbScIxrCmraStts entity = requireOne(ixrId);
-        return entity.toDto();
-    }
-
-}

+ 2 - 2
src/main/java/com/its/op/service/its/scrs/TbScSgnlCtlrService.java

@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class TbScSgnlCtlrService {
 
     private final TbScSgnlCtlrRepository repo;
+    private String fcltType = "SIG";
 
     // 데이터 1건 조회, 없으면 exception
     private TbScSgnlCtlr requireOne(Integer sgnlIxrNmbr) throws NoSuchElementException {
@@ -150,7 +151,6 @@ public class TbScSgnlCtlrService {
     @Transactional(readOnly = true)
     public FcltSttsListDto findAllSttsListTotal(boolean total) {
 
-        String fcltType = "SIG";
         FcltSttsListDto result = new FcltSttsListDto();
 
         AtomicInteger error = new AtomicInteger(0);
@@ -162,7 +162,7 @@ public class TbScSgnlCtlrService {
             TbScSgnlIxrSttsDto dto = obj.toSttsDto();
             if (total) {
                 FcltSttsDto stts = FcltSttsDto.builder()
-                        .fcltType(fcltType)
+                        .fcltType(this.fcltType)
                         .fcltNmbr(String.valueOf(obj.getSgnlIxrNmbr()))
                         .fcltId(String.valueOf(obj.getSgnlIxrNmbr()))
                         .fcltNm(obj.getIxrNm())