shjung 3 anni fa
parent
commit
9a74fc8347

+ 9 - 0
src/main/java/com/its/api/its/controller/management/SystOprController.java

@@ -1,9 +1,11 @@
 package com.its.api.its.controller.management;
 
 import com.its.api.its.model.dto.ifsc.TbReptCngsSectTrafDto;
+import com.its.api.its.model.dto.incident.TbIncdEstmSectDto;
 import com.its.api.its.model.dto.incident.TbIncdOcrrDto;
 import com.its.api.its.model.dto.link.TbLinkTrafDto;
 import com.its.api.its.service.ifsc.TbReptCngsSectService;
+import com.its.api.its.service.incident.TbIncdEstmSectService;
 import com.its.api.its.service.incident.TbIncdOcrrService;
 import com.its.api.its.service.link.TbLinkTrafService;
 import io.swagger.annotations.Api;
@@ -26,6 +28,7 @@ public class SystOprController {
     private final TbIncdOcrrService incdOcrrService;
     private final TbReptCngsSectService reptCngsSectService;
     private final TbLinkTrafService linkTrafService;
+    private final TbIncdEstmSectService incdAutoService;
 
     @ApiOperation(value = "돌발상황정보(TB_INCD_OCRR)", response = TbIncdOcrrDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/incd-ocrr", produces = {"application/json; charset=utf8"})
@@ -33,6 +36,12 @@ public class SystOprController {
         return this.incdOcrrService.findAllProgress();
     }
 
+    @ApiOperation(value = "시스템 자동돌발상황정보(TB_INCD_ESTM_SECT)", response = TbIncdEstmSectDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/auto-incd", produces = {"application/json; charset=utf8"})
+    public List<TbIncdEstmSectDto> findAll() {
+        return incdAutoService.findAll();
+    }
+
     @ApiOperation(value = "반복정체구간(TB_REPT_CNGS_SECT, TB_IFSC, TB_IFSC_TRAF)", response = TbReptCngsSectTrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/repeat-congest", produces = {"application/json; charset=utf8"})
     public List<TbReptCngsSectTrafDto> findCurrentReptCngsSectAll() {

+ 20 - 14
src/main/java/com/its/api/its/model/dto/vms/TbVmsIfscDto.java

@@ -143,21 +143,8 @@ public class TbVmsIfscDto implements Serializable {
         @JsonProperty("ifscs")
         private List<VmsIfscLinkOrd> ifscs;
 
-        @Getter
-        @Setter
         @Builder
-        public static class VmsIfscLinkOrd {
-            @ApiModelProperty("정보제공구간 ID")  // N NUMBER(10)
-            @JsonProperty("ifsc_id")
-            private Long ifscId;
-
-            @ApiModelProperty("순서")  // Y NUMBER(3)
-            @JsonProperty("ord")
-            private Integer ord;
-        }
-
-        @Builder
-        public TbVmsIfscUpdReq(Long vms_ifsc_id, String vms_ifsc_nm, String edtn_cd, String dspl_strt_node_nm, String dspl_end_node_nm, Long detr_id, String road_nm, String spot_nm, String axis_yn) {
+        public TbVmsIfscUpdReq(Long vms_ifsc_id, String vms_ifsc_nm, String edtn_cd, String dspl_strt_node_nm, String dspl_end_node_nm, Long detr_id, String road_nm, String spot_nm, String axis_yn, List<VmsIfscLinkOrd> ifscs) {
             this.vmsIfscId = vms_ifsc_id;
             this.vmsIfscNm = vms_ifsc_nm;
             this.edtnCd = edtn_cd;
@@ -167,6 +154,7 @@ public class TbVmsIfscDto implements Serializable {
             this.roadNm = road_nm;
             this.spotNm = spot_nm;
             this.axisYn = axis_yn;
+            this.ifscs = ifscs;
         }
 
         public TbVmsIfsc toEntity() {
@@ -185,4 +173,22 @@ public class TbVmsIfscDto implements Serializable {
 
     }
 
+    @Getter
+    @Setter
+    public static class VmsIfscLinkOrd {
+        @ApiModelProperty("정보제공구간 ID")  // N NUMBER(10)
+        @JsonProperty("ifsc_id")
+        private Long ifscId;
+
+        @ApiModelProperty("순서")  // Y NUMBER(3)
+        @JsonProperty("ord")
+        private Integer ord;
+
+        @Builder
+        public VmsIfscLinkOrd(Long ifsc_id, Integer ord) {
+            this.ifscId = ifsc_id;
+            this.ord = ord;
+        }
+    }
+
 }

+ 2 - 1
src/main/java/com/its/api/its/repository/incident/TbIncdEstmSectRepository.java

@@ -12,8 +12,9 @@ import java.util.List;
 @Repository
 public interface TbIncdEstmSectRepository extends JpaRepository<TbIncdEstmSect, TbIncdEstmSectKey>, JpaSpecificationExecutor<TbIncdEstmSect> {
 
+    // 2시간 전 데이터 부터 조회
     @Query("select p from TbIncdEstmSect p inner join fetch p.link ln inner join fetch ln.fromNode fn inner join fetch ln.toNode tn " +
-           " where p.detcDt >= to_char(sysdate - (2*60)/60/24, 'YYYYMMDDHH24MISS')")
+            " where p.detcDt >= to_char(sysdate - (2*60)/60/24, 'YYYYMMDDHH24MISS')")
     List<TbIncdEstmSect> findAll();
 
 }

+ 5 - 0
src/main/java/com/its/api/its/service/vms/TbVmsCmtrInfrService.java

@@ -43,6 +43,11 @@ public class TbVmsCmtrInfrService {
         TbVmsCmtrInfr entity = requireOne(id);
         return entity.toDto();
     }
+    public TbVmsCmtrInfrDto deleteById(Long id) {
+        TbVmsCmtrInfr entity = requireOne(id);
+        this.repo.deleteById(id);
+        return entity.toDto();
+    }
 
     /**
      * 소통정보조회

+ 36 - 6
src/main/java/com/its/api/its/service/vms/TbVmsIfscService.java

@@ -27,6 +27,7 @@ public class TbVmsIfscService {
     private final TbVmsFormObjectService formObjectService;
     private final TbVmsLinkIfscService linkIfscService;
     private final TbVmsIfscCmtrGradService cmtrGradService;
+    private final TbVmsCmtrInfrService cmtrInfrService;
 
     // 데이터 1건 조회, 없으면 exception
     private TbVmsIfsc requireOne(Long id) {
@@ -101,7 +102,7 @@ public class TbVmsIfscService {
     }
 
     // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
-    @Transactional(readOnly = true)
+    @Transactional
     public TbVmsIfscDto.TbVmsIfscUpdReq mergeInfo(TbVmsIfscDto.TbVmsIfscUpdReq req) {
 
         if (req.getDetrId() == 0) {
@@ -124,7 +125,7 @@ public class TbVmsIfscService {
         // VMS LINK 정보제공구간 정보 삭제
         this.linkIfscService.deleteDataById(req.getVmsIfscId());
         // VMS LINK 정보제공구간 정보 저장
-        for (TbVmsIfscDto.TbVmsIfscUpdReq.VmsIfscLinkOrd ifsc : req.getIfscs()) {
+        for (TbVmsIfscDto.VmsIfscLinkOrd ifsc : req.getIfscs()) {
             TbVmsLinkIfscDto.TbVmsLinkIfscUpdReq ifscReq = new TbVmsLinkIfscDto.TbVmsLinkIfscUpdReq(req.getVmsIfscId(), ifsc.getIfscId(), ifsc.getOrd());
             TbVmsLinkIfscDto ifscDto = this.linkIfscService.mergeInfo(ifscReq);
         }
@@ -142,21 +143,50 @@ public class TbVmsIfscService {
 
         //VMS_정보제공구간 소통 등급
         //sQry = "DELETE FROM TB_VMS_IFSC_CMTR_GRAD WHERE VMS_IFSC_ID = :p01";
+
         //VMS LINK 정보제공구간
         //sQry = "DELETE FROM TB_VMS_LINK_IFSC WHERE VMS_IFSC_ID = :p01";
+
         //VMS 정보제공구간 관계
         //sQry = "DELETE FROM TB_VMS_IFSC_RLTN WHERE VMS_IFSC_ID = :p01";
+
         //VMS_소통정보
         //sQry = "DELETE FROM TB_VMS_CMTRINFR WHERE VMS_IFSC_ID = :p01";
 
+        //VMS_정보제공구간
+        //#if 1
+        //        sQry = "DELETE FROM TB_VMS_IFSC WHERE VMS_IFSC_ID = :p01";
+        //#else
+        //        sQry = "UPDATE TB_VMS_IFSC SET EDTN_CD = 'EDI2' WHERE VMS_IFSC_ID = :p01";
+        //#endif
+
         TbVmsIfsc entity = requireOne(id);
 
-        // VMS 정보제공구간 소통등급 정보 삭제
-        this.cmtrGradService.deleteDataById(id);
-        // VMS LINK 정보제공구간에 속하는 정보제공구간 정보 목록 삭제
-        this.linkIfscService.deleteDataById(id);
+        try {
+            // VMS 정보제공구간 소통등급 정보 삭제
+            this.cmtrGradService.deleteDataById(id);
+        } catch (Exception e) {
+            log.error("{}", e.getMessage());
+        }
+
+        try {
+            // VMS LINK 정보제공구간에 속하는 정보제공구간 정보 목록 삭제
+            this.linkIfscService.deleteDataById(id);
+        } catch (Exception e) {
+            log.error("{}", e.getMessage());
+        }
+
+        try {
+            // VMS 정보제공구간 소통정보 테이블 삭제
+            this.cmtrInfrService.deleteById(id);
+        }
+        catch (Exception e) {
+            log.error("{}", e.getMessage());
+        }
+
         // VMS 정보제공구간 정보 삭제
         this.repo.deleteById(id);
+
         return entity.toDto();
     }