Explorar el Código

monitoring modify api update

shjung hace 3 años
padre
commit
fa72121e26

+ 12 - 0
pom.xml

@@ -193,8 +193,20 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
+<!--        <dependency>-->
+<!--            <groupId>javax.servlet</groupId>-->
+<!--            <artifactId>javax.servlet-api</artifactId>-->
+<!--            <scope>provided</scope>-->
+<!--        </dependency>-->
+
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>

+ 3 - 5
src/main/java/com/its/api/its/controller/cctv/TbCctvMonitoringController.java

@@ -44,13 +44,11 @@ public class TbCctvMonitoringController {
     }
 
     @ApiOperation(value = "CCTV 카메라 모니터링 화면 정보변경/생성(TB_CCTV_MONITORING)", response = TbCctvMonitoringDto.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/camera/{name}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/camera", produces = {"application/json; charset=utf8"})
     public List<TbCctvMonitoringDto> mergeInfo(
-            @ApiParam(name = "name", value = "모니터링이름", example = "Default", required = true)
-            @PathVariable("name") String name,
             @ApiParam(name = "req", value = "모니터링 목록", example = "Default", required = true)
-            @RequestBody @Valid final List<TbCctvMonitoringDto.TbCctvMonitoringUpdReq> req) {
-        return this.service.mergeInfo(3, name, req);
+            @RequestBody @Valid final TbCctvMonitoringDto.TbCctvMonitoringUpdReq req) {
+        return this.service.mergeInfo(3, req.getMonitoringNm(), req);
     }
 
     @ApiOperation(value = "CCTV 카메라 모니터링 화면 정보삭제-모니터링 명칭(TB_CCTV_MONITORING)", response = TbCctvMonitoringDto.class, responseContainer = "ArrayList")

+ 13 - 17
src/main/java/com/its/api/its/controller/vms/TbVmsMonitoringController.java

@@ -40,7 +40,7 @@ public class TbVmsMonitoringController {
 
     // 모니터링 정보 등록/수정
     public List<TbVmsMonitoringDto> mergeInfo(
-            Integer monitoringType, String name, List<TbVmsMonitoringDto.TbVmsMonitoringUpdReq> req) {
+            Integer monitoringType, String name, TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
         return this.service.mergeInfo(monitoringType, name, req);
     }
 
@@ -68,11 +68,10 @@ public class TbVmsMonitoringController {
     }
 
     @ApiOperation(value = "현시 모니터링 정보변경/생성(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/phase/{name}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/phase", produces = {"application/json; charset=utf8"})
     public List<TbVmsMonitoringDto> mergeInfoPhase(
-            @PathVariable("name") String name,
-            @RequestBody final List<TbVmsMonitoringDto.TbVmsMonitoringUpdReq> req) {
-        return mergeInfo(1, name, req);
+            @RequestBody final TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
+        return mergeInfo(1, req.getMonitoringNm(), req);
     }
 
     @ApiOperation(value = "현시 모니터링 정보삭제(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
@@ -101,11 +100,10 @@ public class TbVmsMonitoringController {
     }
 
     @ApiOperation(value = "시나리오 모니터링 정보변경/생성(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/scenario/{name}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/scenario", produces = {"application/json; charset=utf8"})
     public List<TbVmsMonitoringDto> mergeInfoScenario(
-            @PathVariable("name") String name,
-            @RequestBody final List<TbVmsMonitoringDto.TbVmsMonitoringUpdReq> req) {
-        return mergeInfo(2, name, req);
+            @RequestBody final TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
+        return mergeInfo(2, req.getMonitoringNm(), req);
     }
 
     @ApiOperation(value = "시나리오 모니터링 정보삭제(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
@@ -134,11 +132,10 @@ public class TbVmsMonitoringController {
     }
 
     @ApiOperation(value = "영상 모니터링 정보변경/생성(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/camera/{name}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/camera", produces = {"application/json; charset=utf8"})
     public List<TbVmsMonitoringDto> mergeInfoCamera(
-            @PathVariable("name") String name,
-            @RequestBody final List<TbVmsMonitoringDto.TbVmsMonitoringUpdReq> req) {
-        return mergeInfo(3, name, req);
+            @RequestBody final TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
+        return mergeInfo(3, req.getMonitoringNm(), req);
     }
 
     @ApiOperation(value = "영상 모니터링 정보삭제(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
@@ -167,11 +164,10 @@ public class TbVmsMonitoringController {
     }
 
     @ApiOperation(value = "모듈 모니터링 정보변경/생성(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")
-    @PostMapping(value = "/module/{name}", produces = {"application/json; charset=utf8"})
+    @PostMapping(value = "/module", produces = {"application/json; charset=utf8"})
     public List<TbVmsMonitoringDto> mergeInfoModule(
-            @PathVariable("name") String name,
-            @RequestBody final List<TbVmsMonitoringDto.TbVmsMonitoringUpdReq> req) {
-        return mergeInfo(4, name, req);
+            @RequestBody final TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
+        return mergeInfo(4, req.getMonitoringNm(), req);
     }
 
     @ApiOperation(value = "모듈 모니터링 정보삭제(TB_VMS_MONITORING)", response = TbVmsMonitoringDto.class, responseContainer = "ArrayList")

+ 24 - 34
src/main/java/com/its/api/its/model/dto/cctv/TbCctvMonitoringDto.java

@@ -2,13 +2,14 @@ package com.its.api.its.model.dto.cctv;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.its.api.its.model.entity.cctv.TbCctvMonitoring;
+import com.its.api.its.model.dto.common.MonitoringInfoDto;
 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;
 
 /**
  * 웹카메라 모니터링 화면 DTO Class
@@ -71,45 +72,34 @@ public class TbCctvMonitoringDto implements Serializable {
         @JsonIgnore
         private Integer monitoringType;
 
-        /*@ApiModelProperty("모니터링명칭, Nullable = N, VARCHAR(40)")  // N VARCHAR(40)
+        @ApiModelProperty("모니터링명칭, Nullable = N, VARCHAR(40)")  // N VARCHAR(40)
         @JsonProperty("monitoring_nm")
-        @Size(min=1, max=40)*/
-        @JsonIgnore
+        @Size(min=1, max=40)
+        //@JsonIgnore
         private String monitoringNm;
 
-        @ApiModelProperty("모니터링순서, Nullable = N, NUMBER(3)")  // N NUMBER(3)
-        @JsonProperty("monitoring_seq")
-        @PositiveOrZero
-        private Integer monitoringSeq;
-
-        @ApiModelProperty("웹카메라 제어기번호, Nullable = N, NUMBER(10)")  // N NUMBER(10)
-        @JsonProperty("cctv_ctlr_nmbr")
-        @PositiveOrZero
-        private Long cctvCtlrNmbr;
-
-        //@ApiModelProperty("화면에 보여지는 방식(0:기본,1:화면맞춤)), Nullable = Y, NUMBER(1)")  // Y NUMBER(1)
-        //@JsonProperty("view_mode")
-        //@PositiveOrZero
-        @JsonIgnore
-        private Integer viewMode = 0;
+        private List<MonitoringInfoDto> infos;
+//        @ApiModelProperty("모니터링순서, Nullable = N, NUMBER(3)")  // N NUMBER(3)
+//        @JsonProperty("monitoring_seq")
+//        @PositiveOrZero
+//        private Integer monitoringSeq;
+//
+//        @ApiModelProperty("웹카메라 제어기번호, Nullable = N, NUMBER(10)")  // N NUMBER(10)
+//        @JsonProperty("cctv_ctlr_nmbr")
+//        @PositiveOrZero
+//        private Long cctvCtlrNmbr;
+//
+//        //@ApiModelProperty("화면에 보여지는 방식(0:기본,1:화면맞춤)), Nullable = Y, NUMBER(1)")  // Y NUMBER(1)
+//        //@JsonProperty("view_mode")
+//        //@PositiveOrZero
+//        @JsonIgnore
+//        private Integer viewMode = 0;
 
         @Builder
-        public TbCctvMonitoringUpdReq(Integer monitoring_type, String monitoring_nm, Integer monitoring_seq, Long cctv_ctlr_nmbr, Integer view_mode) {
+        public TbCctvMonitoringUpdReq(Integer monitoring_type, String monitoring_nm, List<MonitoringInfoDto> infos) {
             this.monitoringType = monitoring_type;
             this.monitoringNm = monitoring_nm;
-            this.monitoringSeq = monitoring_seq;
-            this.cctvCtlrNmbr = cctv_ctlr_nmbr;
-            this.viewMode = 0;//view_mode;
-        }
-
-        public TbCctvMonitoring toEntity(Integer monitoringType, String monitoringNm) {
-            return TbCctvMonitoring.builder()
-                    .monitoringType(monitoringType)
-                    .monitoringNm(monitoringNm)
-                    .monitoringSeq(this.monitoringSeq)
-                    .cctvCtlrNmbr(this.cctvCtlrNmbr)
-                    .viewMode(this.viewMode)
-                    .build();
+            this.infos = infos;
         }
 
     }

+ 37 - 0
src/main/java/com/its/api/its/model/dto/common/MonitoringInfoDto.java

@@ -0,0 +1,37 @@
+package com.its.api.its.model.dto.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.validation.constraints.PositiveOrZero;
+import java.io.Serializable;
+
+/**
+ * VMS 모니터링 화면 DTO Class
+ */
+@Data
+@Builder
+@ApiModel("MonitoringUpdateInfoDto(모니터링 화면 정보)")
+public class MonitoringInfoDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("모니터링순서, Nullable = N, NUMBER(3)")  // N NUMBER(3)
+    @JsonProperty("monitoring_seq")
+    @PositiveOrZero
+    private Integer monitoringSeq;
+
+    @ApiModelProperty("제어기번호, Nullable = N, NUMBER(10)")  // N NUMBER(10)
+    @JsonProperty("ctlr_nmbr")
+    @PositiveOrZero
+    private Long ctlrNmbr;
+
+    @ApiModelProperty("화면에 보여지는 방식(0:기본,1:화면맞춤)), Nullable = Y, NUMBER(1)")  // Y NUMBER(1)
+    @JsonProperty("view_mode")
+    @PositiveOrZero
+    //@JsonIgnore
+    private Integer viewMode = 0;
+
+}

+ 14 - 21
src/main/java/com/its/api/its/model/dto/vms/TbVmsMonitoringDto.java

@@ -1,7 +1,7 @@
 package com.its.api.its.model.dto.vms;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.its.api.its.model.entity.vms.TbVmsMonitoring;
+import com.its.api.its.model.dto.common.MonitoringInfoDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
@@ -9,6 +9,7 @@ import lombok.*;
 import javax.validation.constraints.PositiveOrZero;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * VMS 모니터링 화면 DTO Class
@@ -68,31 +69,23 @@ public class TbVmsMonitoringDto implements Serializable {
         @Size(min=1, max=40)
         private String monitoringNm;
 
-        @ApiModelProperty("모니터링순서, Nullable = N, NUMBER(3)")  // N NUMBER(3)
-        @JsonProperty("monitoring_seq")
-        @PositiveOrZero
-        private Integer monitoringSeq;
+        private List<MonitoringInfoDto> infos;
 
-        @ApiModelProperty("VMS 제어기 번호, Nullable = N, NUMBER(10)")  // N NUMBER(10)
-        @JsonProperty("vms_ctlr_nmbr")
-        @PositiveOrZero
-        private Long vmsCtlrNmbr;
+//        @ApiModelProperty("모니터링순서, Nullable = N, NUMBER(3)")  // N NUMBER(3)
+//        @JsonProperty("monitoring_seq")
+//        @PositiveOrZero
+//        private Integer monitoringSeq;
+//
+//        @ApiModelProperty("VMS 제어기 번호, Nullable = N, NUMBER(10)")  // N NUMBER(10)
+//        @JsonProperty("vms_ctlr_nmbr")
+//        @PositiveOrZero
+//        private Long vmsCtlrNmbr;
 
         @Builder
-        public TbVmsMonitoringUpdReq(Integer monitoring_type, String monitoring_nm, Integer monitoring_seq, Long vms_ctlr_nmbr) {
+        public TbVmsMonitoringUpdReq(Integer monitoring_type, String monitoring_nm, List<MonitoringInfoDto> infos) {
             this.monitoringType = monitoring_type;
             this.monitoringNm = monitoring_nm;
-            this.monitoringSeq = monitoring_seq;
-            this.vmsCtlrNmbr = vms_ctlr_nmbr;
-        }
-
-        public TbVmsMonitoring toEntity(Integer monitoringType, String monitoringNm) {
-            return TbVmsMonitoring.builder()
-                    .monitoringType(monitoringType)
-                    .monitoringNm(monitoringNm)
-                    .monitoringSeq(this.monitoringSeq)
-                    .vmsCtlrNmbr(this.vmsCtlrNmbr)
-                    .build();
+            this.infos = infos;
         }
 
     }

+ 0 - 5
src/main/java/com/its/api/its/model/entity/cctv/TbCctvMonitoring.java

@@ -85,9 +85,4 @@ public class TbCctvMonitoring implements Serializable {
         this.monitoringSeq = monitoringSeq;
     }
 
-    public void updateInfo(TbCctvMonitoringDto.TbCctvMonitoringUpdReq req) {
-        this.cctvCtlrNmbr = req.getCctvCtlrNmbr();
-        this.viewMode = req.getViewMode();
-    }
-
 }

+ 0 - 4
src/main/java/com/its/api/its/model/entity/vms/TbVmsMonitoring.java

@@ -80,8 +80,4 @@ public class TbVmsMonitoring implements Serializable {
         this.monitoringSeq = monitoringSeq;
     }
 
-    public void updateInfo(TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
-        this.vmsCtlrNmbr = req.getVmsCtlrNmbr();
-    }
-
 }

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

@@ -2,6 +2,7 @@ package com.its.api.its.service.cctv;
 
 import com.its.api.its.model.dto.cctv.TbCctvCtlrDto;
 import com.its.api.its.model.dto.cctv.TbCctvMonitoringDto;
+import com.its.api.its.model.dto.common.MonitoringInfoDto;
 import com.its.api.its.model.dto.common.MonitoringListDto;
 import com.its.api.its.model.dto.common.MonitoringListInf;
 import com.its.api.its.model.entity.cctv.TbCctvMonitoring;
@@ -75,17 +76,8 @@ public class TbCctvMonitoringService {
         return result;
     }
 
-    // 데이터 변경
-    @Transactional
-    public TbCctvMonitoringDto updateById(TbCctvMonitoringKey id, TbCctvMonitoringDto.TbCctvMonitoringUpdReq req) {
-        TbCctvMonitoring entity = requireOne(id);
-        entity.updateInfo(req);
-        this.repo.save(entity);
-        return entity.toDto();
-    }
-
     // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
-    public List<TbCctvMonitoringDto> mergeInfo(Integer monitoringType, String name, List<TbCctvMonitoringDto.TbCctvMonitoringUpdReq> reqList) {
+    public List<TbCctvMonitoringDto> mergeInfo(Integer monitoringType, String name, TbCctvMonitoringDto.TbCctvMonitoringUpdReq req) {
 
         // Repository 에서 Transaction 처리를 수행
 
@@ -93,8 +85,14 @@ public class TbCctvMonitoringService {
         this.repo.deleteByName(monitoringType, name);
 
         // 이름에 해당하는 모든 데이터 저장
-        for (TbCctvMonitoringDto.TbCctvMonitoringUpdReq req : reqList) {
-            TbCctvMonitoring obj = req.toEntity(monitoringType, name);
+        for (MonitoringInfoDto reqObj : req.getInfos()) {
+            TbCctvMonitoring obj = TbCctvMonitoring.builder()
+                    .monitoringType(monitoringType)
+                    .monitoringNm(name)
+                    .monitoringSeq(reqObj.getMonitoringSeq())
+                    .cctvCtlrNmbr(reqObj.getCtlrNmbr())
+                    .viewMode(reqObj.getViewMode())
+                    .build();
             obj.setType(monitoringType);
             this.repo.save(obj);
         }

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

@@ -1,5 +1,6 @@
 package com.its.api.its.service.vms;
 
+import com.its.api.its.model.dto.common.MonitoringInfoDto;
 import com.its.api.its.model.dto.common.MonitoringListDto;
 import com.its.api.its.model.dto.common.MonitoringListInf;
 import com.its.api.its.model.dto.vms.TbVmsCtlrDto;
@@ -88,7 +89,7 @@ public class TbVmsMonitoringService {
     }
 
     // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
-    public List<TbVmsMonitoringDto> mergeInfo(Integer monitoringType, String name, List<TbVmsMonitoringDto.TbVmsMonitoringUpdReq> reqList) {
+    public List<TbVmsMonitoringDto> mergeInfo(Integer monitoringType, String name, TbVmsMonitoringDto.TbVmsMonitoringUpdReq req) {
 
         // Repository 에서 Transaction 처리를 수행
 
@@ -96,8 +97,13 @@ public class TbVmsMonitoringService {
         this.repo.deleteByName(monitoringType, name);
 
         // 이름에 해당하는 모든 데이터 저장
-        for (TbVmsMonitoringDto.TbVmsMonitoringUpdReq req : reqList) {
-            TbVmsMonitoring obj = req.toEntity(monitoringType, name);
+        for (MonitoringInfoDto reqObj : req.getInfos()) {
+            TbVmsMonitoring obj = TbVmsMonitoring.builder()
+                    .monitoringType(monitoringType)
+                    .monitoringNm(name)
+                    .monitoringSeq(reqObj.getMonitoringSeq())
+                    .vmsCtlrNmbr(reqObj.getCtlrNmbr())
+                    .build();
             obj.setType(monitoringType);
             this.repo.save(obj);
         }

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

@@ -24,10 +24,6 @@ server:
       enabled: true
     include-exception: false
     include-stacktrace: never
-  servlet:
-    context-path: /
-    session:
-      timeout: 300
 
 spring:
   output:
@@ -35,6 +31,17 @@ spring:
       enabled: always
   resources:
     static-locations: file:src/main/resources/static/
+
+  servlet:
+    context-path: /
+    session:
+      timeout: 300
+#    multipart:
+#      enabled: true
+#      file-size-threshold: 2KB
+#      max-file-size: 200MB
+#      max-request-size: 215MB
+
   profiles:
     active: dev
   main:

+ 10 - 0
src/main/resources/static/index.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>YONGIN ITS Operator System</title>
+</head>
+<body>
+    <h1>YONGIN ITS Operator System</h1>
+</body>
+</html>