瀏覽代碼

first commit

shjung 1 年之前
父節點
當前提交
c7be449ecf

+ 1 - 1
conf/debug.properties

@@ -1,5 +1,5 @@
 #system debug setting configuration...
-#Thu Jan 04 17:13:27 KST 2024
+#Fri Jan 05 10:46:06 KST 2024
 packet-info=x
 packet-dump=x
 system-debug=false

+ 3 - 3
src/main/java/com/its/safe/api/controller/VmsSafeAdapterController.java → src/main/java/com/its/safe/api/controller/VmsSafeAdapterApiController.java

@@ -2,7 +2,7 @@ package com.its.safe.api.controller;
 
 import com.its.app.utils.SysUtils;
 import com.its.safe.api.dto.AgipObeLoc;
-import com.its.safe.api.service.VmsSafeAdapterService;
+import com.its.safe.api.service.VmsSafeAdapterApiService;
 import com.its.safe.config.DebugConfig;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -23,9 +23,9 @@ import java.util.Map;
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/api/safe")
-public class VmsSafeAdapterController {
+public class VmsSafeAdapterApiController {
 
-    private final VmsSafeAdapterService service;
+    private final VmsSafeAdapterApiService service;
     private final DebugConfig debugConfig;
 
     @ApiOperation(value = "AGIP 실시간 OBE 위치정보 수집")

+ 1 - 1
src/main/java/com/its/safe/api/service/VmsSafeAdapterService.java → src/main/java/com/its/safe/api/service/VmsSafeAdapterApiService.java

@@ -9,7 +9,7 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @RequiredArgsConstructor
 @Service
-public class VmsSafeAdapterService {
+public class VmsSafeAdapterApiService {
 
     private final BisAgipService service;
 

+ 5 - 0
src/main/java/com/its/safe/dao/mapper/safe/VmsSafeMapper.java

@@ -1,5 +1,6 @@
 package com.its.safe.dao.mapper.safe;
 
+import com.its.safe.entity.safe.TbArea;
 import com.its.safe.entity.safe.TbMessage;
 import com.its.safe.entity.safe.TbReadCheck;
 import org.apache.ibatis.annotations.Mapper;
@@ -10,8 +11,12 @@ import java.util.List;
 @Mapper
 public interface VmsSafeMapper {
 
+    List<TbArea> selectArea();
     List<TbReadCheck> selectNewVmsSafeMessage(@Param("systemId") String systemId);
     int updateConfirmNewVmsSafeMessage(@Param("seq") Long seq);
 
     List<TbMessage> selectVmsSafeMessage(@Param("messageSeq") Long messageSeq);
+
+    int insertConnCheck(@Param("systemId") String systemId);
+
 }

+ 25 - 0
src/main/java/com/its/safe/dto/safe/TbAreaDto.java

@@ -0,0 +1,25 @@
+package com.its.safe.dto.safe;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 법정동코드 정보 DTO Class
+ */
+@Data
+@Builder
+@ApiModel("TbAreaDto(법정동코드 정보)")
+public class TbAreaDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Long seq;           // 테이블 seq
+    private String code;        // 법정동코드 : 행안부 법정동 기준
+    private String upperCode;   // 상위 법정동코드 : 모자 관계 파악용 상위 법정동 코드
+    private String name;        // 법정동명 (풀 네임, 예: 경상북도 포항시 남구 구룡포읍 구룡포리)
+    private Long depth;         // 단계. (1:시, 2:구, 3:읍면동, 4:리)
+    private String baseDate;    // 코드 기준일 : 해당시 1, 행안부 법정동 변경시 여러 버전 존재 가능 하므로 구별 위해 기준일 기록 (예 : 2023년 11월 기준 -> 202311)
+
+}

+ 37 - 0
src/main/java/com/its/safe/entity/safe/TbArea.java

@@ -0,0 +1,37 @@
+package com.its.safe.entity.safe;
+
+import com.its.safe.dto.safe.TbAreaDto;
+import io.swagger.annotations.ApiModel;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 법정동코드 정보 Entity Class
+ */
+@ApiModel("법정동코드 정보")  // 전파시 기본적으로는 법정동코드를 사용함. 개별 장비에 요청도 가능) (공용, 시스템 읽기 전용)
+@Data
+@Builder
+public class TbArea implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Long seq;           // 테이블 seq
+    private String code;        // 법정동코드 : 행안부 법정동 기준
+    private String upperCode;   // 상위 법정동코드 : 모자 관계 파악용 상위 법정동 코드
+    private String name;        // 법정동명 (풀 네임, 예: 경상북도 포항시 남구 구룡포읍 구룡포리)
+    private Long depth;         // 단계. (1:시, 2:구, 3:읍면동, 4:리)
+    private String baseDate;    // 코드 기준일 : 해당시 1, 행안부 법정동 변경시 여러 버전 존재 가능 하므로 구별 위해 기준일 기록 (예 : 2023년 11월 기준 -> 202311)
+
+    public TbAreaDto toDto() {
+        return TbAreaDto.builder()
+                .seq(this.seq)
+                .code(this.code)
+                .upperCode(this.upperCode)
+                .name(this.name)
+                .depth(this.depth)
+                .baseDate(this.baseDate)
+                .build();
+    }
+
+}

+ 2 - 2
src/main/java/com/its/safe/entity/safe/TbMessage.java

@@ -41,8 +41,8 @@ public class TbMessage implements Serializable {
     public TbMessageDto toDto() {
         return TbMessageDto.builder()
                 .seq(this.seq)
-                .status(this.status)
-                .msgType(this.msgType)
+                .status(this.status.trim())
+                .msgType(this.msgType.trim())
                 .preSeq(this.preSeq)
                 .title(this.title)
                 .textBoard40Kr(this.textBoard40Kr)

+ 51 - 9
src/main/java/com/its/safe/service/VmsSafeAdapterService.java

@@ -1,7 +1,10 @@
 package com.its.safe.service;
 
+import com.its.app.utils.Elapsed;
 import com.its.safe.config.ApplicationConfig;
 import com.its.safe.dao.mapper.safe.VmsSafeMapper;
+import com.its.safe.dto.safe.TbMessageDto;
+import com.its.safe.entity.safe.TbArea;
 import com.its.safe.entity.safe.TbMessage;
 import com.its.safe.entity.safe.TbReadCheck;
 import com.its.safe.process.DbmsDataProcess;
@@ -11,8 +14,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.PostConstruct;
 import java.util.List;
+import java.util.StringTokenizer;
 
 @Slf4j
 @Getter
@@ -25,35 +28,50 @@ public class VmsSafeAdapterService {
     private final DbmsDataProcess dbmsDataProcess;
     private final VmsSafeMapper vmsSafeMapper;
 
-    @PostConstruct
-    private void init() {
-    }
-
     public void run() {
+        Elapsed elapsed = new Elapsed();
+        selectArea();
+
         selectNewSafeMessage();
+        updateConnCheck();
+        log.info("VmsSafeAdapterService.run:: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
     public void selectNewSafeMessage() {
+        Elapsed elapsed = new Elapsed();
         try {
-            List<TbReadCheck> checkList = this.vmsSafeMapper.selectNewVmsSafeMessage(appConfig.getSafeSystemId());
+            List<TbReadCheck> checkList = this.vmsSafeMapper.selectNewVmsSafeMessage(this.appConfig.getSafeSystemId());
             log.info("VmsSafeAdapterService.selectNewSafeMessage(), {} EA", checkList.size());
             for (TbReadCheck chkMessage : checkList) {
                 log.info("VmsSafeAdapterService.selectNewSafeMessage: {}.", chkMessage.toDto());
 
-//                updateConfirmNewSafeMessage(message.getSeq());
-
                 List<TbMessage> messageList = this.vmsSafeMapper.selectVmsSafeMessage(chkMessage.getMessageSeq());
                 for (TbMessage message : messageList) {
-                    log.info("VmsSafeAdapterService.selectVmsSafeMessage: {}.", message.toDto());
+                    TbMessageDto msgDto = message.toDto();
+                    log.info("VmsSafeAdapterService.selectVmsSafeMessage: {}.", msgDto);
+
+//                    String[] codes = msgDto.getAreaCode().split(",");   // 빈 문자열 분리.
+//                    for (int ii = 0; ii < codes.length; ii++) {
+//                        log.info("VmsSafeAdapterService.selectVmsSafeMessage: SEQ {}, {} EA, AREA_CODE [{}]", msgDto.getSeq(), codes.length, codes[ii]);
+//                    }
+
+                    StringTokenizer areaCodes = new StringTokenizer(msgDto.getAreaCode(), ",");
+                    int areaCount = areaCodes.countTokens();
+                    while(areaCodes.hasMoreTokens()){
+                        String areaCode = areaCodes.nextToken().trim();
+                        log.info("VmsSafeAdapterService.selectVmsSafeMessage: SEQ {}, {} EA, AREA_CODE [{}].", msgDto.getSeq(), areaCount, areaCode);
+                    }
                 }
             }
         }
         catch (Exception e) {
             log.error("VmsSafeAdapterService.selectNewSafeMessage: Exception: {}.", e.toString());
         }
+        log.info("VmsSafeAdapterService.selectNewSafeMessage:: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
     public int updateConfirmNewVmsSafeMessage(Long confirmSeq) {
+        Elapsed elapsed = new Elapsed();
         int result = 0;
         try {
             result = this.vmsSafeMapper.updateConfirmNewVmsSafeMessage(confirmSeq);
@@ -62,7 +80,31 @@ public class VmsSafeAdapterService {
         catch (Exception e) {
             log.error("VmsSafeAdapterService.updateConfirmNewSafeMessage: Exception: {}.", e.toString());
         }
+        log.info("VmsSafeAdapterService.updateConfirmNewVmsSafeMessage:: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
         return result;
     }
 
+    public void selectArea() {
+        Elapsed elapsed = new Elapsed();
+        try {
+            List<TbArea> resultList = this.vmsSafeMapper.selectArea();
+            log.info("VmsSafeAdapterService.selectArea(), {} EA", resultList.size());
+            for (TbArea area : resultList) {
+                log.info("VmsSafeAdapterService.selectArea: {}.", area.toDto());
+            }
+        }
+        catch (Exception e) {
+            log.error("VmsSafeAdapterService.selectArea: Exception: {}.", e.toString());
+        }
+        log.info("VmsSafeAdapterService.selectArea:: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
+    }
+
+    public void updateConnCheck() {
+        Elapsed elapsed = new Elapsed();
+        String systemId = this.appConfig.getSafeSystemId();
+        int result = this.vmsSafeMapper.insertConnCheck(systemId);
+        log.info("VmsSafeAdapterService.updateConnCheck(), {}, {} EA", systemId, result);
+        log.info("VmsSafeAdapterService.updateConnCheck:: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
+    }
+
 }

+ 24 - 1
src/main/resources/mybatis/mapper/safe/VmsSafeMapper.xml

@@ -3,6 +3,19 @@
 
 <mapper namespace="com.its.safe.dao.mapper.safe.VmsSafeMapper">
 
+    <select id="selectArea" resultType="com.its.safe.entity.safe.TbArea" fetchSize="500">
+    <![CDATA[
+        SELECT A.seq as seq,
+               A.code as code,
+               A.upper_code as upperCode,
+               A.name as name,
+               A.depth as depth,
+               A.base_date as baseDate
+        FROM area A
+        WHERE 1=1
+        ]]>
+    </select>
+
     <select id="selectNewVmsSafeMessage" parameterType="java.lang.String" resultType="com.its.safe.entity.safe.TbReadCheck" fetchSize="20">
     <![CDATA[
         SELECT A.seq as seq,
@@ -27,7 +40,6 @@
         ]]>
     </update>
 
-
     <select id="selectVmsSafeMessage" parameterType="java.lang.Long" resultType="com.its.safe.entity.safe.TbMessage" fetchSize="20">
     <![CDATA[
         SELECT A.seq as seq,
@@ -47,4 +59,15 @@
         ]]>
     </select>
 
+    <insert id="insertConnCheck" parameterType="java.lang.String">
+    <![CDATA[
+        INSERT INTO conn_check (
+            system_id
+        )
+        VALUES (
+                   #{systemId}
+               )
+        ]]>
+    </insert>
+
 </mapper>

+ 10 - 0
src/test/java/com/its/app/VmsSafeAdapterServerApplicationTests.java

@@ -6,10 +6,20 @@ import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
 import org.jasypt.salt.StringFixedSaltGenerator;
 import org.junit.jupiter.api.Test;
 
+import java.util.StringTokenizer;
+
 @Slf4j
 //@SpringBootTest(classes = VmsSafeAdapterServerApplication.class)
 public class VmsSafeAdapterServerApplicationTests {
 
+    @Test
+    void token() {
+        StringTokenizer areaCodes = new StringTokenizer("4711110100-4711110200", ",");
+        while(areaCodes.hasMoreTokens()){
+            String areaCode = areaCodes.nextToken();
+            log.info("VmsSafeAdapterService.selectVmsSafeMessage: SEQ {}, AREA_CODE [{}].", 1, areaCode);
+        }
+    }
     @Test
     void jasypt() {
         String encKey = "asdkjfaslkjflkajslfjkajlkf";