Browse Source

new-id add

shjung 3 years ago
parent
commit
63e1065e6b
22 changed files with 165 additions and 46 deletions
  1. 7 0
      src/main/java/com/its/api/its/controller/cctv/TbCctvCtlrController.java
  2. 8 0
      src/main/java/com/its/api/its/controller/vds/TbVdsCtlrController.java
  3. 7 0
      src/main/java/com/its/api/its/controller/vms/TbVmsCtlrController.java
  4. 3 3
      src/main/java/com/its/api/its/controller/vms/TbVmsFormController.java
  5. 3 2
      src/main/java/com/its/api/its/controller/vms/TbVmsIfscController.java
  6. 24 0
      src/main/java/com/its/api/its/model/dto/common/NewIdIntegerDto.java
  7. 24 0
      src/main/java/com/its/api/its/model/dto/common/NewIdLongDto.java
  8. 24 0
      src/main/java/com/its/api/its/model/dto/common/NewIdStringDto.java
  9. 0 24
      src/main/java/com/its/api/its/model/dto/vms/VmsFormNewIdDto.java
  10. 3 0
      src/main/java/com/its/api/its/repository/cctv/TbCctvCtlrRepository.java
  11. 2 0
      src/main/java/com/its/api/its/repository/vds/TbVdsCtlrRepository.java
  12. 3 0
      src/main/java/com/its/api/its/repository/vms/TbVmsCtlrRepository.java
  13. 1 1
      src/main/java/com/its/api/its/repository/vms/TbVmsIfscRepository.java
  14. 1 1
      src/main/java/com/its/api/its/repository/vms/TbVmsSymbLibRepository.java
  15. 9 0
      src/main/java/com/its/api/its/service/cctv/TbCctvCtlrService.java
  16. 10 0
      src/main/java/com/its/api/its/service/vds/TbVdsCtlrService.java
  17. 9 0
      src/main/java/com/its/api/its/service/vms/TbVmsCtlrService.java
  18. 4 4
      src/main/java/com/its/api/its/service/vms/TbVmsFormService.java
  19. 14 6
      src/main/java/com/its/api/its/service/vms/TbVmsIfscService.java
  20. 4 1
      src/main/java/com/its/api/xnettcp/client/NettyTcpClientVdsBootstrapFactory.java
  21. 1 0
      src/main/java/com/its/api/xnettcp/client/codec/NettyTcpClientDecoder.java
  22. 4 4
      src/main/java/com/its/api/xnetudp/CenterCommUdpServer.java

+ 7 - 0
src/main/java/com/its/api/its/controller/cctv/TbCctvCtlrController.java

@@ -1,6 +1,7 @@
 package com.its.api.its.controller.cctv;
 
 import com.its.api.its.model.dto.cctv.TbCctvCtlrDto;
+import com.its.api.its.model.dto.common.NewIdLongDto;
 import com.its.api.its.service.cctv.TbCctvCtlrService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -44,4 +45,10 @@ public class TbCctvCtlrController {
         return this.service.deleteById(id);
     }
 
+    @ApiOperation(value = "신규 CCTV 제어기 ID 조회(TB_CCTV_CTLR)", response = NewIdLongDto.class)
+    @GetMapping(value = "/new-id", produces = {"application/json; charset=utf8"})
+    public NewIdLongDto getNewNmbr() {
+        return this.service.getNewNmbr();
+    }
+
 }

+ 8 - 0
src/main/java/com/its/api/its/controller/vds/TbVdsCtlrController.java

@@ -1,5 +1,6 @@
 package com.its.api.its.controller.vds;
 
+import com.its.api.its.model.dto.common.NewIdStringDto;
 import com.its.api.its.model.dto.vds.TbVdsCtlrDto;
 import com.its.api.its.service.vds.TbVdsCtlrService;
 import io.swagger.annotations.Api;
@@ -44,4 +45,11 @@ public class TbVdsCtlrController {
         return this.service.deleteById(id);
     }
 
+    @ApiOperation(value = "신규 VDS 제어기 ID 조회(TB_VDS_CTLR)", response = NewIdStringDto.class)
+    @GetMapping(value = "/new-id", produces = {"application/json; charset=utf8"})
+    public NewIdStringDto getNewNmbr() {
+        return this.service.getNewNmbr();
+    }
+
+
 }

+ 7 - 0
src/main/java/com/its/api/its/controller/vms/TbVmsCtlrController.java

@@ -1,5 +1,6 @@
 package com.its.api.its.controller.vms;
 
+import com.its.api.its.model.dto.common.NewIdLongDto;
 import com.its.api.its.model.dto.vms.TbVmsCtlrDto;
 import com.its.api.its.service.vms.TbVmsCtlrService;
 import io.swagger.annotations.Api;
@@ -44,4 +45,10 @@ public class TbVmsCtlrController {
         return this.service.deleteById(id);
     }
 
+    @ApiOperation(value = "신규 VMS 제어기 ID 조회(TB_VMS_CTLR)", response = NewIdLongDto.class)
+    @GetMapping(value = "/new-id", produces = {"application/json; charset=utf8"})
+    public NewIdLongDto getNewNmbr() {
+        return this.service.getNewNmbr();
+    }
+
 }

+ 3 - 3
src/main/java/com/its/api/its/controller/vms/TbVmsFormController.java

@@ -2,7 +2,7 @@ package com.its.api.its.controller.vms;
 
 import com.its.api.its.model.dto.vms.TbVmsFormDto;
 import com.its.api.its.model.dto.vms.TbVmsFormObjectDetlDto;
-import com.its.api.its.model.dto.vms.VmsFormNewIdDto;
+import com.its.api.its.model.dto.common.NewIdIntegerDto;
 import com.its.api.its.service.vms.TbVmsFormService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -70,9 +70,9 @@ public class TbVmsFormController {
         return this.service.deleteByIds(ids);
     }
 
-    @ApiOperation(value = "신규 VMS FORM ID 조회(TB_VMS_FORM)", response = VmsFormNewIdDto.class)
+    @ApiOperation(value = "신규 VMS FORM ID 조회(TB_VMS_FORM)", response = NewIdIntegerDto.class)
     @GetMapping(value = "/new-id", produces = {"application/json; charset=utf8"})
-    public VmsFormNewIdDto getNewVmsFormId() {
+    public NewIdIntegerDto getNewVmsFormId() {
         return this.service.getNewVmsFormId();
     }
 

+ 3 - 2
src/main/java/com/its/api/its/controller/vms/TbVmsIfscController.java

@@ -1,5 +1,6 @@
 package com.its.api.its.controller.vms;
 
+import com.its.api.its.model.dto.common.NewIdLongDto;
 import com.its.api.its.model.dto.vms.TbVmsIfscCmtrGradDto;
 import com.its.api.its.model.dto.vms.TbVmsIfscDto;
 import com.its.api.its.service.vms.TbVmsIfscCmtrGradService;
@@ -84,9 +85,9 @@ public class TbVmsIfscController {
         return this.service.findUsageCountByVmsIfscId(id);
     }
 
-    @ApiOperation(value = "VMS 정보제공구간 신규 ID 조회(TB_VMS_IFSC)", response = Long.class)
+    @ApiOperation(value = "VMS 정보제공구간 신규 ID 조회(TB_VMS_IFSC)", response = NewIdLongDto.class)
     @GetMapping(value = "/new-id", produces = {"application/json; charset=utf8"})
-    public Long getNewVmsIfscId() {
+    public NewIdLongDto getNewVmsIfscId() {
         return this.service.getNewVmsIfscId();
     }
 

+ 24 - 0
src/main/java/com/its/api/its/model/dto/common/NewIdIntegerDto.java

@@ -0,0 +1,24 @@
+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 java.io.Serializable;
+
+/**
+ * Integer New ID DTO Class
+ */
+@Data
+@Builder
+@ApiModel("NewIdIntegerDto(신규 Integer ID 정보)")
+public class NewIdIntegerDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("ID")  // N NUMBER(5)
+    @JsonProperty("new_id")
+    private Integer newId;
+
+}

+ 24 - 0
src/main/java/com/its/api/its/model/dto/common/NewIdLongDto.java

@@ -0,0 +1,24 @@
+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 java.io.Serializable;
+
+/**
+ * Long New ID DTO Class
+ */
+@Data
+@Builder
+@ApiModel("NewIdLongDto(신규 Long ID 정보)")
+public class NewIdLongDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("ID")
+    @JsonProperty("new_id")
+    private Long newId;
+
+}

+ 24 - 0
src/main/java/com/its/api/its/model/dto/common/NewIdStringDto.java

@@ -0,0 +1,24 @@
+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 java.io.Serializable;
+
+/**
+ * String New ID DTO Class
+ */
+@Data
+@Builder
+@ApiModel("NewIdStringDto(신규 String ID 정보)")
+public class NewIdStringDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("ID")
+    @JsonProperty("new_id")
+    private String newId;
+
+}

+ 0 - 24
src/main/java/com/its/api/its/model/dto/vms/VmsFormNewIdDto.java

@@ -1,24 +0,0 @@
-package com.its.api.its.model.dto.vms;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Builder;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 돌발상황 발생 DTO Class
- */
-@Data
-@Builder
-@ApiModel("VmsFormNewIdDto(신규 VMS FORM ID 정보)")
-public class VmsFormNewIdDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("VMS FORM ID")  // N NUMBER(5)
-    @JsonProperty("vms_form_id")
-    private Integer vmsFormId;
-
-}

+ 3 - 0
src/main/java/com/its/api/its/repository/cctv/TbCctvCtlrRepository.java

@@ -25,4 +25,7 @@ public interface TbCctvCtlrRepository extends JpaRepository<TbCctvCtlr, Long>, J
     @Query("select count(p.cctvMngmNmbr) as total from TbCctvCtlr p where p.delYn = 'N'")
     Integer findAllListCount();
 
+    @Query(value = "SELECT NVL(MAX(CCTV_MNGM_NMBR), 0) + 1 AS NEWID FROM TB_CCTV_CTLR", nativeQuery = true)
+    Long getNewNmbr();
+
 }

+ 2 - 0
src/main/java/com/its/api/its/repository/vds/TbVdsCtlrRepository.java

@@ -25,4 +25,6 @@ public interface TbVdsCtlrRepository extends JpaRepository<TbVdsCtlr, String>, J
     @Query("select count(p.ctlrMngmNmbr) as total from TbVdsCtlr p where p.delYn = 'N'")
     Integer findAllListCount();
 
+    @Query(value = "SELECT LPAD(NVL(MAX(SUBSTR(CTLR_MNGM_NMBR, -8)), '00000000') + 1, 8, '0') AS NEWID  FROM TB_VDS_CTLR", nativeQuery = true)
+    String getNewNmbr();
 }

+ 3 - 0
src/main/java/com/its/api/its/repository/vms/TbVmsCtlrRepository.java

@@ -27,4 +27,7 @@ public interface TbVmsCtlrRepository extends JpaRepository<TbVmsCtlr, Long>, Jpa
     @Query("select p from TbVmsCtlr p inner join fetch p.usagType utp inner join fetch p.type tp left outer join fetch p.state state where p.vmsTypeCd = :vmsTypeCd and p.delYn = 'N'")
     List<TbVmsCtlr> findAllListByTypeCd(@Param("vmsTypeCd") String vmsTypeCd);
 
+    @Query(value = "SELECT NVL(MAX(VMS_CTLR_NMBR), 10000) + 1 AS NEWID FROM TB_VMS_CTLR", nativeQuery = true)
+    Long getNewNmbr();
+
 }

+ 1 - 1
src/main/java/com/its/api/its/repository/vms/TbVmsIfscRepository.java

@@ -18,7 +18,7 @@ public interface TbVmsIfscRepository extends JpaRepository<TbVmsIfsc, Long>, Jpa
     @Query("select count(p.detrId) from TbVmsIfsc p where p.detrId = :vmsIfscId and p.vmsIfscId <> :vmsIfscId")
     Integer findUsageCountByVmsIfscId(@Param("vmsIfscId") Long vmsIfscId);
 
-    @Query(value = "SELECT NVL(MAX(VMS_IFSC_ID), 0) + 1 FROM TB_VMS_IFSC", nativeQuery = true)
+    @Query(value = "SELECT NVL(MAX(VMS_IFSC_ID), 0) + 1 AS NEWID FROM TB_VMS_IFSC", nativeQuery = true)
     Long getNewVmsIfscId();
 
     @Query("select count(p.vmsIfscId) from TbVmsIfsc p")

+ 1 - 1
src/main/java/com/its/api/its/repository/vms/TbVmsSymbLibRepository.java

@@ -18,7 +18,7 @@ public interface TbVmsSymbLibRepository extends JpaRepository<TbVmsSymbLib, Inte
     @Query("SELECT p from TbVmsSymbLib p where p.vmsTypeCd = :vmsTypeCd")
     List<TbVmsSymbLib> findAllSymbolImage(@Param("vmsTypeCd") String vmsTypeCd);
 
-    @Query(value = "SELECT NVL(MAX(SYMBLIB_NMBR), :minVal-1)+1 FROM TB_VMS_SYMB_LIB WHERE SYMBLIB_NMBR BETWEEN :minVal AND :maxVal", nativeQuery = true)
+    @Query(value = "SELECT NVL(MAX(SYMBLIB_NMBR), :minVal-1)+1 AS NEWID FROM TB_VMS_SYMB_LIB WHERE SYMBLIB_NMBR BETWEEN :minVal AND :maxVal", nativeQuery = true)
     Integer getNewSymbolId(@Param("minVal") Integer minVal, @Param("maxVal") Integer maxVal);
 
 }

+ 9 - 0
src/main/java/com/its/api/its/service/cctv/TbCctvCtlrService.java

@@ -193,4 +193,13 @@ public class TbCctvCtlrService {
         return result;
     }
 
+    /**
+     * 신규 제어기 번호 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public NewIdLongDto getNewNmbr() {
+        Long newId = this.repo.getNewNmbr();
+        return NewIdLongDto.builder().newId(newId).build();
+    }
 }

+ 10 - 0
src/main/java/com/its/api/its/service/vds/TbVdsCtlrService.java

@@ -296,4 +296,14 @@ public class TbVdsCtlrService {
         return result;
     }
 
+    /**
+     * 신규 제어기 번호 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public NewIdStringDto getNewNmbr() {
+        String newId = this.repo.getNewNmbr();
+        return NewIdStringDto.builder().newId(newId).build();
+    }
+
 }

+ 9 - 0
src/main/java/com/its/api/its/service/vms/TbVmsCtlrService.java

@@ -303,4 +303,13 @@ public class TbVmsCtlrService {
         return result;
     }
 
+    /**
+     * 신규 제어기 번호 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public NewIdLongDto getNewNmbr() {
+        Long newId = this.repo.getNewNmbr();
+        return NewIdLongDto.builder().newId(newId).build();
+    }
 }

+ 4 - 4
src/main/java/com/its/api/its/service/vms/TbVmsFormService.java

@@ -2,7 +2,7 @@ package com.its.api.its.service.vms;
 
 import com.its.api.its.model.dto.vms.TbVmsFormDto;
 import com.its.api.its.model.dto.vms.TbVmsFormObjectDetlDto;
-import com.its.api.its.model.dto.vms.VmsFormNewIdDto;
+import com.its.api.its.model.dto.common.NewIdIntegerDto;
 import com.its.api.its.model.entity.vms.TbVmsForm;
 import com.its.api.its.model.entity.vms.TbVmsFormObjectDetlInf;
 import com.its.api.its.repository.vms.TbVmsFormRepository;
@@ -220,10 +220,10 @@ public class TbVmsFormService {
      * @return
      */
     @Transactional(readOnly = true)
-    public VmsFormNewIdDto getNewVmsFormId() {
+    public NewIdIntegerDto getNewVmsFormId() {
         Integer newId = this.repo.getNewVmsFormId();
-        VmsFormNewIdDto result = VmsFormNewIdDto.builder()
-                .vmsFormId(newId)
+        NewIdIntegerDto result = NewIdIntegerDto.builder()
+                .newId(newId)
                 .build();
         return result;
     }

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

@@ -1,15 +1,16 @@
 package com.its.api.its.service.vms;
 
+import com.its.api.its.model.dto.common.NewIdLongDto;
+import com.its.api.its.model.dto.vms.TbVmsIfscCmtrGradDto;
 import com.its.api.its.model.dto.vms.TbVmsIfscDto;
+import com.its.api.its.model.dto.vms.TbVmsLinkIfscDto;
 import com.its.api.its.model.entity.vms.TbVmsIfsc;
 import com.its.api.its.repository.vms.TbVmsIfscRepository;
-import com.its.api.its.model.dto.vms.TbVmsIfscCmtrGradDto;
-import com.its.api.its.model.dto.vms.TbVmsLinkIfscDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import javax.transaction.Transactional;
 import java.util.ArrayList;
 import java.util.ConcurrentModificationException;
 import java.util.List;
@@ -96,7 +97,7 @@ public class TbVmsIfscService {
     }
 
     // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
-    @Transactional
+    @Transactional(readOnly = true)
     public TbVmsIfscDto.TbVmsIfscUpdReq mergeInfo(TbVmsIfscDto.TbVmsIfscUpdReq req) {
 
         if (req.getDetrId() == 0) {
@@ -165,6 +166,7 @@ public class TbVmsIfscService {
     }
 
     // VMS 정보 제공구간이 사용되는 갯수 리턴
+    @Transactional(readOnly = true)
     public Integer findUsageCountByVmsIfscId(Long vmsIfscId) {
         Integer useCount = 0;
 
@@ -192,7 +194,13 @@ public class TbVmsIfscService {
         return 0;
     }
 
-    public Long getNewVmsIfscId() {
-        return this.repo.getNewVmsIfscId();
+    /**
+     * VMS 정보제공구간 신규 ID 조회
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public NewIdLongDto getNewVmsIfscId() {
+        Long newId = this.repo.getNewVmsIfscId();
+        return NewIdLongDto.builder().newId(newId).build();
     }
 }

+ 4 - 1
src/main/java/com/its/api/xnettcp/client/NettyTcpClientVdsBootstrapFactory.java

@@ -1,10 +1,10 @@
 package com.its.api.xnettcp.client;
 
-import com.its.utils.NettyUtils;
 import com.its.api.xnettcp.client.codec.NettyTcpClientDecoder;
 import com.its.api.xnettcp.client.codec.NettyTcpClientEncoder;
 import com.its.api.xnettcp.client.handler.NettyTcpClientIdleHandler;
 import com.its.api.xnettcp.client.handler.NettyTcpClientInboundHandler;
+import com.its.utils.NettyUtils;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -12,6 +12,8 @@ import io.netty.channel.ChannelOption;
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.socket.SocketChannel;
 import io.netty.channel.socket.nio.NioSocketChannel;
+import io.netty.handler.logging.LogLevel;
+import io.netty.handler.logging.LoggingHandler;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 
@@ -47,6 +49,7 @@ public class NettyTcpClientVdsBootstrapFactory {
             // 핸들러가 실행되는 순서는 추가된 순서에 의해 결정된다.(Inbound: head=>tail, Outbound: tail=>head, name2ctx)
             @Override
             public void initChannel(SocketChannel ch) throws Exception {
+                ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
                 ch.pipeline().addLast("vdsClientIdleHandler",    new NettyTcpClientIdleHandler(0, 0, 0, TimeUnit.SECONDS));
                 ch.pipeline().addLast("vdsClientDecoder",        new NettyTcpClientDecoder());            // Decoding handler
                 ch.pipeline().addLast("vdsClientInboundHandler", new NettyTcpClientInboundHandler());     // Packet Inbound handler

+ 1 - 0
src/main/java/com/its/api/xnettcp/client/codec/NettyTcpClientDecoder.java

@@ -45,5 +45,6 @@ public class NettyTcpClientDecoder extends ByteToMessageDecoder {
         byteBuf.resetReaderIndex();
 
         //list.add(byteBuf);
+        //ByteBuffer byteBuffer = ByteBuffer.allocate(11);
     }
 }

+ 4 - 4
src/main/java/com/its/api/xnetudp/CenterCommUdpServer.java

@@ -47,10 +47,10 @@ public class CenterCommUdpServer {
             this.bootstrap.option(ChannelOption.SO_SNDBUF, 8192);
             this.bootstrap.handler(new ChannelInitializer<Channel>() {
                 @Override
-                protected void initChannel(Channel channel) throws Exception
-                {
-                    channel.pipeline().addLast("centerCommServerDecoder", new CenterCommServerDecoder());
-                    channel.pipeline().addLast("centerCommServerPacketHandler", new CenterCommServerPacketHandler());
+                protected void initChannel(Channel ch) throws Exception {
+                    //ch.pipeline().addLast(new LoggingHandler(LogLevel.INFO));
+                    ch.pipeline().addLast("centerCommServerDecoder", new CenterCommServerDecoder());
+                    ch.pipeline().addLast("centerCommServerPacketHandler", new CenterCommServerPacketHandler());
                 }
             });
         }