shjung 3 жил өмнө
parent
commit
d9607116fe

+ 32 - 39
pom.xml

@@ -63,11 +63,11 @@
         </dependency>
 
         <!-- JpaResultMapper -->
-<!--        <dependency>-->
-<!--            <groupId>org.qlrm</groupId>-->
-<!--            <artifactId>qlrm</artifactId>-->
-<!--            <version>2.1.0</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>org.qlrm</groupId>
+            <artifactId>qlrm</artifactId>
+            <version>2.1.0</version>
+        </dependency>
 
         <dependency>
             <groupId>io.springfox</groupId>
@@ -256,13 +256,7 @@
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-all</artifactId>
-<!--            <version>4.1.72.Final</version>-->
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>io.netty</groupId>-->
-<!--            <artifactId>netty-transport</artifactId>-->
-<!--&lt;!&ndash;            <version>4.1.72.Final</version>&ndash;&gt;-->
-<!--        </dependency>-->
 
         <dependency>
             <groupId>org.apache.commons</groupId>
@@ -342,34 +336,33 @@
                     <includeSystemScope>true</includeSystemScope>
                 </configuration>
             </plugin>
-<!--            <plugin>-->
-<!--                <groupId>org.apache.maven.plugins</groupId>-->
-<!--                <artifactId>maven-compiler-plugin</artifactId>-->
-<!--                <version>3.5.1</version>-->
-<!--                <configuration>-->
-<!--                    <source>${java.version}</source>-->
-<!--                    <target>${java.version}</target>-->
-<!--                    &lt;!&ndash; mapstruct-processor 을 설정해줍니다. &ndash;&gt;-->
-<!--                    <annotationProcessorPaths>-->
-<!--                        <path>-->
-<!--                            <groupId>org.projectlombok</groupId>-->
-<!--                            <artifactId>lombok</artifactId>-->
-<!--                            <version>${org.projectlombok.version}</version>-->
-<!--                        </path>-->
-<!--                        <path>-->
-<!--                            <groupId>org.projectlombok</groupId>-->
-<!--                            <artifactId>lombok-mapstruct-binding</artifactId>-->
-<!--                            <version>0.2.0</version>-->
-<!--                        </path>-->
-<!--                        <path>-->
-<!--                            <groupId>org.mapstruct</groupId>-->
-<!--                            <artifactId>mapstruct-processor</artifactId>-->
-<!--                            <version>${org.mapstruct.version}</version>-->
-<!--                        </path>-->
-<!--                        &lt;!&ndash; other annotation processors &ndash;&gt;-->
-<!--                    </annotationProcessorPaths>-->
-<!--                </configuration>-->
-<!--            </plugin>-->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.5.1</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <!-- mapstruct-processor 을 설정해줍니다. -->
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                            <version>${org.projectlombok.version}</version>
+                        </path>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok-mapstruct-binding</artifactId>
+                            <version>0.2.0</version>
+                        </path>
+                        <path>
+                            <groupId>org.mapstruct</groupId>
+                            <artifactId>mapstruct-processor</artifactId>
+                            <version>${org.mapstruct.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 

+ 10 - 5
src/main/java/com/its/api/its/model/dto/cctv/TbCctvMonitoringDto.java

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
+import javax.validation.constraints.PositiveOrZero;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.util.List;
@@ -66,16 +67,19 @@ public class TbCctvMonitoringDto implements Serializable {
     @NoArgsConstructor(access = AccessLevel.PROTECTED)
     public static class TbCctvMonitoringUpdReq {
 
-        /*@ApiModelProperty("모니터링유형(1:예비,2,예비,3,영상,4:예비), Nullable = N, NUMBER(3)")  // N NUMBER(3)
+        @ApiModelProperty("모니터링유형(1:예비,2,예비,3,영상,4:예비), Nullable = N, NUMBER(3)")  // N NUMBER(3)
         @JsonProperty("monitoring_type")
-        @PositiveOrZero*/
-        @JsonIgnore
+        @PositiveOrZero
         private Integer monitoringType;
 
+        @ApiModelProperty("모니터링명칭-원천, Nullable = N, VARCHAR(40)")  // N VARCHAR(40)
+        @JsonProperty("org_monitoring_nm")
+        @Size(min=1, max=40)
+        private String orgMonitoringNm;
+
         @ApiModelProperty("모니터링명칭, Nullable = N, VARCHAR(40)")  // N VARCHAR(40)
         @JsonProperty("monitoring_nm")
         @Size(min=1, max=40)
-        //@JsonIgnore
         private String monitoringNm;
 
         private List<MonitoringInfoDto> infos;
@@ -96,8 +100,9 @@ public class TbCctvMonitoringDto implements Serializable {
 //        private Integer viewMode = 0;
 
         @Builder
-        public TbCctvMonitoringUpdReq(Integer monitoring_type, String monitoring_nm, List<MonitoringInfoDto> infos) {
+        public TbCctvMonitoringUpdReq(Integer monitoring_type, String org_monitoring_nm, String monitoring_nm, List<MonitoringInfoDto> infos) {
             this.monitoringType = monitoring_type;
+            this.orgMonitoringNm = org_monitoring_nm;
             this.monitoringNm = monitoring_nm;
             this.infos = infos;
         }

+ 7 - 1
src/main/java/com/its/api/its/model/dto/vms/TbVmsMonitoringDto.java

@@ -64,6 +64,11 @@ public class TbVmsMonitoringDto implements Serializable {
         @PositiveOrZero
         private Integer monitoringType;
 
+        @ApiModelProperty("모니터링명칭-원천, Nullable = N, VARCHAR(40)")  // N VARCHAR(40)
+        @JsonProperty("org_monitoring_nm")
+        @Size(min=1, max=40)
+        private String orgMonitoringNm;
+
         @ApiModelProperty("모니터링명칭, Nullable = N, VARCHAR(40)")  // N VARCHAR(40)
         @JsonProperty("monitoring_nm")
         @Size(min=1, max=40)
@@ -82,8 +87,9 @@ public class TbVmsMonitoringDto implements Serializable {
 //        private Long vmsCtlrNmbr;
 
         @Builder
-        public TbVmsMonitoringUpdReq(Integer monitoring_type, String monitoring_nm, List<MonitoringInfoDto> infos) {
+        public TbVmsMonitoringUpdReq(Integer monitoring_type, String org_monitoring_nm, String monitoring_nm, List<MonitoringInfoDto> infos) {
             this.monitoringType = monitoring_type;
+            this.orgMonitoringNm = org_monitoring_nm;
             this.monitoringNm = monitoring_nm;
             this.infos = infos;
         }

+ 15 - 0
src/main/java/com/its/api/its/model/dto/vms/TbVmsMsgDsplSchInf.java

@@ -0,0 +1,15 @@
+package com.its.api.its.model.dto.vms;
+
+import java.math.BigInteger;
+
+/**
+ * 시설물 오류 갯수 조회 Interface Class
+ */
+public interface TbVmsMsgDsplSchInf {
+
+    Long getNmbr();
+    String getTrfc();
+    BigInteger getTotal();
+    BigInteger getUsed();
+
+}

+ 119 - 10
src/main/java/com/its/api/its/model/dto/vms/TbVmsSttsDto.java

@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 
-import javax.persistence.Column;
 import java.io.Serializable;
 
 /**
@@ -14,7 +13,7 @@ import java.io.Serializable;
  */
 @Data
 @Builder
-@ApiModel("TbVmsSttsPrstDto(VMS 상태 현재)")
+@ApiModel("TbVmsSttsDto(VMS 상태 현재)")
 public class TbVmsSttsDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
@@ -22,10 +21,6 @@ public class TbVmsSttsDto implements Serializable {
     @JsonProperty("vms_ctlr_nmbr")
     private Long vmsCtlrNmbr;
 
-    @ApiModelProperty("관리 번호")  // N NUMBER(10)
-    @JsonProperty("nmbr")
-    private Long nmbr;
-
     @ApiModelProperty("등록 일시")  // Y VARCHAR(14)
     @JsonProperty("updt_dt")
     private String updtDt;
@@ -71,12 +66,12 @@ public class TbVmsSttsDto implements Serializable {
     private String pwerStts;
 
     // Code Description Field
-    @ApiModelProperty("VMS 제어기 ID")  // Y VARCHAR(30)
-    @Column(name = "VMS_CTLR_ID", length = 30)
+    @ApiModelProperty("VMS 제어기 ID")
+    @JsonProperty("vms_ctlr_id")
     private String vmsCtlrId;
 
-    @ApiModelProperty("VMS 명")  // Y VARCHAR(40)
-    @Column(name = "VMS_NM", length = 40)
+    @ApiModelProperty("VMS 명")
+    @JsonProperty("vms_nm")
     private String vmsNm;
 
     @ApiModelProperty("통신 상태 코드 설명")
@@ -110,4 +105,118 @@ public class TbVmsSttsDto implements Serializable {
     @ApiModelProperty("수집건수")
     @JsonProperty("coll_cnt")
     private Integer collCnt;
+
+    ////////////////////
+    @ApiModelProperty("VMS ID")  // Y VARCHAR(4)
+    @JsonProperty("vms_id")
+    private String vmsId;
+
+    @ApiModelProperty("VMS 용도 유형 코드")  // Y VARCHAR(7)
+    @JsonProperty("vms_usag_type_cd")
+    private String vmsUsagTypeCd;
+
+    @ApiModelProperty("VMS 유형 코드")  // Y VARCHAR(7)
+    @JsonProperty("vms_type_cd")
+    private String vmsTypeCd;
+
+    @ApiModelProperty("VMS 모듈 유형 코드")  // Y VARCHAR(7)
+    @JsonProperty("vms_modl_type_cd")
+    private String vmsModlTypeCd;
+
+    @ApiModelProperty("운영 모드")  // Y VARCHAR(7)
+    @JsonProperty("oper_mode")
+    private String operMode;
+
+    @ApiModelProperty("운영 모드 설명")  // Y VARCHAR(7)
+    @JsonProperty("oper_mode_desc")
+    private String operModeDesc;
+
+    @ApiModelProperty("VMS 통신 오류 기본 값")  // Y NUMBER(3)
+    @JsonProperty("vms_cmnc_err_bass_val")
+    private Integer vmsCmncErrBassVal;
+
+    @ApiModelProperty("VMS 야간 휘도 단계")  // Y NUMBER(2)
+    @JsonProperty("vms_nght_brgh_step")
+    private Integer vmsNghtBrghStep;
+
+    @ApiModelProperty("VMS 주간 휘도 단계")  // Y NUMBER(2)
+    @JsonProperty("vms_week_brgh_step")
+    private Integer vmsWeekBrghStep;
+
+    @ApiModelProperty("VMS 표출면 변경 주기")
+    @JsonProperty("vms_phse_chng_cycl")
+    private Integer vmsPhseChngCycl;
+
+    @ApiModelProperty("VMS 모듈 오류 율")
+    @JsonProperty("vms_modl_err_rate")
+    private Integer vmsModlErrRate;
+
+    @ApiModelProperty("VMS 최대 표출면 개수")
+    @JsonProperty("vms_max_phse_num")
+    private Integer vmsMaxPhseNum;
+
+    @ApiModelProperty("팬 동작 온도")
+    @JsonProperty("fan_mtns_tmpr")
+    private Integer fanMtnsTmpr;
+
+    @ApiModelProperty("히터 동작 온도")
+    @JsonProperty("hetr_mtns_tmpr")
+    private Integer hetrMtnsTmpr;
+
+    @ApiModelProperty("스트리밍 세션 명")
+    @JsonProperty("strm_sesn_nm")
+    private String strmSesnNm;
+
+    @ApiModelProperty("VMS 용도 유형 코드 설명")
+    @JsonProperty("vms_usag_type_desc")
+    private String vmsUsagTypeDesc;
+
+    @ApiModelProperty("VMS 유형 코드 설명")
+    @JsonProperty("vms_type_desc")
+    private String vmsTypeDesc;
+
+    @ApiModelProperty("전광판 ON TIME")
+    @JsonProperty("panl_on_time")
+    private String panlOnTime;
+
+    @ApiModelProperty("전광판 OFF TIME")
+    @JsonProperty("panl_off_time")
+    private String panlOffTime;
+
+    @ApiModelProperty("메시지표출 제공시각")
+    @JsonProperty("provide_time")
+    private String provideTime;
+
+    @ApiModelProperty("메시지 제공결과(Y:성공, N:실패)")
+    @JsonProperty("provide_result")
+    private String provideResult;
+
+    @ApiModelProperty("메시지 서비스상태(Y:성공, N:실패)")
+    @JsonProperty("provide_svc")
+    private String provideSvc;
+
+    @ApiModelProperty("메시지 제공건수")
+    @JsonProperty("provide_cnt")
+    private Integer provideCnt;
+
+    @ApiModelProperty("자동 메시지 전체건수")
+    @JsonProperty("auto_total")
+    private Integer autoTotal;
+    @ApiModelProperty("자동 메시지 제공가능건수")
+    @JsonProperty("auto_used")
+    private Integer autoUsed;
+
+    @ApiModelProperty("고정 메시지 전체건수")
+    @JsonProperty("fixed_total")
+    private Integer fixedTotal;
+    @ApiModelProperty("고정 메시지 제공가능건수")
+    @JsonProperty("fixed_used")
+    private Integer fixedUsed;
+
+    @ApiModelProperty("기본 메시지 전체건수")
+    @JsonProperty("basic_total")
+    private Integer basicTotal;
+    @ApiModelProperty("기본 메시지 제공가능건수")
+    @JsonProperty("basic_used")
+    private Integer basicUsed;
 }

+ 46 - 1
src/main/java/com/its/api/its/model/entity/vms/TbVmsCtlr.java

@@ -7,6 +7,7 @@ import com.its.utils.ItsUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
+import org.apache.commons.lang.StringUtils;
 import org.hibernate.annotations.NotFound;
 import org.hibernate.annotations.NotFoundAction;
 
@@ -276,14 +277,58 @@ public class TbVmsCtlr implements Serializable {
     public TbVmsSttsDto toSttsDto() {
         TbVmsSttsDto dto = TbVmsSttsDto.builder()
                 .vmsCtlrNmbr(this.vmsCtlrNmbr)
-                .nmbr(this.vmsCtlrNmbr)
                 .collCnt(100)
                 .vmsCtlrId(this.vmsCtlrId)
                 .vmsNm(this.vmsNm)
+                .vmsId(this.vmsId)
+                .vmsTypeCd(this.vmsTypeCd)
+                .vmsUsagTypeCd(this.vmsUsagTypeCd)
+                .vmsModlTypeCd(this.vmsModlTypeCd)
+                .operMode(this.operMode)
+                .vmsCmncErrBassVal(this.vmsCmncErrBassVal)
+                .vmsNghtBrghStep(this.vmsNghtBrghStep)
+                .vmsWeekBrghStep(this.vmsWeekBrghStep)
+                .vmsPhseChngCycl(this.vmsPhseChngCycl)
+                .vmsModlErrRate(this.vmsModlErrRate)
+                .vmsMaxPhseNum(this.vmsMaxPhseNum)
+                .fanMtnsTmpr(this.fanMtnsTmpr)
+                .hetrMtnsTmpr(this.hetrMtnsTmpr)
+                .panlOnTime(this.panlOnTime)
+                .panlOffTime(this.panlOffTime)
+                .strmSesnNm(this.strmSesnNm)
                 .updtDt(CodeManager.CMNC_STTS_ERROR_DT)
                 .cmncSttsCd(CodeManager.CMNC_STTS_ERROR)
+                .provideTime("")
+                .provideResult("N")
+                .provideCnt(0)
+                .autoTotal(0)
+                .autoUsed(0)
+                .fixedTotal(0)
+                .fixedUsed(0)
+                .basicTotal(0)
+                .basicUsed(0)
                 .build();
 
+        if (StringUtils.equals("A", this.operMode)) {
+            dto.setOperModeDesc("자동");
+        }
+        else if (StringUtils.equals("F", this.operMode)) {
+            dto.setOperModeDesc("고정");
+        }
+        else if (StringUtils.equals("B", this.operMode)) {
+            dto.setOperModeDesc("기본");
+        }
+        else {
+            dto.setOperModeDesc("[" + this.usagType.getVmsUsagTypeCd() + "] 알수없음");
+        }
+
+        if (this.usagType != null) {
+            dto.setVmsUsagTypeDesc(this.usagType.getVmsUsagTypeNm());
+        }
+        if (this.type != null) {
+            dto.setVmsTypeDesc(this.type.getVmsTypeNm());
+        }
+
         if (this.state != null) {
             dto.setUpdtDt(this.state.getRgstDt());
 

+ 18 - 0
src/main/java/com/its/api/its/repository/vms/TbVmsMsgDsplSchRepository.java

@@ -1,5 +1,6 @@
 package com.its.api.its.repository.vms;
 
+import com.its.api.its.model.dto.vms.TbVmsMsgDsplSchInf;
 import com.its.api.its.model.entity.vms.TbVmsMsgDsplSch;
 import com.its.api.its.model.entity.vms.TbVmsMsgDsplSchKey;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -33,4 +34,21 @@ public interface TbVmsMsgDsplSchRepository extends JpaRepository<TbVmsMsgDsplSch
     @Query("select p from TbVmsMsgDsplSch p inner join fetch p.form where p.trfcSituTypeCd = :trfcSituTypeCd and p.vmsFormId = :vmsFormId")
     List<TbVmsMsgDsplSch> findAllByAllEditVmsList(@Param("trfcSituTypeCd") String trfcSituTypeCd, @Param("vmsFormId") Integer vmsFormId);
 
+    @Query(value =
+            "SELECT A.VMS_CTLR_NMBR AS nmbr, A.TRFC_SITU_TYPE_CD AS trfc, COUNT(1) AS total, 0 AS used " +
+            "  FROM TB_VMS_TRFC_INFR_DSPL_SCH A,                        " +
+            "       TB_VMS_FORM               B                         " +
+            " WHERE A.VMS_FORM_ID = B.VMS_FORM_ID                       " +
+            " GROUP BY A.VMS_CTLR_NMBR, A.TRFC_SITU_TYPE_CD             " +
+            "UNION ALL " +
+            "SELECT A.VMS_CTLR_NMBR AS nmbr, A.TRFC_SITU_TYPE_CD AS trfc, 0 AS total, COUNT(1) AS used " +
+            "  FROM TB_VMS_TRFC_INFR_DSPL_SCH A,                        " +
+            "       TB_VMS_FORM               B                         " +
+            " WHERE A.VMS_FORM_ID = B.VMS_FORM_ID                       " +
+            "   AND A.USE_YN = 'Y'                                      " +
+            "   AND TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') BETWEEN A.DSPL_STRT_HH AND A.DSPL_END_HH " +
+            " GROUP BY A.VMS_CTLR_NMBR, A.TRFC_SITU_TYPE_CD"
+            , nativeQuery = true)
+    List<TbVmsMsgDsplSchInf> findAllUsage();
+
 }

+ 6 - 6
src/main/java/com/its/api/its/service/cctv/TbCctvMonitoringService.java

@@ -67,7 +67,7 @@ public class TbCctvMonitoringService {
 
         //	모니터링유형(1:예비,2,예비,3,영상,4:예비)
         List<TbCctvMonitoringDto> result = new ArrayList<>();
-        List<TbCctvMonitoring> data = this.repo.findByName(monitoringType, name);
+        List<TbCctvMonitoring> data = this.repo.findByName(monitoringType, name.trim());
         if (data != null) {
             data.forEach(obj -> {
                 result.add(obj.toDto());
@@ -82,13 +82,13 @@ public class TbCctvMonitoringService {
         // Repository 에서 Transaction 처리를 수행
 
         // 이름에 해당하는 데이터 삭제
-        this.repo.deleteByName(monitoringType, name);
+        this.repo.deleteByName(monitoringType, req.getOrgMonitoringNm().trim());
 
         // 이름에 해당하는 모든 데이터 저장
         for (MonitoringInfoDto reqObj : req.getInfos()) {
             TbCctvMonitoring obj = TbCctvMonitoring.builder()
                     .monitoringType(monitoringType)
-                    .monitoringNm(name)
+                    .monitoringNm(name.trim())
                     .monitoringSeq(reqObj.getMonitoringSeq())
                     .cctvCtlrNmbr(reqObj.getCtlrNmbr())
                     .viewMode(reqObj.getViewMode())
@@ -105,9 +105,9 @@ public class TbCctvMonitoringService {
     @Transactional
     public List<TbCctvMonitoringDto> deleteByName(Integer monitoringType, String name) {
 
-        List<TbCctvMonitoringDto> result = findByName(monitoringType, name);
+        List<TbCctvMonitoringDto> result = findByName(monitoringType, name.trim());
         if (result != null) {
-            this.repo.deleteByName(monitoringType, name);
+            this.repo.deleteByName(monitoringType, name.trim());
         }
         return result;
     }
@@ -123,7 +123,7 @@ public class TbCctvMonitoringService {
         data.forEach(obj -> {
             result.add(MonitoringListDto.builder()
                     .monitoringType(monitoringType)
-                    .monitoringNm(obj.getName())
+                    .monitoringNm(obj.getName().trim())
                     .count(obj.getCount().intValue())
                     .build());
         });

+ 47 - 3
src/main/java/com/its/api/its/service/vms/TbVmsCtlrService.java

@@ -4,15 +4,20 @@ import com.its.api.global.CodeManager;
 import com.its.api.its.model.dto.code.TbCmmnCdDto;
 import com.its.api.its.model.dto.common.*;
 import com.its.api.its.model.dto.vms.TbVmsCtlrDto;
+import com.its.api.its.model.dto.vms.TbVmsMsgDsplSchInf;
 import com.its.api.its.model.dto.vms.TbVmsSttsDto;
 import com.its.api.its.model.dto.vms.VmsOnOffTimeDto;
 import com.its.api.its.model.entity.vms.TbVmsCtlr;
+import com.its.api.its.model.entity.vms.TbVmsDsplPrst;
 import com.its.api.its.repository.vms.TbVmsCtlrRepository;
+import com.its.api.its.repository.vms.TbVmsDsplPrstRepository;
+import com.its.api.its.repository.vms.TbVmsMsgDsplSchRepository;
 import com.its.api.its.repository.vms.TbVmsSttsHsRepository;
 import com.its.api.its.service.code.TbCmmnCdService;
 import com.its.utils.ItsUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -27,6 +32,8 @@ public class TbVmsCtlrService {
     private final TbVmsCtlrRepository repo;
     private final TbVmsSttsHsRepository sttsHsRepo;
     private final TbCmmnCdService cmmnCdService;
+    private final TbVmsMsgDsplSchRepository dsplSchRepo;
+    private final TbVmsDsplPrstRepository dsplPrstRepo;
 
     // 데이터 1건 조회, 없으면 exception
     private TbVmsCtlr requireOne(Long id) {
@@ -65,12 +72,49 @@ public class TbVmsCtlrService {
      */
     @Transactional(readOnly = true)
     public List<TbVmsSttsDto> findAllStts() {
-        List<TbVmsSttsDto> result = new ArrayList<>();
+        Map<Long, TbVmsSttsDto> result = new HashMap<>();
         List<TbVmsCtlr> data = this.repo.findAllList();
         data.forEach(obj -> {
-            result.add(obj.toSttsDto());
+            result.put(obj.getVmsCtlrNmbr(), obj.toSttsDto());
         });
-        return result;
+
+        // 스케쥴 정보 조회
+        List< TbVmsMsgDsplSchInf> schList = this.dsplSchRepo.findAllUsage();
+        schList.forEach(obj -> {
+            Long nmbr = obj.getNmbr();
+            TbVmsSttsDto stts = result.get(nmbr);
+            if (stts != null) {
+                Integer total = obj.getTotal().intValue();
+                Integer used = obj.getUsed().intValue();
+                String trfc = obj.getTrfc();
+                if (StringUtils.equals("5", trfc)) {
+                    stts.setFixedTotal(stts.getFixedTotal()+total);
+                    stts.setFixedUsed(stts.getFixedUsed()+used);
+                }
+                else if (StringUtils.equals("6", trfc)) {
+                    stts.setBasicTotal(stts.getBasicTotal()+total);
+                    stts.setBasicUsed(stts.getBasicUsed()+used);
+                }
+                else {
+                    stts.setAutoTotal(stts.getAutoTotal()+total);
+                    stts.setAutoUsed(stts.getAutoUsed()+used);
+                }
+            }
+        });
+
+        // 표출 메시지 조회
+        List<TbVmsDsplPrst> dsplPrstList = this.dsplPrstRepo.findAll();
+        dsplPrstList.forEach(obj -> {
+            TbVmsSttsDto stts = result.get(obj.getVmsCtlrNmbr());
+            if (stts != null) {
+                stts.setProvideTime(obj.getDsplDt());
+                stts.setProvideCnt(stts.getProvideCnt()+1);
+                stts.setProvideResult(obj.getDnldYn());
+                stts.setProvideSvc(ItsUtils.getServiceYn(obj.getDsplDt()));
+            }
+        });
+
+        return new ArrayList<>(result.values());
     }
 
     /**

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

@@ -68,7 +68,7 @@ public class TbVmsMonitoringService {
 
         //	모니터링유형(1:현시,2,시나리오,3,영상,4:모듈상태)
         List<TbVmsMonitoringDto> result = new ArrayList<>();
-        List<TbVmsMonitoring> data = this.repo.findByName(monitoringType, name);
+        List<TbVmsMonitoring> data = this.repo.findByName(monitoringType, name.trim());
         if (data != null) {
             data.forEach(obj -> {
                 result.add(obj.toDto());
@@ -81,9 +81,9 @@ public class TbVmsMonitoringService {
     @Transactional
     public List<TbVmsMonitoringDto> deleteByName(Integer monitoringType, String name) {
 
-        List<TbVmsMonitoringDto> result = findByName(monitoringType, name);
+        List<TbVmsMonitoringDto> result = findByName(monitoringType, name.trim());
         if (result != null) {
-            this.repo.deleteByName(monitoringType, name);
+            this.repo.deleteByName(monitoringType, name.trim());
         }
         return result;
     }
@@ -94,13 +94,13 @@ public class TbVmsMonitoringService {
         // Repository 에서 Transaction 처리를 수행
 
         // 이름에 해당하는 데이터 삭제
-        this.repo.deleteByName(monitoringType, name);
+        this.repo.deleteByName(monitoringType, req.getOrgMonitoringNm().trim());
 
         // 이름에 해당하는 모든 데이터 저장
         for (MonitoringInfoDto reqObj : req.getInfos()) {
             TbVmsMonitoring obj = TbVmsMonitoring.builder()
                     .monitoringType(monitoringType)
-                    .monitoringNm(name)
+                    .monitoringNm(name.trim())
                     .monitoringSeq(reqObj.getMonitoringSeq())
                     .vmsCtlrNmbr(reqObj.getCtlrNmbr())
                     .build();
@@ -123,7 +123,7 @@ public class TbVmsMonitoringService {
         data.forEach(obj -> {
             result.add(MonitoringListDto.builder()
                     .monitoringType(monitoringType)
-                    .monitoringNm(obj.getName())
+                    .monitoringNm(obj.getName().trim())
                     .count(obj.getCount().intValue())
                     .build());
         });

+ 4 - 0
src/main/resources/application.yml

@@ -31,6 +31,10 @@ spring:
       enabled: always
   resources:
     static-locations: file:src/main/resources/static/
+  mvc:
+    view:
+      prefix: /WEB-INF/jsp/
+      suffix: .jsp
 
   servlet:
     context-path: /

BIN
src/main/webapp/WEB-INF/lib/ojdbc7-12.1.0.2.jar


BIN
src/main/webapp/WEB-INF/lib/tibero6-jdbc-1.0.0.jar