Jelajahi Sumber

common code delete key

shjung 3 tahun lalu
induk
melakukan
0d6babc196
47 mengubah file dengan 2232 tambahan dan 29 penghapusan
  1. 13 0
      .jpb/jpb-settings.xml
  2. 1 1
      src/main/java/com/its/op/ItsOpServerApplication.java
  3. 9 0
      src/main/java/com/its/op/TestClass.java
  4. 4 0
      src/main/java/com/its/op/common/CommonTest.java
  5. 63 0
      src/main/java/com/its/op/common/controller/TbAtrdController.java
  6. 49 0
      src/main/java/com/its/op/common/dto/TbAtrdDto.java
  7. 35 0
      src/main/java/com/its/op/common/dto/TbAtrdRoadRltnDto.java
  8. 266 0
      src/main/java/com/its/op/common/dto/TbCctvCtlrDto.java
  9. 35 0
      src/main/java/com/its/op/common/dto/TbCctvGropCtlrDto.java
  10. 35 0
      src/main/java/com/its/op/common/dto/TbCctvGropMngmDto.java
  11. 49 0
      src/main/java/com/its/op/common/dto/TbCctvMonitoringDto.java
  12. 70 0
      src/main/java/com/its/op/common/dto/TbCctvPsetDto.java
  13. 65 0
      src/main/java/com/its/op/common/entity/TbAtrd.java
  14. 11 0
      src/main/java/com/its/op/common/repository/TbAtrdRepository.java
  15. 58 0
      src/main/java/com/its/op/common/service/TbAtrdService.java
  16. 50 0
      src/main/java/com/its/op/common/vo/TbAtrdQueryVo.java
  17. 36 0
      src/main/java/com/its/op/common/vo/TbAtrdRoadRltnQueryVo.java
  18. 16 0
      src/main/java/com/its/op/common/vo/TbAtrdRoadRltnUpdateVo.java
  19. 39 0
      src/main/java/com/its/op/common/vo/TbAtrdRoadRltnVo.java
  20. 16 0
      src/main/java/com/its/op/common/vo/TbAtrdUpdateVo.java
  21. 58 0
      src/main/java/com/its/op/common/vo/TbAtrdVo.java
  22. 267 0
      src/main/java/com/its/op/common/vo/TbCctvCtlrQueryVo.java
  23. 16 0
      src/main/java/com/its/op/common/vo/TbCctvCtlrUpdateVo.java
  24. 269 0
      src/main/java/com/its/op/common/vo/TbCctvCtlrVo.java
  25. 36 0
      src/main/java/com/its/op/common/vo/TbCctvGropCtlrQueryVo.java
  26. 16 0
      src/main/java/com/its/op/common/vo/TbCctvGropCtlrUpdateVo.java
  27. 39 0
      src/main/java/com/its/op/common/vo/TbCctvGropCtlrVo.java
  28. 36 0
      src/main/java/com/its/op/common/vo/TbCctvGropMngmQueryVo.java
  29. 16 0
      src/main/java/com/its/op/common/vo/TbCctvGropMngmUpdateVo.java
  30. 38 0
      src/main/java/com/its/op/common/vo/TbCctvGropMngmVo.java
  31. 50 0
      src/main/java/com/its/op/common/vo/TbCctvMonitoringQueryVo.java
  32. 16 0
      src/main/java/com/its/op/common/vo/TbCctvMonitoringUpdateVo.java
  33. 55 0
      src/main/java/com/its/op/common/vo/TbCctvMonitoringVo.java
  34. 71 0
      src/main/java/com/its/op/common/vo/TbCctvPsetQueryVo.java
  35. 16 0
      src/main/java/com/its/op/common/vo/TbCctvPsetUpdateVo.java
  36. 74 0
      src/main/java/com/its/op/common/vo/TbCctvPsetVo.java
  37. 5 2
      src/main/java/com/its/op/config/DatabaseConfig.java
  38. 2 2
      src/main/java/com/its/op/controller/database/CodeController.java
  39. 1 0
      src/main/java/com/its/op/global/CodeManager.java
  40. 0 18
      src/main/java/com/its/op/model/mapper/UserInfrMapper.java
  41. 4 4
      src/main/java/com/its/op/service/database/CmmnCdService.java
  42. 3 2
      src/main/resources/application.yml
  43. 13 0
      src/test/java/com.its.op.model.entity.controller.impl/CustomUtils.java
  44. 93 0
      src/test/java/com.its.op.model.entity.controller.impl/VmsCtlrControllerImplTest.java
  45. 13 0
      src/test/java/com.its.op.model.entity.controller/CustomUtils.java
  46. 18 0
      src/test/java/com.its.op.model.entity.controller/VmsCtlrBuilder.java
  47. 87 0
      src/test/java/com.its.op.model.entity.controller/VmsCtlrControllerTest.java

+ 13 - 0
.jpb/jpb-settings.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JpaPluginProjectSettings" dtoSerializableType="2">
+    <option name="entityNameTemplate" value="${className.underscore()}" />
+    <option name="useConstantsForEntities" value="true" />
+    <option name="constantsOnTableName" value="false" />
+    <option name="isLombokGetterAndSetter" value="true" />
+    <option name="isLombokBuilder" value="true" />
+    <option name="isLombokAllArgsConstructor" value="true" />
+    <option name="isLombokNoArgsConstructor" value="true" />
+    <option name="scaffoldingLanguage" />
+  </component>
+</project>

+ 1 - 1
src/main/java/com/its/op/ItsOpServerApplication.java

@@ -27,7 +27,7 @@ import java.util.Date;
 @EnableAsync
 @Configuration
 @SpringBootApplication
-@ComponentScan(basePackages = {"com.its.op.config", "com.its.op.repository.mapper.*", "com.its.op"})
+@ComponentScan(basePackages = {"com.its.op.config", "com.its.op.common", "com.its.op.repository.mapper.*", "com.its.op"})
 @CrossOrigin("*")
 public class ItsOpServerApplication implements CommandLineRunner, ApplicationListener<ContextClosedEvent>, InitializingBean, DisposableBean {
 

+ 9 - 0
src/main/java/com/its/op/TestClass.java

@@ -0,0 +1,9 @@
+package com.its.op;
+
+import lombok.Data;
+
+@Data
+public class TestClass {
+
+    private String field1;
+}

+ 4 - 0
src/main/java/com/its/op/common/CommonTest.java

@@ -0,0 +1,4 @@
+package com.its.op.common;
+
+public class CommonTest {
+}

+ 63 - 0
src/main/java/com/its/op/common/controller/TbAtrdController.java

@@ -0,0 +1,63 @@
+package com.its.op.common.controller;
+
+import com.its.op.common.dto.TbAtrdDto;
+import com.its.op.common.service.TbAtrdService;
+import com.its.op.common.vo.TbAtrdQueryVo;
+import com.its.op.common.vo.TbAtrdUpdateVo;
+import com.its.op.common.vo.TbAtrdVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.data.domain.Page;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+@Api(tags = "간선도로")
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/tbAtrd")
+public class TbAtrdController {
+
+    private final TbAtrdService tbAtrdService;
+
+    @PostMapping
+    @ApiOperation("Save 간선도로")
+    public String save(@Valid @RequestBody TbAtrdVo vo) {
+        return tbAtrdService.save(vo).toString();
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation("Delete 간선도로")
+    public void delete(@Valid @NotNull @PathVariable("id") String id) {
+        tbAtrdService.delete(id);
+    }
+
+    @PutMapping("/{id}")
+    @ApiOperation("Update 간선도로")
+    public void update(@Valid @NotNull @PathVariable("id") String id,
+                       @Valid @RequestBody TbAtrdUpdateVo vo) {
+        tbAtrdService.update(id, vo);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation("Retrieve by ID 간선도로")
+    public TbAtrdDto getById(@Valid @NotNull @PathVariable("id") String id) {
+        return tbAtrdService.getById(id);
+    }
+
+    @GetMapping
+    @ApiOperation("Retrieve by query 간선도로")
+    public Page<TbAtrdDto> query(@Valid TbAtrdQueryVo vo) {
+        return tbAtrdService.query(vo);
+    }
+
+    /*@GetMapping
+    @ApiOperation("Retrieve by query 간선도로")
+    public Page<TbAtrdDto> query(@Valid TbAtrdQueryVo vo) {
+        return tbAtrdService.query(vo);
+    }*/
+}

+ 49 - 0
src/main/java/com/its/op/common/dto/TbAtrdDto.java

@@ -0,0 +1,49 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("간선도로")
+public class TbAtrdDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 간선도로 ID
+     */
+    @ApiModelProperty("간선도로 ID")
+    private String atrdId;
+
+
+    /**
+     * 간선도로 명
+     */
+    @ApiModelProperty("간선도로 명")
+    private String atrdNm;
+
+
+    /**
+     * 방향 코드
+     */
+    @ApiModelProperty("방향 코드")
+    private String drctCd;
+
+
+    /**
+     * 지역 코드
+     */
+    @ApiModelProperty("지역 코드")
+    private String areaCd;
+
+
+    /**
+     * 삭제 여부
+     */
+    @ApiModelProperty("삭제 여부")
+    private String delYn;
+
+}

+ 35 - 0
src/main/java/com/its/op/common/dto/TbAtrdRoadRltnDto.java

@@ -0,0 +1,35 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("간선도로 도로 관계")
+public class TbAtrdRoadRltnDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 간선도로 ID
+     */
+    @ApiModelProperty("간선도로 ID")
+    private String atrdId;
+
+
+    /**
+     * 도로 ID
+     */
+    @ApiModelProperty("도로 ID")
+    private String roadId;
+
+
+    /**
+     * 순서
+     */
+    @ApiModelProperty("순서")
+    private String ORD;
+
+}

+ 266 - 0
src/main/java/com/its/op/common/dto/TbCctvCtlrDto.java

@@ -0,0 +1,266 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("CCTV 제어기")
+public class TbCctvCtlrDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * CCTV 관리 번호
+     */
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * CCTV 제어기 ID
+     */
+    @ApiModelProperty("CCTV 제어기 ID")
+    private String cctvCtlrId;
+
+
+    /**
+     * CCTV 제어기 아이피
+     */
+    @ApiModelProperty("CCTV 제어기 아이피")
+    private String cctvCtlrIp;
+
+
+    /**
+     * CCTV 제어기 포트
+     */
+    @ApiModelProperty("CCTV 제어기 포트")
+    private String cctvCtlrPort;
+
+
+    /**
+     * CCTV 자막기 아이피
+     */
+    @ApiModelProperty("CCTV 자막기 아이피")
+    private String cctvCaptIp;
+
+
+    /**
+     * CCTV 자막기 포트
+     */
+    @ApiModelProperty("CCTV 자막기 포트")
+    private String cctvCaptPort;
+
+
+    /**
+     * CCTV 광장비 아이피
+     */
+    @ApiModelProperty("CCTV 광장비 아이피")
+    private String cctvFibrIp;
+
+
+    /**
+     * CCTV 인코더 아이피
+     */
+    @ApiModelProperty("CCTV 인코더 아이피")
+    private String cctvEncdIp;
+
+
+    /**
+     * 스트리밍 서버 아이피
+     */
+    @ApiModelProperty("스트리밍 서버 아이피")
+    private String strmSvrIp;
+
+
+    /**
+     * 스트리밍 서버 포트
+     */
+    @ApiModelProperty("스트리밍 서버 포트")
+    private String strmSvrPort;
+
+
+    /**
+     * 스트리밍 세션 명
+     */
+    @ApiModelProperty("스트리밍 세션 명")
+    private String strmSesnNm;
+
+
+    /**
+     * X 좌표
+     */
+    @ApiModelProperty("X 좌표")
+    private String xCrdn;
+
+
+    /**
+     * Y 좌표
+     */
+    @ApiModelProperty("Y 좌표")
+    private String yCrdn;
+
+
+    /**
+     * 설치 위치 명
+     */
+    @ApiModelProperty("설치 위치 명")
+    private String istlLctnNm;
+
+
+    /**
+     * 설치 위치 주소
+     */
+    @ApiModelProperty("설치 위치 주소")
+    private String istlLctnAddr;
+
+
+    /**
+     * CCTV 채널
+     */
+    @ApiModelProperty("CCTV 채널")
+    private String cctvChnl;
+
+
+    /**
+     * 삭제 여부
+     */
+    @ApiModelProperty("삭제 여부")
+    private String delYn;
+
+
+    /**
+     * 최초 등록자 번호
+     */
+    @ApiModelProperty("최초 등록자 번호")
+    private String frstRegrNmbr;
+
+
+    /**
+     * 최초 등록 일시
+     */
+    @ApiModelProperty("최초 등록 일시")
+    private String frstRgstDt;
+
+
+    /**
+     * 최종 수정자 번호
+     */
+    @ApiModelProperty("최종 수정자 번호")
+    private String lastCrprNmbr;
+
+
+    /**
+     * 최종 수정 일시
+     */
+    @ApiModelProperty("최종 수정 일시")
+    private String lastCrctDt;
+
+
+    /**
+     * 링크ID
+     */
+    @ApiModelProperty("링크ID")
+    private String linkId;
+
+
+    /**
+     * 노드ID
+     */
+    @ApiModelProperty("노드ID")
+    private String nodeId;
+
+
+    /**
+     * 공단 CCTV ID
+     */
+    @ApiModelProperty("공단 CCTV ID")
+    private String cctvId;
+
+
+    /**
+     * 연계 포트
+     */
+    @ApiModelProperty("연계 포트")
+    private String relyPort;
+
+
+    /**
+     * 스트리밍 RTSP 주소
+     */
+    @ApiModelProperty("스트리밍 RTSP 주소")
+    private String strmRtspAddr;
+
+
+    /**
+     * 스트리밍 RTMP 주소
+     */
+    @ApiModelProperty("스트리밍 RTMP 주소")
+    private String strmRtmpAddr;
+
+
+    /**
+     * 스트리밍 HTTP 주소
+     */
+    @ApiModelProperty("스트리밍 HTTP 주소")
+    private String strmHttpAddr;
+
+
+    /**
+     * 스트리밍 저장 주소
+     */
+    @ApiModelProperty("스트리밍 저장 주소")
+    private String strmStorAddr;
+
+
+    /**
+     * 지역 코드
+     */
+    @ApiModelProperty("지역 코드")
+    private String areaCd;
+
+
+    /**
+     * CCTV 유형(1:제노시스,2:프로브디지터,3:영국전자)
+     */
+    @ApiModelProperty("CCTV 유형(1:제노시스,2:프로브디지터,3:영국전자)")
+    private String cctvType;
+
+
+    /**
+     * CCTV 대체 영상
+     */
+    @ApiModelProperty("CCTV 대체 영상")
+    private byte[] cctvSbstImgn;
+
+
+    /**
+     * CCTV 대체 표출 여부
+     */
+    @ApiModelProperty("CCTV 대체 표출 여부")
+    private String cctvSbstDsplYn;
+
+
+    /**
+     * CCTV 지역 구분
+     */
+    @ApiModelProperty("CCTV 지역 구분")
+    private String cctvAreaDvsn;
+
+
+    /**
+     * 내부 RTMP 주소
+     */
+    @ApiModelProperty("내부 RTMP 주소")
+    private String intrRtmpAddr;
+
+
+    /**
+     * 운영자 제어 여부
+     */
+    @ApiModelProperty("운영자 제어 여부")
+    private String syopCntlYn;
+
+}

+ 35 - 0
src/main/java/com/its/op/common/dto/TbCctvGropCtlrDto.java

@@ -0,0 +1,35 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("CCTV 그룹-제어기")
+public class TbCctvGropCtlrDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * CCTV 그룹 번호
+     */
+    @ApiModelProperty("CCTV 그룹 번호")
+    private String cctvGropNmbr;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * 순서
+     */
+    @ApiModelProperty("순서")
+    private String ORD;
+
+}

+ 35 - 0
src/main/java/com/its/op/common/dto/TbCctvGropMngmDto.java

@@ -0,0 +1,35 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("CCTV 그룹 관리")
+public class TbCctvGropMngmDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * CCTV 그룹 번호
+     */
+    @ApiModelProperty("CCTV 그룹 번호")
+    private String cctvGropNmbr;
+
+
+    /**
+     * CCTV 그룹 명
+     */
+    @ApiModelProperty("CCTV 그룹 명")
+    private String cctvGropNm;
+
+
+    /**
+     * CCTV 그룹 유형
+     */
+    @ApiModelProperty("CCTV 그룹 유형")
+    private String cctvGropType;
+
+}

+ 49 - 0
src/main/java/com/its/op/common/dto/TbCctvMonitoringDto.java

@@ -0,0 +1,49 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("웹카메라 모니터링 화면")
+public class TbCctvMonitoringDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 모니터링유형(1:예비,2,예비,3,영상,4:예비)
+     */
+    @ApiModelProperty("모니터링유형(1:예비,2,예비,3,영상,4:예비)")
+    private String monitoringType;
+
+
+    /**
+     * 모니터링명칭
+     */
+    @ApiModelProperty("모니터링명칭")
+    private String monitoringNm;
+
+
+    /**
+     * 모니터링순서
+     */
+    @ApiModelProperty("모니터링순서")
+    private String monitoringSeq;
+
+
+    /**
+     * 웹카메라 제어기번호
+     */
+    @ApiModelProperty("웹카메라 제어기번호")
+    private String cctvCtlrNmbr;
+
+
+    /**
+     * 화면에 보여지는 방식(0:기본,1:화면맞춤))
+     */
+    @ApiModelProperty("화면에 보여지는 방식(0:기본,1:화면맞춤))")
+    private String viewMode;
+
+}

+ 70 - 0
src/main/java/com/its/op/common/dto/TbCctvPsetDto.java

@@ -0,0 +1,70 @@
+package com.its.op.common.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("CCTV 프리셋")
+public class TbCctvPsetDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * CCTV 관리 번호
+     */
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * 프리셋 번호
+     */
+    @ApiModelProperty("프리셋 번호")
+    private String psetNmbr;
+
+
+    /**
+     * 팬 값
+     */
+    @ApiModelProperty("팬 값")
+    private String panVal;
+
+
+    /**
+     * 틸트 값
+     */
+    @ApiModelProperty("틸트 값")
+    private String tiltVal;
+
+
+    /**
+     * 줌 값
+     */
+    @ApiModelProperty("줌 값")
+    private String zoomVal;
+
+
+    /**
+     * 초점 값
+     */
+    @ApiModelProperty("초점 값")
+    private String focsVal;
+
+
+    /**
+     * 프리셋 명
+     */
+    @ApiModelProperty("프리셋 명")
+    private String psetNm;
+
+
+    /**
+     * 디폴트 여부
+     */
+    @ApiModelProperty("디폴트 여부")
+    private String dfltYn;
+
+}

+ 65 - 0
src/main/java/com/its/op/common/entity/TbAtrd.java

@@ -0,0 +1,65 @@
+package com.its.op.common.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * 간선도로
+ */
+@Getter @Setter
+@NoArgsConstructor
+@Builder
+@AllArgsConstructor
+@Entity
+@ApiModel("간선도로")
+@Table(name = "TB_ATRD")
+@Accessors(chain = true)
+public class TbAtrd implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 간선도로 ID
+     */
+    @Id
+    @ApiModelProperty("간선도로 ID")
+    @Column(name = "ATRD_ID", nullable = false)
+    private String atrdId;
+
+    /**
+     * 간선도로 명
+     */
+    @Column(name = "ATRD_NM")
+    @ApiModelProperty("간선도로 명")
+    private String atrdNm;
+
+    /**
+     * 방향 코드
+     */
+    @Column(name = "DRCT_CD")
+    @ApiModelProperty("방향 코드")
+    private String drctCd = "";
+
+    /**
+     * 지역 코드
+     */
+    @Column(name = "AREA_CD")
+    @ApiModelProperty("지역 코드")
+    private String areaCd = "";
+
+    /**
+     * 삭제 여부
+     */
+    @Column(name = "DEL_YN")
+    @ApiModelProperty("삭제 여부")
+    private String delYn = "N";
+
+}

+ 11 - 0
src/main/java/com/its/op/common/repository/TbAtrdRepository.java

@@ -0,0 +1,11 @@
+package com.its.op.common.repository;
+
+import com.its.op.common.entity.TbAtrd;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface TbAtrdRepository extends JpaRepository<TbAtrd, String>, JpaSpecificationExecutor<TbAtrd> {
+
+}

+ 58 - 0
src/main/java/com/its/op/common/service/TbAtrdService.java

@@ -0,0 +1,58 @@
+package com.its.op.common.service;
+
+import com.its.op.common.dto.TbAtrdDto;
+import com.its.op.common.entity.TbAtrd;
+import com.its.op.common.repository.TbAtrdRepository;
+import com.its.op.common.vo.TbAtrdQueryVo;
+import com.its.op.common.vo.TbAtrdUpdateVo;
+import com.its.op.common.vo.TbAtrdVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.domain.Page;
+import org.springframework.stereotype.Service;
+
+import java.util.NoSuchElementException;
+
+@RequiredArgsConstructor
+@Service
+public class TbAtrdService {
+
+    private final TbAtrdRepository tbAtrdRepository;
+
+    public String save(TbAtrdVo vo) {
+        TbAtrd bean = new TbAtrd();
+        BeanUtils.copyProperties(vo, bean);
+        bean = tbAtrdRepository.save(bean);
+        return bean.getAtrdId();
+    }
+
+    public void delete(String id) {
+        tbAtrdRepository.deleteById(id);
+    }
+
+    public void update(String id, TbAtrdUpdateVo vo) {
+        TbAtrd bean = requireOne(id);
+        BeanUtils.copyProperties(vo, bean);
+        tbAtrdRepository.save(bean);
+    }
+
+    public TbAtrdDto getById(String id) {
+        TbAtrd original = requireOne(id);
+        return toDto(original);
+    }
+
+    public Page<TbAtrdDto> query(TbAtrdQueryVo vo) {
+        throw new UnsupportedOperationException();
+    }
+
+    private TbAtrdDto toDto(TbAtrd original) {
+        TbAtrdDto bean = new TbAtrdDto();
+        BeanUtils.copyProperties(original, bean);
+        return bean;
+    }
+
+    private TbAtrd requireOne(String id) {
+        return tbAtrdRepository.findById(id)
+                .orElseThrow(() -> new NoSuchElementException("Resource not found: " + id));
+    }
+}

+ 50 - 0
src/main/java/com/its/op/common/vo/TbAtrdQueryVo.java

@@ -0,0 +1,50 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query 간선도로")
+public class TbAtrdQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 간선도로 ID
+     */
+    @ApiModelProperty("간선도로 ID")
+    private String atrdId;
+
+
+    /**
+     * 간선도로 명
+     */
+    @ApiModelProperty("간선도로 명")
+    private String atrdNm;
+
+
+    /**
+     * 방향 코드
+     */
+    @ApiModelProperty("방향 코드")
+    private String drctCd;
+
+
+    /**
+     * 지역 코드
+     */
+    @ApiModelProperty("지역 코드")
+    private String areaCd;
+
+
+    /**
+     * 삭제 여부
+     */
+    @ApiModelProperty("삭제 여부")
+    private String delYn;
+
+}

+ 36 - 0
src/main/java/com/its/op/common/vo/TbAtrdRoadRltnQueryVo.java

@@ -0,0 +1,36 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query 간선도로 도로 관계")
+public class TbAtrdRoadRltnQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 간선도로 ID
+     */
+    @ApiModelProperty("간선도로 ID")
+    private String atrdId;
+
+
+    /**
+     * 도로 ID
+     */
+    @ApiModelProperty("도로 ID")
+    private String roadId;
+
+
+    /**
+     * 순서
+     */
+    @ApiModelProperty("순서")
+    private String ORD;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbAtrdRoadRltnUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update 간선도로 도로 관계")
+@EqualsAndHashCode(callSuper = false)
+public class TbAtrdRoadRltnUpdateVo extends TbAtrdRoadRltnVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 39 - 0
src/main/java/com/its/op/common/vo/TbAtrdRoadRltnVo.java

@@ -0,0 +1,39 @@
+package com.its.op.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save 간선도로 도로 관계")
+public class TbAtrdRoadRltnVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 간선도로 ID
+     */
+    @NotNull(message = "atrdId can not null")
+    @ApiModelProperty("간선도로 ID")
+    private String atrdId;
+
+
+    /**
+     * 도로 ID
+     */
+    @NotNull(message = "roadId can not null")
+    @ApiModelProperty("도로 ID")
+    private String roadId;
+
+
+    /**
+     * 순서
+     */
+    @ApiModelProperty("순서")
+    private String ORD;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbAtrdUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update 간선도로")
+@EqualsAndHashCode(callSuper = false)
+public class TbAtrdUpdateVo extends TbAtrdVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 58 - 0
src/main/java/com/its/op/common/vo/TbAtrdVo.java

@@ -0,0 +1,58 @@
+package com.its.op.common.vo;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save 간선도로")
+public class TbAtrdVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 간선도로 ID
+     */
+    @NotNull(message = "atrdId can not null")
+    @ApiModelProperty("간선도로 ID")
+    @JsonProperty("atrd_id")
+    private String atrdId;
+
+
+    /**
+     * 간선도로 명
+     */
+    @ApiModelProperty("간선도로 명")
+    @JsonProperty("atrd_nm")
+    private String atrdNm;
+
+
+    /**
+     * 방향 코드
+     */
+    @ApiModelProperty("방향 코드")
+    @JsonProperty("drct_cd")
+    private String drctCd;
+
+
+    /**
+     * 지역 코드
+     */
+    @ApiModelProperty("지역 코드")
+    @JsonProperty("area_cd")
+    private String areaCd;
+
+
+    /**
+     * 삭제 여부
+     */
+    @ApiModelProperty("삭제 여부")
+    @JsonProperty("del_yn")
+    private String delYn;
+
+}

+ 267 - 0
src/main/java/com/its/op/common/vo/TbCctvCtlrQueryVo.java

@@ -0,0 +1,267 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query CCTV 제어기")
+public class TbCctvCtlrQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * CCTV 제어기 ID
+     */
+    @ApiModelProperty("CCTV 제어기 ID")
+    private String cctvCtlrId;
+
+
+    /**
+     * CCTV 제어기 아이피
+     */
+    @ApiModelProperty("CCTV 제어기 아이피")
+    private String cctvCtlrIp;
+
+
+    /**
+     * CCTV 제어기 포트
+     */
+    @ApiModelProperty("CCTV 제어기 포트")
+    private String cctvCtlrPort;
+
+
+    /**
+     * CCTV 자막기 아이피
+     */
+    @ApiModelProperty("CCTV 자막기 아이피")
+    private String cctvCaptIp;
+
+
+    /**
+     * CCTV 자막기 포트
+     */
+    @ApiModelProperty("CCTV 자막기 포트")
+    private String cctvCaptPort;
+
+
+    /**
+     * CCTV 광장비 아이피
+     */
+    @ApiModelProperty("CCTV 광장비 아이피")
+    private String cctvFibrIp;
+
+
+    /**
+     * CCTV 인코더 아이피
+     */
+    @ApiModelProperty("CCTV 인코더 아이피")
+    private String cctvEncdIp;
+
+
+    /**
+     * 스트리밍 서버 아이피
+     */
+    @ApiModelProperty("스트리밍 서버 아이피")
+    private String strmSvrIp;
+
+
+    /**
+     * 스트리밍 서버 포트
+     */
+    @ApiModelProperty("스트리밍 서버 포트")
+    private String strmSvrPort;
+
+
+    /**
+     * 스트리밍 세션 명
+     */
+    @ApiModelProperty("스트리밍 세션 명")
+    private String strmSesnNm;
+
+
+    /**
+     * X 좌표
+     */
+    @ApiModelProperty("X 좌표")
+    private String xCrdn;
+
+
+    /**
+     * Y 좌표
+     */
+    @ApiModelProperty("Y 좌표")
+    private String yCrdn;
+
+
+    /**
+     * 설치 위치 명
+     */
+    @ApiModelProperty("설치 위치 명")
+    private String istlLctnNm;
+
+
+    /**
+     * 설치 위치 주소
+     */
+    @ApiModelProperty("설치 위치 주소")
+    private String istlLctnAddr;
+
+
+    /**
+     * CCTV 채널
+     */
+    @ApiModelProperty("CCTV 채널")
+    private String cctvChnl;
+
+
+    /**
+     * 삭제 여부
+     */
+    @ApiModelProperty("삭제 여부")
+    private String delYn;
+
+
+    /**
+     * 최초 등록자 번호
+     */
+    @ApiModelProperty("최초 등록자 번호")
+    private String frstRegrNmbr;
+
+
+    /**
+     * 최초 등록 일시
+     */
+    @ApiModelProperty("최초 등록 일시")
+    private String frstRgstDt;
+
+
+    /**
+     * 최종 수정자 번호
+     */
+    @ApiModelProperty("최종 수정자 번호")
+    private String lastCrprNmbr;
+
+
+    /**
+     * 최종 수정 일시
+     */
+    @ApiModelProperty("최종 수정 일시")
+    private String lastCrctDt;
+
+
+    /**
+     * 링크ID
+     */
+    @ApiModelProperty("링크ID")
+    private String linkId;
+
+
+    /**
+     * 노드ID
+     */
+    @ApiModelProperty("노드ID")
+    private String nodeId;
+
+
+    /**
+     * 공단 CCTV ID
+     */
+    @ApiModelProperty("공단 CCTV ID")
+    private String cctvId;
+
+
+    /**
+     * 연계 포트
+     */
+    @ApiModelProperty("연계 포트")
+    private String relyPort;
+
+
+    /**
+     * 스트리밍 RTSP 주소
+     */
+    @ApiModelProperty("스트리밍 RTSP 주소")
+    private String strmRtspAddr;
+
+
+    /**
+     * 스트리밍 RTMP 주소
+     */
+    @ApiModelProperty("스트리밍 RTMP 주소")
+    private String strmRtmpAddr;
+
+
+    /**
+     * 스트리밍 HTTP 주소
+     */
+    @ApiModelProperty("스트리밍 HTTP 주소")
+    private String strmHttpAddr;
+
+
+    /**
+     * 스트리밍 저장 주소
+     */
+    @ApiModelProperty("스트리밍 저장 주소")
+    private String strmStorAddr;
+
+
+    /**
+     * 지역 코드
+     */
+    @ApiModelProperty("지역 코드")
+    private String areaCd;
+
+
+    /**
+     * CCTV 유형(1:제노시스,2:프로브디지터,3:영국전자)
+     */
+    @ApiModelProperty("CCTV 유형(1:제노시스,2:프로브디지터,3:영국전자)")
+    private String cctvType;
+
+
+    /**
+     * CCTV 대체 영상
+     */
+    @ApiModelProperty("CCTV 대체 영상")
+    private byte[] cctvSbstImgn;
+
+
+    /**
+     * CCTV 대체 표출 여부
+     */
+    @ApiModelProperty("CCTV 대체 표출 여부")
+    private String cctvSbstDsplYn;
+
+
+    /**
+     * CCTV 지역 구분
+     */
+    @ApiModelProperty("CCTV 지역 구분")
+    private String cctvAreaDvsn;
+
+
+    /**
+     * 내부 RTMP 주소
+     */
+    @ApiModelProperty("내부 RTMP 주소")
+    private String intrRtmpAddr;
+
+
+    /**
+     * 운영자 제어 여부
+     */
+    @ApiModelProperty("운영자 제어 여부")
+    private String syopCntlYn;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbCctvCtlrUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update CCTV 제어기")
+@EqualsAndHashCode(callSuper = false)
+public class TbCctvCtlrUpdateVo extends TbCctvCtlrVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 269 - 0
src/main/java/com/its/op/common/vo/TbCctvCtlrVo.java

@@ -0,0 +1,269 @@
+package com.its.op.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save CCTV 제어기")
+public class TbCctvCtlrVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @NotNull(message = "cctvMngmNmbr can not null")
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * CCTV 제어기 ID
+     */
+    @ApiModelProperty("CCTV 제어기 ID")
+    private String cctvCtlrId;
+
+
+    /**
+     * CCTV 제어기 아이피
+     */
+    @ApiModelProperty("CCTV 제어기 아이피")
+    private String cctvCtlrIp;
+
+
+    /**
+     * CCTV 제어기 포트
+     */
+    @ApiModelProperty("CCTV 제어기 포트")
+    private String cctvCtlrPort;
+
+
+    /**
+     * CCTV 자막기 아이피
+     */
+    @ApiModelProperty("CCTV 자막기 아이피")
+    private String cctvCaptIp;
+
+
+    /**
+     * CCTV 자막기 포트
+     */
+    @ApiModelProperty("CCTV 자막기 포트")
+    private String cctvCaptPort;
+
+
+    /**
+     * CCTV 광장비 아이피
+     */
+    @ApiModelProperty("CCTV 광장비 아이피")
+    private String cctvFibrIp;
+
+
+    /**
+     * CCTV 인코더 아이피
+     */
+    @ApiModelProperty("CCTV 인코더 아이피")
+    private String cctvEncdIp;
+
+
+    /**
+     * 스트리밍 서버 아이피
+     */
+    @ApiModelProperty("스트리밍 서버 아이피")
+    private String strmSvrIp;
+
+
+    /**
+     * 스트리밍 서버 포트
+     */
+    @ApiModelProperty("스트리밍 서버 포트")
+    private String strmSvrPort;
+
+
+    /**
+     * 스트리밍 세션 명
+     */
+    @ApiModelProperty("스트리밍 세션 명")
+    private String strmSesnNm;
+
+
+    /**
+     * X 좌표
+     */
+    @ApiModelProperty("X 좌표")
+    private String xCrdn;
+
+
+    /**
+     * Y 좌표
+     */
+    @ApiModelProperty("Y 좌표")
+    private String yCrdn;
+
+
+    /**
+     * 설치 위치 명
+     */
+    @ApiModelProperty("설치 위치 명")
+    private String istlLctnNm;
+
+
+    /**
+     * 설치 위치 주소
+     */
+    @ApiModelProperty("설치 위치 주소")
+    private String istlLctnAddr;
+
+
+    /**
+     * CCTV 채널
+     */
+    @ApiModelProperty("CCTV 채널")
+    private String cctvChnl;
+
+
+    /**
+     * 삭제 여부
+     */
+    @ApiModelProperty("삭제 여부")
+    private String delYn;
+
+
+    /**
+     * 최초 등록자 번호
+     */
+    @ApiModelProperty("최초 등록자 번호")
+    private String frstRegrNmbr;
+
+
+    /**
+     * 최초 등록 일시
+     */
+    @ApiModelProperty("최초 등록 일시")
+    private String frstRgstDt;
+
+
+    /**
+     * 최종 수정자 번호
+     */
+    @ApiModelProperty("최종 수정자 번호")
+    private String lastCrprNmbr;
+
+
+    /**
+     * 최종 수정 일시
+     */
+    @ApiModelProperty("최종 수정 일시")
+    private String lastCrctDt;
+
+
+    /**
+     * 링크ID
+     */
+    @ApiModelProperty("링크ID")
+    private String linkId;
+
+
+    /**
+     * 노드ID
+     */
+    @ApiModelProperty("노드ID")
+    private String nodeId;
+
+
+    /**
+     * 공단 CCTV ID
+     */
+    @ApiModelProperty("공단 CCTV ID")
+    private String cctvId;
+
+
+    /**
+     * 연계 포트
+     */
+    @ApiModelProperty("연계 포트")
+    private String relyPort;
+
+
+    /**
+     * 스트리밍 RTSP 주소
+     */
+    @ApiModelProperty("스트리밍 RTSP 주소")
+    private String strmRtspAddr;
+
+
+    /**
+     * 스트리밍 RTMP 주소
+     */
+    @ApiModelProperty("스트리밍 RTMP 주소")
+    private String strmRtmpAddr;
+
+
+    /**
+     * 스트리밍 HTTP 주소
+     */
+    @ApiModelProperty("스트리밍 HTTP 주소")
+    private String strmHttpAddr;
+
+
+    /**
+     * 스트리밍 저장 주소
+     */
+    @ApiModelProperty("스트리밍 저장 주소")
+    private String strmStorAddr;
+
+
+    /**
+     * 지역 코드
+     */
+    @ApiModelProperty("지역 코드")
+    private String areaCd;
+
+
+    /**
+     * CCTV 유형(1:제노시스,2:프로브디지터,3:영국전자)
+     */
+    @ApiModelProperty("CCTV 유형(1:제노시스,2:프로브디지터,3:영국전자)")
+    private String cctvType;
+
+
+    /**
+     * CCTV 대체 영상
+     */
+    @ApiModelProperty("CCTV 대체 영상")
+    private byte[] cctvSbstImgn;
+
+
+    /**
+     * CCTV 대체 표출 여부
+     */
+    @ApiModelProperty("CCTV 대체 표출 여부")
+    private String cctvSbstDsplYn;
+
+
+    /**
+     * CCTV 지역 구분
+     */
+    @ApiModelProperty("CCTV 지역 구분")
+    private String cctvAreaDvsn;
+
+
+    /**
+     * 내부 RTMP 주소
+     */
+    @ApiModelProperty("내부 RTMP 주소")
+    private String intrRtmpAddr;
+
+
+    /**
+     * 운영자 제어 여부
+     */
+    @ApiModelProperty("운영자 제어 여부")
+    private String syopCntlYn;
+
+}

+ 36 - 0
src/main/java/com/its/op/common/vo/TbCctvGropCtlrQueryVo.java

@@ -0,0 +1,36 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query CCTV 그룹-제어기")
+public class TbCctvGropCtlrQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 그룹 번호
+     */
+    @ApiModelProperty("CCTV 그룹 번호")
+    private String cctvGropNmbr;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * 순서
+     */
+    @ApiModelProperty("순서")
+    private String ORD;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbCctvGropCtlrUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update CCTV 그룹-제어기")
+@EqualsAndHashCode(callSuper = false)
+public class TbCctvGropCtlrUpdateVo extends TbCctvGropCtlrVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 39 - 0
src/main/java/com/its/op/common/vo/TbCctvGropCtlrVo.java

@@ -0,0 +1,39 @@
+package com.its.op.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save CCTV 그룹-제어기")
+public class TbCctvGropCtlrVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 그룹 번호
+     */
+    @NotNull(message = "cctvGropNmbr can not null")
+    @ApiModelProperty("CCTV 그룹 번호")
+    private String cctvGropNmbr;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @NotNull(message = "cctvMngmNmbr can not null")
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * 순서
+     */
+    @ApiModelProperty("순서")
+    private String ORD;
+
+}

+ 36 - 0
src/main/java/com/its/op/common/vo/TbCctvGropMngmQueryVo.java

@@ -0,0 +1,36 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query CCTV 그룹 관리")
+public class TbCctvGropMngmQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 그룹 번호
+     */
+    @ApiModelProperty("CCTV 그룹 번호")
+    private String cctvGropNmbr;
+
+
+    /**
+     * CCTV 그룹 명
+     */
+    @ApiModelProperty("CCTV 그룹 명")
+    private String cctvGropNm;
+
+
+    /**
+     * CCTV 그룹 유형
+     */
+    @ApiModelProperty("CCTV 그룹 유형")
+    private String cctvGropType;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbCctvGropMngmUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update CCTV 그룹 관리")
+@EqualsAndHashCode(callSuper = false)
+public class TbCctvGropMngmUpdateVo extends TbCctvGropMngmVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 38 - 0
src/main/java/com/its/op/common/vo/TbCctvGropMngmVo.java

@@ -0,0 +1,38 @@
+package com.its.op.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save CCTV 그룹 관리")
+public class TbCctvGropMngmVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 그룹 번호
+     */
+    @NotNull(message = "cctvGropNmbr can not null")
+    @ApiModelProperty("CCTV 그룹 번호")
+    private String cctvGropNmbr;
+
+
+    /**
+     * CCTV 그룹 명
+     */
+    @ApiModelProperty("CCTV 그룹 명")
+    private String cctvGropNm;
+
+
+    /**
+     * CCTV 그룹 유형
+     */
+    @ApiModelProperty("CCTV 그룹 유형")
+    private String cctvGropType;
+
+}

+ 50 - 0
src/main/java/com/its/op/common/vo/TbCctvMonitoringQueryVo.java

@@ -0,0 +1,50 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query 웹카메라 모니터링 화면")
+public class TbCctvMonitoringQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 모니터링유형(1:예비,2,예비,3,영상,4:예비)
+     */
+    @ApiModelProperty("모니터링유형(1:예비,2,예비,3,영상,4:예비)")
+    private String monitoringType;
+
+
+    /**
+     * 모니터링명칭
+     */
+    @ApiModelProperty("모니터링명칭")
+    private String monitoringNm;
+
+
+    /**
+     * 모니터링순서
+     */
+    @ApiModelProperty("모니터링순서")
+    private String monitoringSeq;
+
+
+    /**
+     * 웹카메라 제어기번호
+     */
+    @ApiModelProperty("웹카메라 제어기번호")
+    private String cctvCtlrNmbr;
+
+
+    /**
+     * 화면에 보여지는 방식(0:기본,1:화면맞춤))
+     */
+    @ApiModelProperty("화면에 보여지는 방식(0:기본,1:화면맞춤))")
+    private String viewMode;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbCctvMonitoringUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update 웹카메라 모니터링 화면")
+@EqualsAndHashCode(callSuper = false)
+public class TbCctvMonitoringUpdateVo extends TbCctvMonitoringVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 55 - 0
src/main/java/com/its/op/common/vo/TbCctvMonitoringVo.java

@@ -0,0 +1,55 @@
+package com.its.op.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save 웹카메라 모니터링 화면")
+public class TbCctvMonitoringVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 모니터링유형(1:예비,2,예비,3,영상,4:예비)
+     */
+    @NotNull(message = "monitoringType can not null")
+    @ApiModelProperty("모니터링유형(1:예비,2,예비,3,영상,4:예비)")
+    private String monitoringType;
+
+
+    /**
+     * 모니터링명칭
+     */
+    @NotNull(message = "monitoringNm can not null")
+    @ApiModelProperty("모니터링명칭")
+    private String monitoringNm;
+
+
+    /**
+     * 모니터링순서
+     */
+    @NotNull(message = "monitoringSeq can not null")
+    @ApiModelProperty("모니터링순서")
+    private String monitoringSeq;
+
+
+    /**
+     * 웹카메라 제어기번호
+     */
+    @NotNull(message = "cctvCtlrNmbr can not null")
+    @ApiModelProperty("웹카메라 제어기번호")
+    private String cctvCtlrNmbr;
+
+
+    /**
+     * 화면에 보여지는 방식(0:기본,1:화면맞춤))
+     */
+    @ApiModelProperty("화면에 보여지는 방식(0:기본,1:화면맞춤))")
+    private String viewMode;
+
+}

+ 71 - 0
src/main/java/com/its/op/common/vo/TbCctvPsetQueryVo.java

@@ -0,0 +1,71 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Retrieve by query CCTV 프리셋")
+public class TbCctvPsetQueryVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * 프리셋 번호
+     */
+    @ApiModelProperty("프리셋 번호")
+    private String psetNmbr;
+
+
+    /**
+     * 팬 값
+     */
+    @ApiModelProperty("팬 값")
+    private String panVal;
+
+
+    /**
+     * 틸트 값
+     */
+    @ApiModelProperty("틸트 값")
+    private String tiltVal;
+
+
+    /**
+     * 줌 값
+     */
+    @ApiModelProperty("줌 값")
+    private String zoomVal;
+
+
+    /**
+     * 초점 값
+     */
+    @ApiModelProperty("초점 값")
+    private String focsVal;
+
+
+    /**
+     * 프리셋 명
+     */
+    @ApiModelProperty("프리셋 명")
+    private String psetNm;
+
+
+    /**
+     * 디폴트 여부
+     */
+    @ApiModelProperty("디폴트 여부")
+    private String dfltYn;
+
+}

+ 16 - 0
src/main/java/com/its/op/common/vo/TbCctvPsetUpdateVo.java

@@ -0,0 +1,16 @@
+package com.its.op.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("Update CCTV 프리셋")
+@EqualsAndHashCode(callSuper = false)
+public class TbCctvPsetUpdateVo extends TbCctvPsetVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+}

+ 74 - 0
src/main/java/com/its/op/common/vo/TbCctvPsetVo.java

@@ -0,0 +1,74 @@
+package com.its.op.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel("Save CCTV 프리셋")
+public class TbCctvPsetVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * CCTV 관리 번호
+     */
+    @NotNull(message = "cctvMngmNmbr can not null")
+    @ApiModelProperty("CCTV 관리 번호")
+    private String cctvMngmNmbr;
+
+
+    /**
+     * 프리셋 번호
+     */
+    @NotNull(message = "psetNmbr can not null")
+    @ApiModelProperty("프리셋 번호")
+    private String psetNmbr;
+
+
+    /**
+     * 팬 값
+     */
+    @ApiModelProperty("팬 값")
+    private String panVal;
+
+
+    /**
+     * 틸트 값
+     */
+    @ApiModelProperty("틸트 값")
+    private String tiltVal;
+
+
+    /**
+     * 줌 값
+     */
+    @ApiModelProperty("줌 값")
+    private String zoomVal;
+
+
+    /**
+     * 초점 값
+     */
+    @ApiModelProperty("초점 값")
+    private String focsVal;
+
+
+    /**
+     * 프리셋 명
+     */
+    @ApiModelProperty("프리셋 명")
+    private String psetNm;
+
+
+    /**
+     * 디폴트 여부
+     */
+    @ApiModelProperty("디폴트 여부")
+    private String dfltYn;
+
+}

+ 5 - 2
src/main/java/com/its/op/config/DatabaseConfig.java

@@ -30,7 +30,10 @@ import java.util.Objects;
 @Slf4j
 @ToString
 @Configuration
-@EnableJpaRepositories(basePackages="com.its.op.repository", entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager")
+@EnableJpaRepositories(
+        basePackages= {"com.its.op.repository", "com.its.op.common.repository"},
+        entityManagerFactoryRef = "entityManagerFactory",
+        transactionManagerRef = "transactionManager")
 @MapperScan(basePackages="com.its.op.repository.mapper", sqlSessionFactoryRef = "sqlSessionFactory")
 @EnableTransactionManagement
 public class DatabaseConfig {
@@ -71,7 +74,7 @@ public class DatabaseConfig {
         return builder
                 .dataSource(primaryDataSource)
                 .properties(jpaProperties.getProperties())
-                .packages("com.its.op.model.entity")
+                .packages("com.its.op.model.entity", "com.its.op.common.entity")
                 .persistenceUnit("default")
                 .build();
     }

+ 2 - 2
src/main/java/com/its/op/controller/database/CodeController.java

@@ -114,8 +114,8 @@ public class CodeController {
     }
 
     @ApiOperation(value = "소분류코드-정보삭제(TB_CMMN_CD)", response = CmmnCdDto.CmmnCdInfo.class)
-    @DeleteMapping(value = "/cmmn-cd/{id}/sub", produces = {"application/json; charset=utf8"})
-    public ResponseEntity<CmmnCdDto.CmmnCdInfo> deleteDataByIdCmmnCd(@PathVariable("id") String id, @PathVariable("id") String sub) {
+    @DeleteMapping(value = "/cmmn-cd/{id}/{sub}", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<CmmnCdDto.CmmnCdInfo> deleteDataByIdCmmnCd(@PathVariable("id") String id, @PathVariable("sub") String sub) {
         CmmnCd obj = this.cmmnCdService.deleteById(id, sub);
         if (obj != null) {
             return new ResponseEntity<>(new CmmnCdDto.CmmnCdInfo(obj), HttpStatus.OK);

+ 1 - 0
src/main/java/com/its/op/global/CodeManager.java

@@ -26,6 +26,7 @@ public class CodeManager {
     private static final String defUnknownCode = "X";
     private static final String defUnknownDesc = "UNKNOWN";
 
+    public static final String EDTN_CD              = "EDI";    // 편집모드
     public static final String DAY_TYPE_CD          = "DTW";    // 요일유형
     public static final String SYST_STTS_CD         = "SPS";    // 프로세스 상태
     public static final String CMTR_GRAD_CD         = "LTC";    // 소통등급

+ 0 - 18
src/main/java/com/its/op/model/mapper/UserInfrMapper.java

@@ -1,18 +0,0 @@
-package com.its.op.model.mapper;
-
-import com.its.op.model.dto.database.UserInfrDto;
-import com.its.op.model.entity.database.UserInfr;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-@Mapper(
-        componentModel = "spring"
-)
-public interface UserInfrMapper {
-
-    UserInfrMapper INSTANCE = Mappers.getMapper(UserInfrMapper.class);
-
-    UserInfr toEntity(UserInfrDto dto);
-    UserInfrDto toDto(UserInfr entity);
-
-}

+ 4 - 4
src/main/java/com/its/op/service/database/CmmnCdService.java

@@ -54,7 +54,7 @@ public class CmmnCdService {
     @Transactional
     public CmmnCd mergeInfo(CmmnCdDto.CmmnCdUpdateReq req) {
         try {
-            CmmnCdKey key = new CmmnCdKey(req.getCMMN_CLSF_CD(), req.getCMMN_CD());
+            CmmnCdKey key = new CmmnCdKey(req.getCMMN_CD(), req.getCMMN_CLSF_CD());
             Optional<CmmnCd> data = this.repo.findById(key);
             CmmnCd newObj = data.orElseGet(() -> new CmmnCd(req.getCMMN_CLSF_CD(), req.getCMMN_CD()));
             newObj.updateInfo(req);
@@ -69,9 +69,9 @@ public class CmmnCdService {
     }
 
     @Transactional
-    public CmmnCd deleteById(String id, String sub) {
+    public CmmnCd deleteById(String clsf_cd, String cmmn_cd) {
         try {
-            CmmnCdKey key = new CmmnCdKey(id, sub);
+            CmmnCdKey key = new CmmnCdKey(cmmn_cd, clsf_cd);
             Optional<CmmnCd> data = this.repo.findById(key);
             if (data.isPresent()) {
                 CmmnCd obj = data.get();
@@ -80,7 +80,7 @@ public class CmmnCdService {
             }
         }
         catch (Exception e) {
-            log.error("{}.deleteById: Object: {}, Exception: {}", getClass().getSimpleName(), id, e.getMessage());
+            log.error("{}.deleteById: Object: {}/{}, Exception: {}", getClass().getSimpleName(), cmmn_cd, clsf_cd, e.getMessage());
         }
         return null;
     }

+ 3 - 2
src/main/resources/application.yml

@@ -21,8 +21,9 @@ server:
 spring:
   application:
     name: its-op-server
-  jackson:
-    property-naming-strategy: LOWER_CASE
+  #jackson:
+  #  property-naming-strategy: SNAKE_CASE
+  #LOWER_CASE
   #SNAKE_CASE
   #UPPER_CAMEL_CASE
   #LOWER_CAMEL_CASE

+ 13 - 0
src/test/java/com.its.op.model.entity.controller.impl/CustomUtils.java

@@ -0,0 +1,13 @@
+package com.its.op.model.entity.controller.impl;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class CustomUtils {
+    public static String asJsonString(final Object obj) {
+        try {
+            return new ObjectMapper().writeValueAsString(obj);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

+ 93 - 0
src/test/java/com.its.op.model.entity.controller.impl/VmsCtlrControllerImplTest.java

@@ -0,0 +1,93 @@
+package com.its.op.model.entity.controller.impl;
+
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+@AutoConfigureMockMvc
+//@RunWith(SpringRunner.class)
+public class VmsCtlrControllerImplTest {
+    /*//TODO: create the data Test generator class VmsCtlrBuilder
+    private static final String ENDPOINT_URL = "/vms-ctlrs";
+    @MockBean
+    private ReferenceMapper referenceMapper;
+    @InjectMocks
+    private VmsCtlrControllerImpl vmsctlrController;
+    @MockBean
+    private VmsCtlrService vmsctlrService;
+    @MockBean
+    private VmsCtlrMapper vmsctlrMapper;
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Before
+    public void setup() {
+        this.mockMvc = MockMvcBuilders.standaloneSetup(this.vmsctlrController).build();
+    }
+
+    @Test
+    public void getAll() throws Exception {
+        Mockito.when(vmsctlrMapper.asDTOList(ArgumentMatchers.any())).thenReturn(VmsCtlrBuilder.getListDTO());
+
+        Mockito.when(vmsctlrService.findAll()).thenReturn(VmsCtlrBuilder.getListEntities());
+        mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_URL))
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content()
+                        .contentType(MediaType.APPLICATION_JSON_UTF8))
+                .andExpect(MockMvcResultMatchers.jsonPath("$", Matchers.hasSize(2)));
+
+    }
+
+    @Test
+    public void getById() throws Exception {
+        Mockito.when(vmsctlrMapper.asDTO(ArgumentMatchers.any())).thenReturn(VmsCtlrBuilder.getDTO());
+
+        Mockito.when(vmsctlrService.findById(ArgumentMatchers.anyLong())).thenReturn(java.util.Optional.of(VmsCtlrBuilder.getEntity()));
+
+        mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_URL + "/1"))
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content()
+                        .contentType(MediaType.APPLICATION_JSON_UTF8))
+                .andExpect(MockMvcResultMatchers.jsonPath("$.id", Is.is(1)));
+        Mockito.verify(vmsctlrService, Mockito.times(1)).findById(1L);
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }
+
+    @Test
+    public void save() throws Exception {
+        Mockito.when(vmsctlrMapper.asEntity(ArgumentMatchers.any())).thenReturn(VmsCtlrBuilder.getEntity());
+        Mockito.when(vmsctlrService.save(ArgumentMatchers.any(VmsCtlr.class))).thenReturn(VmsCtlrBuilder.getEntity());
+
+        mockMvc.perform(
+                        MockMvcRequestBuilders.post(ENDPOINT_URL)
+                                .contentType(MediaType.APPLICATION_JSON_UTF8)
+                                .content(CustomUtils.asJsonString(VmsCtlrBuilder.getDTO())))
+                .andExpect(MockMvcResultMatchers.status().isCreated());
+        Mockito.verify(vmsctlrService, Mockito.times(1)).save(ArgumentMatchers.any(VmsCtlr.class));
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }
+
+    @Test
+    public void update() throws Exception {
+        Mockito.when(vmsctlrMapper.asEntity(ArgumentMatchers.any())).thenReturn(VmsCtlrBuilder.getEntity());
+        Mockito.when(vmsctlrService.update(ArgumentMatchers.any(), ArgumentMatchers.anyLong())).thenReturn(VmsCtlrBuilder.getEntity());
+
+        mockMvc.perform(
+                        MockMvcRequestBuilders.put(ENDPOINT_URL + "/1")
+                                .contentType(MediaType.APPLICATION_JSON_UTF8)
+                                .content(CustomUtils.asJsonString(VmsCtlrBuilder.getDTO())))
+                .andExpect(MockMvcResultMatchers.status().isOk());
+        Mockito.verify(vmsctlrService, Mockito.times(1)).update(ArgumentMatchers.any(VmsCtlr.class), ArgumentMatchers.anyLong());
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }
+
+    @Test
+    public void delete() throws Exception {
+        Mockito.doNothing().when(vmsctlrService).deleteById(ArgumentMatchers.anyLong());
+        mockMvc.perform(
+                        MockMvcRequestBuilders.delete(ENDPOINT_URL + "/1"))
+                .andExpect(MockMvcResultMatchers.status().isOk());
+        Mockito.verify(vmsctlrService, Mockito.times(1)).deleteById(Mockito.anyLong());
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }*/
+}

+ 13 - 0
src/test/java/com.its.op.model.entity.controller/CustomUtils.java

@@ -0,0 +1,13 @@
+package com.its.op.model.entity.controller;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class CustomUtils {
+    public static String asJsonString(final Object obj) {
+        try {
+            return new ObjectMapper().writeValueAsString(obj);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

+ 18 - 0
src/test/java/com.its.op.model.entity.controller/VmsCtlrBuilder.java

@@ -0,0 +1,18 @@
+package com.its.op.model.entity.controller;
+
+import com.its.op.model.dto.vms.VmsCtlrDto;
+
+import java.util.Collections;
+import java.util.List;
+
+public class VmsCtlrBuilder {
+    public static List<String> getIds() {
+        return Collections.singletonList("1");
+    }
+
+    public static VmsCtlrDto getDto() {
+        VmsCtlrDto dto = new VmsCtlrDto();
+        //dto.setId("1");
+        return dto;
+    }
+}

+ 87 - 0
src/test/java/com.its.op.model.entity.controller/VmsCtlrControllerTest.java

@@ -0,0 +1,87 @@
+package com.its.op.model.entity.controller;
+
+//@Transactional
+public class VmsCtlrControllerTest {
+    /*private static final String ENDPOINT_URL = "/api/vms-ctlr;@InjectMocks
+    private VmsCtlrController vmsctlrController;
+    @Mock
+    private VmsCtlrService vmsctlrService;
+    private MockMvc mockMvc;
+
+    @BeforeEach
+    void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mockMvc = MockMvcBuilders
+                .standaloneSetup(vmsctlrController)
+                //.setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())
+                //.addFilter(CustomFilter::doFilter)
+                .build();
+    }
+
+    @Test
+    public void findAllByPage() throws Exception {
+        Page<VmsCtlrDto> page = new PageImpl<>(Collections.singletonList(VmsCtlrBuilder.getDto()));
+
+        Mockito.when(vmsctlrService.findByCondition(ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(page);
+
+        ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_URL)
+                        .accept(MediaType.APPLICATION_JSON))
+                .andDo(MockMvcResultHandlers.print())
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.jsonPath("$.data.content", Matchers.hasSize(1)));
+
+        Mockito.verify(vmsctlrService, Mockito.times(1)).findByCondition(ArgumentMatchers.any(), ArgumentMatchers.any());
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+
+    }
+
+    @Test
+    public void getById() throws Exception {
+        Mockito.when(vmsctlrService.findById(ArgumentMatchers.anyLong())).thenReturn(VmsCtlrBuilder.getDto());
+
+        mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_URL + "/1"))
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content()
+                        .contentType(MediaType.APPLICATION_JSON))
+                .andExpect(MockMvcResultMatchers.jsonPath("$.id", Is.is(1)));
+        Mockito.verify(vmsctlrService, Mockito.times(1)).findById("1");
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }
+
+    @Test
+    public void save() throws Exception {
+        Mockito.when(vmsctlrService.save(ArgumentMatchers.any(VmsCtlrDto.class))).thenReturn(VmsCtlrBuilder.getDto());
+
+        mockMvc.perform(
+                        MockMvcRequestBuilders.post(ENDPOINT_URL)
+                                .contentType(MediaType.APPLICATION_JSON)
+                                .content(CustomUtils.asJsonString(VmsCtlrBuilder.getDto())))
+                .andExpect(MockMvcResultMatchers.status().isCreated());
+        Mockito.verify(vmsctlrService, Mockito.times(1)).save(ArgumentMatchers.any(VmsCtlrDto.class));
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }
+
+    @Test
+    public void update() throws Exception {
+        Mockito.when(vmsctlrService.update(ArgumentMatchers.any(), ArgumentMatchers.anyLong())).thenReturn(VmsCtlrBuilder.getDto());
+
+        mockMvc.perform(
+                        MockMvcRequestBuilders.put(ENDPOINT_URL + "/1")
+                                .contentType(MediaType.APPLICATION_JSON)
+                                .content(CustomUtils.asJsonString(VmsCtlrBuilder.getDto())))
+                .andExpect(MockMvcResultMatchers.status().isOk());
+        Mockito.verify(vmsctlrService, Mockito.times(1)).update(ArgumentMatchers.any(VmsCtlrDto.class), ArgumentMatchers.anyLong());
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }
+
+    @Test
+    public void delete() throws Exception {
+        Mockito.doNothing().when(vmsctlrService).deleteById(ArgumentMatchers.anyLong());
+        mockMvc.perform(
+                MockMvcRequestBuilders.delete(ENDPOINT_URL + "/1")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(CustomUtils.asJsonString(VmsCtlrBuilder.getIds()))).andExpect(MockMvcResultMatchers.status().isOk());
+        Mockito.verify(vmsctlrService, Mockito.times(1)).deleteById(Mockito.anyLong());
+        Mockito.verifyNoMoreInteractions(vmsctlrService);
+    }*/
+}