Browse Source

fclt fail type api add

shjung 3 years ago
parent
commit
a7c54fd51b

+ 8 - 1
src/main/java/com/its/api/its/controller/facility/TbFcltFailHsController.java

@@ -1,5 +1,6 @@
 package com.its.api.its.controller.facility;
 
+import com.its.api.its.model.dto.facility.FcltFailTypeDto;
 import com.its.api.its.model.dto.facility.TbFcltFailHsDto;
 import com.its.api.its.service.facility.TbFcltFailHsService;
 import io.swagger.annotations.Api;
@@ -21,6 +22,12 @@ public class TbFcltFailHsController {
 
     private final TbFcltFailHsService service;
 
+    @ApiOperation(value = "시설물 장애 유형 코드 조회", response = FcltFailTypeDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/fail-type", produces = {"application/json; charset=utf8"})
+    public List<FcltFailTypeDto> findAllFailList() {
+        return this.service.findAllFailType();
+    }
+
     @ApiOperation(value = "시설물 장애 내역 조회(TB_FCLT_FAIL_HS)", response = TbFcltFailHsDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/{fcltId}", produces = {"application/json; charset=utf8"})
     public List<TbFcltFailHsDto> findAllFailList(
@@ -65,4 +72,4 @@ public class TbFcltFailHsController {
         return this.service.deleteByIds(ids);
     }
 
-}
+ }

+ 2 - 0
src/main/java/com/its/api/its/global/CodeManager.java

@@ -107,6 +107,8 @@ public class CodeManager {
 
     public static final String FCLT_TYPE_CD         = "FTC";    // 시설물 유형 코드
 
+    public static final String FCLT_FAIL_TYPE_CD    = "FFA";    // 시설물 장애 유형 코드
+
     private static final ConcurrentHashMap<String, HashMap<String, Code>> codes = new ConcurrentHashMap<>();
 
     @PostConstruct

+ 44 - 0
src/main/java/com/its/api/its/model/dto/facility/FcltFailTypeDto.java

@@ -0,0 +1,44 @@
+package com.its.api.its.model.dto.facility;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.its.api.its.model.entity.code.TbCmmnCd;
+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;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("FcltFailTypeDto(시설물 장애 유형 코드 정보)")
+public class FcltFailTypeDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("장애 유형")  // Y VARCHAR(7)
+    @JsonProperty("fail_type")
+    private String failType;
+
+    @ApiModelProperty("장애 유형명")
+    @JsonProperty("fail_nm")
+    private String failNm;
+
+    @ApiModelProperty("코드설명")
+    @JsonProperty("fail_desc")
+    private String failDesc;
+
+    public static FcltFailTypeDto makeDto(TbCmmnCd entity) {
+        FcltFailTypeDto dto = FcltFailTypeDto.builder()
+                .failType(entity.getCmmnCd())
+                .failNm(entity.getCmmnCdKorNm())
+                .build();
+
+        dto.setFailDesc( "[" + dto.getFailType() + "] " + dto.getFailNm());
+
+        return dto;
+    }
+}

+ 1 - 1
src/main/java/com/its/api/its/model/dto/report/ReportFcltSummaryInf.java

@@ -3,7 +3,7 @@ package com.its.api.its.model.dto.report;
 import java.math.BigDecimal;
 
 /**
- * 보고서 시설물 현황 Interface Class
+ * 보고서 -시설물 보고서 - 시설물 현황 Interface Class
  */
 public interface ReportFcltSummaryInf {
 

+ 8 - 4
src/main/java/com/its/api/its/model/dto/report/ReportTrafficIncidentDto.java

@@ -13,16 +13,20 @@ import java.io.Serializable;
 @AllArgsConstructor
 @ApiModel("ReportTrafficIncidentDto(교통보고서-돌발 현황)")
 public class ReportTrafficIncidentDto  implements Serializable {
+
     @ApiModelProperty("돌발시작시각")
     @JsonProperty("incd_strt_dt")
-    private String INCD_STRT_DT;
+    private String incdStrtDt;
+
     @ApiModelProperty("돌발유형")
     @JsonProperty("cmmn_cd_kor_nm")
-    private String CMMN_CD_KOR_NM;
+    private String cmmnCdKorNm;
+
     @ApiModelProperty("링크 ID")
     @JsonProperty("link_id")
-    private String LINK_ID;
+    private String linkId;
+
     @ApiModelProperty("돌발내용")
     @JsonProperty("incd_titl")
-    private String INCD_TITL;
+    private String incdTitl;
 }

+ 2 - 0
src/main/java/com/its/api/its/repository/incident/TbIncdOcrrRepository.java

@@ -17,4 +17,6 @@ public interface TbIncdOcrrRepository extends JpaRepository<TbIncdOcrr, String>,
     @Query("select p from TbIncdOcrr p where p.incdEndPrarDt between :fromDt and :toDt")
     List<TbIncdOcrr> findAllProgressHistory(String fromDt, String toDt);
 
+    @Query("select p from TbIncdOcrr p where p.incdPrgrStepCd = 'ISS2' and p.incdStrtDt between :fromDt and :toDt")
+    List<TbIncdOcrr> findAllProgressIncidentByDateRange(String fromDt, String toDt);
 }

+ 6 - 0
src/main/java/com/its/api/its/repository/link/TbLinkTrafHsRepository.java

@@ -15,4 +15,10 @@ public interface TbLinkTrafHsRepository extends JpaRepository<TbLinkTrafHs, TbLi
 
     @Query("select p from TbLinkTrafHs p where p.linkId = :linkId and p.prcnDt between :fromDt and :toDt")
     List<TbLinkTrafHs> findAllByDateRange(@Param("linkId") Long linkId, @Param("fromDt") String fromDt, @Param("toDt") String toDt);
+
+/*
+    @Query("select p from TbLinkTrafHs p " +
+           " where (p.linkId, p.prcnDt) in (select )")
+    List<TbLinkTrafHs> findAllCongestByDateRange(@Param("linkId") Long linkId, @Param("fromDt") String fromDt, @Param("toDt") String toDt);
+*/
 }

+ 25 - 0
src/main/java/com/its/api/its/service/facility/TbFcltFailHsService.java

@@ -1,7 +1,11 @@
 package com.its.api.its.service.facility;
 
+import com.its.api.its.global.CodeManager;
+import com.its.api.its.model.dto.facility.FcltFailTypeDto;
 import com.its.api.its.model.dto.facility.TbFcltFailHsDto;
+import com.its.api.its.model.entity.code.TbCmmnCd;
 import com.its.api.its.model.entity.facility.TbFcltFailHs;
+import com.its.api.its.repository.code.TbCmmnCdRepository;
 import com.its.api.its.repository.facility.TbFcltFailHsRepository;
 import com.its.api.utils.ItsUtils;
 import lombok.RequiredArgsConstructor;
@@ -20,6 +24,7 @@ import java.util.Optional;
 public class TbFcltFailHsService {
 
     private final TbFcltFailHsRepository repo;
+    private final TbCmmnCdRepository cmmnCdRepo;
 
     // 데이터 1건 조회, 없으면 exception
     private TbFcltFailHs requireOne(String id) {
@@ -123,4 +128,24 @@ public class TbFcltFailHsService {
         Integer newId =  this.repo.findNewHsSeq(currYear);
         return String.format("%s%04d", currYear, newId);
     }
+
+    /**
+     * 시설물 장애 유형 코드 목록 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<FcltFailTypeDto> findAllFailType() {
+
+        List<FcltFailTypeDto> result = new ArrayList<>();
+        List<TbCmmnCd> data = this.cmmnCdRepo.findAllByCmmnClsfCd(CodeManager.FCLT_FAIL_TYPE_CD);
+        if (data != null) {
+            data.forEach(obj -> {
+                if (("Y").equals(obj.getUseYn())) {
+                    result.add(FcltFailTypeDto.makeDto(obj));
+                }
+            });
+        }
+
+        return result;
+    }
 }

+ 37 - 3
src/main/java/com/its/api/its/service/report/ReportService.java

@@ -3,11 +3,12 @@ package com.its.api.its.service.report;
 import com.its.api.its.global.CodeManager;
 import com.its.api.its.model.dto.report.*;
 import com.its.api.its.model.entity.cctv.TbCctvSttsHs;
+import com.its.api.its.model.entity.incident.TbIncdOcrr;
 import com.its.api.its.model.entity.vds.TbVdsCtlrSttsHs;
 import com.its.api.its.model.entity.vms.TbVmsSttsHs;
 import com.its.api.its.repository.cctv.TbCctvSttsHsRepository;
-import com.its.api.its.repository.code.TbCmmnCdRepository;
 import com.its.api.its.repository.incident.TbIncdOcrrRepository;
+import com.its.api.its.repository.link.TbLinkTrafHsRepository;
 import com.its.api.its.repository.report.ReportMapper;
 import com.its.api.its.repository.vds.TbVdsCtlrSttsHsRepository;
 import com.its.api.its.repository.vms.TbVmsSttsHsRepository;
@@ -31,8 +32,7 @@ public class ReportService {
     private final TbVmsSttsHsRepository vmsSttsHsRepo;
     private final TbVdsCtlrSttsHsRepository vdsSttsHsRepo;
     private final TbIncdOcrrRepository incdOcrrRepo;
-    private final TbCmmnCdRepository cmmnCdRepo;
-
+    private final TbLinkTrafHsRepository linkTrafHsRepo;
 
     /**
      * 보고서 - 시설물 보고서 - 시설물 현황
@@ -72,6 +72,13 @@ public class ReportService {
         return result;
     }
 
+    /**
+     * 보고서 - 시설물 보고서 - 장애 현황
+     * @param fromDt
+     * @param toDt
+     * @return
+     */
+    @Transactional(readOnly = true)
     public List<ReportFacilityErrorDto> findAllFacilityError(String fromDt, String toDt){
 
         List<ReportFacilityErrorDto> result = new ArrayList<>();
@@ -112,16 +119,43 @@ public class ReportService {
         return result;
     }
 
+    /**
+     * 보고서 - 교통 보고서 - 돌발 현황(진행중 돌발)
+     * @param fromDt
+     * @param toDt
+     * @return
+     */
+    @Transactional(readOnly = true)
     public List<ReportTrafficIncidentDto> findAllTrafficIncident(String fromDt, String toDt){
 
+        List<ReportTrafficIncidentDto> result = new ArrayList<>();
+
         CodeManager.loadCode(CodeManager.INCD_CODE_IDTU);
 
+        List<TbIncdOcrr> data = this.incdOcrrRepo.findAllProgressIncidentByDateRange(fromDt, toDt);
+        data.forEach(obj -> {
+            result.add(ReportTrafficIncidentDto.builder()
+                    .incdStrtDt(obj.getIncdStrtDt())
+                    .cmmnCdKorNm(CodeManager.getCodeDescShort(CodeManager.INCD_CODE_IDTU, obj.getIncdTypeCd()))
+                    .linkId(String.valueOf(obj.getLinkId()))
+                    .incdTitl(obj.getIncdTitl()).build());
+        });
+        return result;
+/*
         Map<String, String> param = new HashMap<>();
         param.put("FROM_DT", fromDt);
         param.put("TO_DT", toDt);
         return this.mapper.findAllTrafficIncident(param);
+*/
     }
 
+    /**
+     * 보고서 - 교통 보고서 - 정체 현황
+     * @param fromDt
+     * @param toDt
+     * @return
+     */
+    @Transactional(readOnly = true)
     public List<ReportTrafficCongestDto> findAllTrafficCongest(String fromDt, String toDt){
         Map<String, String> param = new HashMap<>();
         param.put("FROM_DT", fromDt);