Browse Source

center update source and running

HANTE 5 months ago
parent
commit
ee40c3d7a6
34 changed files with 341 additions and 373 deletions
  1. 1 0
      conf/utic-dwdb-server.pid
  2. 7 9
      conf/utic-incident-molit.yml
  3. 6 0
      utic-incident-common/src/main/java/com/utic/incident/common/url/RequestUrlData.java
  4. 7 7
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/IncidentMolitServerApplication.java
  5. 2 6
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/ApplicationConfig.java
  6. 2 2
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/DatabaseConfig.java
  7. 43 0
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/MolitRequestConfig.java
  8. 9 8
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/RequestConfig.java
  9. 10 9
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/ThreadPoolInitializer.java
  10. 68 0
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/controller/IncidentMolitController.java
  11. 4 5
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dao/mapper/IncidentMolitMapper.java
  12. 5 6
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dao/repository/IncidentMolitMapperImpl.java
  13. 1 1
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/IncidentMoctDto.java
  14. 1 1
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/LogRcvIncidentMoctDto.java
  15. 1 1
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitEventDto.java
  16. 1 1
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitEventResponseDto.java
  17. 1 1
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitIncidentDto.java
  18. 1 1
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitIncidentResponseDto.java
  19. 10 6
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/repository/ApplicationRepository.java
  20. 20 10
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/scheduler/ApplicationScheduler.java
  21. 31 27
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/service/IncidentMolitService.java
  22. 74 0
      utic-incident-molit/src/main/java/com/utic/incident/molit/server/service/ProcessStateService.java
  23. 0 33
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/IncidentMolitConfig.java
  24. 0 40
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/SchedulingConfig.java
  25. 0 42
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/controller/IncidentMolitController.java
  26. 0 11
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dao/mapper/ProcessMapper.java
  27. 0 19
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/ProcessStateDto.java
  28. 0 23
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/ProcessStateRunDto.java
  29. 0 55
      utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/service/ProcessStateService.java
  30. 14 8
      utic-incident-molit/src/main/resources/application.yml
  31. 9 8
      utic-incident-molit/src/main/resources/logback-spring.xml
  32. 11 10
      utic-incident-molit/src/main/resources/mybatis/mapper/IncidentMolitMapper.xml
  33. 0 21
      utic-incident-molit/src/main/resources/mybatis/mapper/ProcessMapper.xml
  34. 2 2
      utic-incident-molit/src/test/java/com/utic/incident/molit/server/IncidentMolitServerApplicationTest.java

+ 1 - 0
conf/utic-dwdb-server.pid

@@ -0,0 +1 @@
+264

+ 7 - 9
conf/utic-incident-molit.yml

@@ -6,14 +6,12 @@ server:
 
 application:
   process-id: 70010
-  incident:
-    molit:
+  molit-request:
+    cron: 5 * * * * *
+    incident:
       enable: true
-      connect-timeout: 10
-      read-timeout: 10
-      retry-count: 3
-      retry-delay: 5
-      cron: 0/20 * * * * *
-      incident-url: http://openapi.its.go.kr/api/NIncidentIdentity?key=1474512853033&ReqType=2&MinX=127.100000&MaxX=128.890000&MinY=34.100000%20&MaxY=39.100000&type=ex
-      event-url: http://openapi.its.go.kr/api/NEventIdentity?key=1474512853033&ReqType=2&Minx=127.100000&MaxX=128.890000&MinY=34.100000&MaxY=39.100000&type=ex
+      url: http://openapi.its.go.kr/api/NIncidentIdentity?key=1474512853033&ReqType=2&MinX=127.100000&MaxX=128.890000&MinY=34.100000%20&MaxY=39.100000&type=ex
+    event:
+      enable: true
+      url: http://openapi.its.go.kr/api/NEventIdentity?key=1474512853033&ReqType=2&Minx=127.100000&MaxX=128.890000&MinY=34.100000&MaxY=39.100000&type=ex
 

+ 6 - 0
utic-incident-common/src/main/java/com/utic/incident/common/url/RequestUrlData.java

@@ -66,7 +66,9 @@ public final class RequestUrlData {
                 String contentType = getContentType(connection);
                 String response = readResponse(connection);
 
+                log.info("Content-Type: {}, Response Code: {}", contentType, responseCode);
                 if (responseCode == HttpURLConnection.HTTP_OK) {
+                    log.info("Response: {}", response);
                     if ("application/json".equalsIgnoreCase(contentType) && jsonType != null) {
                         // JSON 응답 처리
                         return new RequestUrlDataResult<>(RequestUrlDataError.SUCCESS, "SUCCESS", parseJson(response, jsonType));
@@ -75,6 +77,10 @@ public final class RequestUrlData {
                         // XML 응답 처리
                         return new RequestUrlDataResult<>(RequestUrlDataError.SUCCESS, "SUCCESS", parseXml(response, xmlType));
                     }
+                    else if ("text/xml".equalsIgnoreCase(contentType) && xmlType != null) {
+                        // XML 응답 처리
+                        return new RequestUrlDataResult<>(RequestUrlDataError.SUCCESS, "SUCCESS", parseXml(response, xmlType));
+                    }
                     else {
                         String errorMessage = String.format("지원되지 않는 Content-Type: %s", contentType);
                         log.warn("{}.", errorMessage);

+ 7 - 7
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/IncidentMolitServerApplication.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/IncidentMolitServerApplication.java

@@ -1,9 +1,9 @@
-package com.utic.incident.utic.incident.molit;
+package com.utic.incident.molit.server;
 
 import com.utic.incident.common.spring.SpringUtils;
-import com.utic.incident.utic.incident.molit.config.ApplicationConfig;
-import com.utic.incident.utic.incident.molit.controller.*;
-import com.utic.incident.utic.incident.molit.service.ProcessStateService;
+import com.utic.incident.molit.server.config.ApplicationConfig;
+import com.utic.incident.molit.server.controller.IncidentMolitController;
+import com.utic.incident.molit.server.service.ProcessStateService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
@@ -24,7 +24,7 @@ import java.util.Date;
 @Slf4j
 @SpringBootApplication
 @EnableTransactionManagement
-@ComponentScan(basePackages = {"com.utic.incident.common.spring", "com.utic.incident.utic.incident.molit.config", "com.utic.incident.utic.incident.molit", "com.utic.incident.common.aspect"})
+@ComponentScan(basePackages = {"com.utic.incident.common.spring", "com.utic.incident.molit.server.config", "com.utic.incident.molit", "com.utic.incident.common.aspect"})
 public class IncidentMolitServerApplication implements CommandLineRunner, ApplicationListener<ContextClosedEvent>, InitializingBean, DisposableBean {
 
     private static boolean isTerminal = false;
@@ -46,8 +46,8 @@ public class IncidentMolitServerApplication implements CommandLineRunner, Applic
         log.info("");
         log.info("************************************************************************************");
         log.info("**                                                                                **");
-        log.info("**                        UTIC Center DWDB System                                 **");
-        log.info("**                UTIC Center DWDB Processing Server Program.                     **");
+        log.info("**                     Urban Traffic Information Center                           **");
+        log.info("**            MOLIT Incident and Event Information Collection System              **");
         log.info("**                                                                                **");
         log.info("**                                                                   [ver.1.0]    **");
         log.info("** startup: {}", sdfDate.format(new Date()));

+ 2 - 6
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/ApplicationConfig.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/ApplicationConfig.java

@@ -1,7 +1,6 @@
-package com.utic.incident.utic.incident.molit.config;
+package com.utic.incident.molit.server.config;
 
 import com.utic.incident.common.utils.TimeUtils;
-import com.utic.incident.utic.incident.molit.repository.ApplicationRepository;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
@@ -40,10 +39,7 @@ public class ApplicationConfig {
         }
         this.dbmsBatchSize = Math.max(this.dbmsBatchSize, 2000);
 
-        ApplicationRepository.processState.setProcessId(this.processId);
-        ApplicationRepository.processState.setErrTimeGap(this.getErrTimeGap());
-
-        log.info("[ApplicationConfig] -------------------------");
+        log.info("[ApplicationConfig] -----------------------------------------");
         log.info("[ApplicationConfig]             processId: {}", this.processId);
         log.info("[ApplicationConfig]       packetQueueSize: {}", this.packetQueueSize);
         log.info("[ApplicationConfig]         dbmsQueueSize: {}", this.dbmsQueueSize);

+ 2 - 2
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/DatabaseConfig.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/DatabaseConfig.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.config;
+package com.utic.incident.molit.server.config;
 
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
@@ -25,7 +25,7 @@ import javax.sql.DataSource;
 @ToString
 @Configuration
 @MapperScan(
-        basePackages="com.utic.incident.utic.incident.molit.dao.mapper",
+        basePackages="com.utic.incident.molit.server.dao.mapper",
         sqlSessionFactoryRef = "sqlSessionFactory")
 @EnableTransactionManagement
 public class DatabaseConfig {

+ 43 - 0
utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/MolitRequestConfig.java

@@ -0,0 +1,43 @@
+package com.utic.incident.molit.server.config;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.PostConstruct;
+
+@Slf4j
+@Getter
+@Setter
+@Configuration
+@ConfigurationProperties(prefix = "application.molit-request")
+public class MolitRequestConfig {
+
+    private String cron = "5 * * * * *";
+
+    private RequestConfig incident;
+    private RequestConfig event;
+
+    @PostConstruct
+    private void init() {
+        log.info("[MolitRequestConfig] -----------------------------------------");
+        log.info("[MolitRequestConfig]           cron-schedule: {}", this.cron);
+        log.info("[MolitRequestConfig] -----------------------------------------");
+        log.info("[MolitRequestConfig]         incident.enable: {}", this.incident.isEnable());
+        log.info("[MolitRequestConfig]            incident.url: {}", this.incident.getUrl());
+        log.info("[MolitRequestConfig] incident.connectTimeout: {}", this.incident.getConnectTimeout());
+        log.info("[MolitRequestConfig]    incident.readTimeout: {}", this.incident.getReadTimeout());
+        log.info("[MolitRequestConfig]     incident.retryCount: {}", this.incident.getRetryCount());
+        log.info("[MolitRequestConfig]     incident.retryDelay: {}", this.incident.getRetryDelay());
+        log.info("[MolitRequestConfig] -----------------------------------------");
+        log.info("[MolitRequestConfig]            event.enable: {}", this.event.isEnable());
+        log.info("[MolitRequestConfig]               event.url: {}", this.event.getUrl());
+        log.info("[MolitRequestConfig]    event.connectTimeout: {}", this.event.getConnectTimeout());
+        log.info("[MolitRequestConfig]       event.readTimeout: {}", this.event.getReadTimeout());
+        log.info("[MolitRequestConfig]        event.retryCount: {}", this.event.getRetryCount());
+        log.info("[MolitRequestConfig]        event.retryDelay: {}", this.event.getRetryDelay());
+    }
+
+}

+ 9 - 8
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/IncidentConfig.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/RequestConfig.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.config;
+package com.utic.incident.molit.server.config;
 
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -7,13 +7,14 @@ import javax.annotation.PostConstruct;
 
 @Slf4j
 @Data
-public abstract class IncidentConfig {
-
-    protected boolean enable = true;
-    protected int connectTimeout = 10;
-    protected int readTimeout = 10;
-    protected int retryCount = 3;
-    protected int retryDelay = 5;
+public class RequestConfig {
+
+    private boolean enable = true;
+    private int connectTimeout = 10;
+    private int readTimeout = 10;
+    private int retryCount = 3;
+    private int retryDelay = 5;
+    private String url;
 
     @PostConstruct
     private void init() {

+ 10 - 9
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/ThreadPoolInitializer.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/config/ThreadPoolInitializer.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.config;
+package com.utic.incident.molit.server.config;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -9,16 +9,16 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.AsyncConfigurerSupport;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 
 import javax.annotation.PostConstruct;
-import java.util.concurrent.Executor;
 
 @Slf4j
 @Getter
 @Setter
 @EnableAsync
 @Configuration
-@ConfigurationProperties(prefix = "application.thread-pool")
+@ConfigurationProperties(prefix = "application.thread-pool-initializer")
 public class ThreadPoolInitializer extends AsyncConfigurerSupport {
 
     private int schedule = 0;
@@ -42,12 +42,13 @@ public class ThreadPoolInitializer extends AsyncConfigurerSupport {
         return threadPoolTaskExecutor;
     }
 
-    @Bean(name="scheduleExecutor")
-    public Executor getScheduleExecutor() {
-        ThreadPoolTaskExecutor threadPoolTaskExecutor = getDefaultExecutor(this.schedule);
-        threadPoolTaskExecutor.setThreadNamePrefix("schedule-pool-");
-        threadPoolTaskExecutor.initialize();
-        return threadPoolTaskExecutor;
+    @Bean(name = "appSchedulerExecutor")
+    public ThreadPoolTaskScheduler appScheduler() {
+        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
+        scheduler.setPoolSize(this.schedule);
+        scheduler.setThreadNamePrefix("app-scheduler-");
+        scheduler.initialize();
+        return scheduler;
     }
 
 }

+ 68 - 0
utic-incident-molit/src/main/java/com/utic/incident/molit/server/controller/IncidentMolitController.java

@@ -0,0 +1,68 @@
+package com.utic.incident.molit.server.controller;
+
+import com.utic.incident.common.annotation.SchedulingElapsed;
+import com.utic.incident.common.controller.AbstractProcessController;
+import com.utic.incident.common.dto.ProcessStateDto;
+import com.utic.incident.common.utils.TimeUtils;
+import com.utic.incident.molit.server.service.IncidentMolitService;
+import com.utic.incident.molit.server.service.ProcessStateService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Controller;
+
+@Slf4j
+@Controller
+@RequiredArgsConstructor
+public class IncidentMolitController implements AbstractProcessController {
+
+    private final IncidentMolitService service;
+    private final ProcessStateService processStateService;
+
+    private String startTime = null;
+    private boolean isRunning = false;
+
+    @Override
+    public boolean initialize() {
+        if (this.isRunning) {
+            log.warn("IncidentMolitController is already running: [{}]", this.startTime);
+            return false;
+        }
+        this.isRunning = true;
+        this.startTime = TimeUtils.getCurrentTimeString();
+        this.service.initialize();
+        return true;
+    }
+
+    @SchedulingElapsed(type="SCHEDULE", name="Molit Request 작업")
+    @Override
+    public void run() {
+        this.isRunning = true;
+
+        int incidentResult = this.service.incidentProcessing();
+        int eventResult = this.service.eventProcessing();
+
+        this.service.save();
+
+        String runState = ProcessStateDto.RUN_STATE.NORMAL.getValue();
+        if (incidentResult < 0 || eventResult < 0) {
+            runState = ProcessStateDto.RUN_STATE.ERROR.getValue();
+        }
+
+        String errDescMsg = this.service.getIncidentErrorMsg();
+        String eventErrorMsg = this.service.getEventErrorMsg();
+        if (errDescMsg != null && !errDescMsg.isEmpty()) {
+            if (eventErrorMsg != null && !eventErrorMsg.isEmpty()) {
+                errDescMsg += ", ";
+                errDescMsg += eventErrorMsg;
+            }
+        } else {
+            errDescMsg += eventErrorMsg;
+        }
+
+        incidentResult = this.service.getIncidentCnt();
+        eventResult = this.service.getEventCnt();
+        this.processStateService.updateProcessRunning(runState, incidentResult, eventResult, errDescMsg);
+        this.isRunning = false;
+    }
+
+}

+ 4 - 5
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dao/mapper/IncidentMolitMapper.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dao/mapper/IncidentMolitMapper.java

@@ -1,8 +1,7 @@
-package com.utic.incident.utic.incident.molit.dao.mapper;
+package com.utic.incident.molit.server.dao.mapper;
 
-import com.utic.incident.utic.incident.molit.dto.ProcessStateDto;
-import com.utic.incident.utic.incident.molit.dto.ProcessStateRunDto;
-import com.utic.incident.utic.incident.molit.dto.molit.IncidentMoctDto;
+import com.utic.incident.common.dto.ProcessStateDto;
+import com.utic.incident.molit.server.dto.IncidentMoctDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -13,7 +12,7 @@ public interface IncidentMolitMapper {
     int deleteIncidentMoctEvent();
     int insertIncidentMoct(@Param("obj") IncidentMoctDto obj);
     int insertLogRcvIncidentMoct(@Param("incRcvCnt") Integer incRcvCnt, @Param("evtRcvCnt") Integer evtRcvCnt);
-    int updateProcessStateRun(@Param("obj")ProcessStateRunDto obj);
+    int updateProcessStateRun(@Param("obj") ProcessStateDto obj);
     int updateProcessState(@Param("obj") ProcessStateDto obj);
 
 }

+ 5 - 6
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dao/repository/IncidentMolitMapperImpl.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dao/repository/IncidentMolitMapperImpl.java

@@ -1,10 +1,9 @@
-package com.utic.incident.utic.incident.molit.dao.repository;
+package com.utic.incident.molit.server.dao.repository;
 
 import com.utic.incident.common.annotation.SqlOperation;
-import com.utic.incident.utic.incident.molit.dao.mapper.IncidentMolitMapper;
-import com.utic.incident.utic.incident.molit.dto.ProcessStateDto;
-import com.utic.incident.utic.incident.molit.dto.ProcessStateRunDto;
-import com.utic.incident.utic.incident.molit.dto.molit.IncidentMoctDto;
+import com.utic.incident.common.dto.ProcessStateDto;
+import com.utic.incident.molit.server.dao.mapper.IncidentMolitMapper;
+import com.utic.incident.molit.server.dto.IncidentMoctDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.session.ExecutorType;
@@ -68,7 +67,7 @@ public class IncidentMolitMapperImpl {
     }
 
     @SqlOperation(type = SqlOperation.SqlType.UPDATE, table = "PROCESS_STATE", param = "running")
-    public int updateProcessStateRun(ProcessStateRunDto obj) {
+    public int updateProcessStateRun(ProcessStateDto obj) {
         return this.mapper.updateProcessStateRun(obj);
     }
 

+ 1 - 1
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/molit/IncidentMoctDto.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/IncidentMoctDto.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.dto.molit;
+package com.utic.incident.molit.server.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/molit/LogRcvIncidentMoctDto.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/LogRcvIncidentMoctDto.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.dto.molit;
+package com.utic.incident.molit.server.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/molit/MolitEventDto.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitEventDto.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.dto.molit;
+package com.utic.incident.molit.server.dto;
 
 import lombok.Getter;
 import lombok.ToString;

+ 1 - 1
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/molit/MolitEventResponseDto.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitEventResponseDto.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.dto.molit;
+package com.utic.incident.molit.server.dto;
 
 
 import lombok.Getter;

+ 1 - 1
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/molit/MolitIncidentDto.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitIncidentDto.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.dto.molit;
+package com.utic.incident.molit.server.dto;
 
 import lombok.Getter;
 import lombok.ToString;

+ 1 - 1
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/molit/MolitIncidentResponseDto.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/dto/MolitIncidentResponseDto.java

@@ -1,4 +1,4 @@
-package com.utic.incident.utic.incident.molit.dto.molit;
+package com.utic.incident.molit.server.dto;
 
 
 import lombok.Getter;

+ 10 - 6
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/repository/ApplicationRepository.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/repository/ApplicationRepository.java

@@ -1,6 +1,7 @@
-package com.utic.incident.utic.incident.molit.repository;
+package com.utic.incident.molit.server.repository;
 
 import com.utic.incident.common.dto.ProcessStateDto;
+import com.utic.incident.molit.server.config.ApplicationConfig;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -17,8 +18,10 @@ import javax.annotation.PreDestroy;
 @Transactional(rollbackFor = {Exception.class})
 public class ApplicationRepository {
 
-    public static final ProcessStateDto processState = ProcessStateDto.builder()
-            .processId("70030")
+    private final ApplicationConfig config;
+
+    public final ProcessStateDto processState = ProcessStateDto.builder()
+            .processId("70010")
             .regDate("")
             .runState(ProcessStateDto.RUN_STATE.NORMAL.getValue())
             .rcvCnt(0)
@@ -30,14 +33,15 @@ public class ApplicationRepository {
 
     @PostConstruct
     private void init() {
-        log.info("ApplicationRepository.init: Start.");
-        log.info("ApplicationRepository.init: ..End.");
+        this.processState.setProcessId(this.config.getProcessId());
+        this.processState.setErrTimeGap(this.config.getErrTimeGap());
+        log.info("[ApplicationRepository] -----------------------------------------");
+        log.info("[ApplicationRepository]     {}", this.config.getProcessId());
     }
 
     @PreDestroy
     public void destroyService() {
         log.error("ApplicationRepository.destroy. system terminated.......");
-
     }
 
 }

+ 20 - 10
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/scheduler/ApplicationScheduler.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/scheduler/ApplicationScheduler.java

@@ -1,9 +1,10 @@
-package com.utic.incident.utic.incident.molit.scheduler;
+package com.utic.incident.molit.server.scheduler;
 
 import com.utic.incident.common.controller.AbstractProcessController;
-import com.utic.incident.utic.incident.molit.config.IncidentMolitConfig;
-import com.utic.incident.utic.incident.molit.controller.IncidentMolitController;
-import com.utic.incident.utic.incident.molit.service.ProcessStateService;
+import com.utic.incident.molit.server.config.ApplicationConfig;
+import com.utic.incident.molit.server.config.MolitRequestConfig;
+import com.utic.incident.molit.server.controller.IncidentMolitController;
+import com.utic.incident.molit.server.service.ProcessStateService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
@@ -18,7 +19,8 @@ import org.springframework.stereotype.Component;
 public class ApplicationScheduler {
 
     private final ProcessStateService processStateService;
-    private final IncidentMolitConfig incidentMolitConfig;
+    private final ApplicationConfig applicationConfig;
+    private final MolitRequestConfig config;
 
     private final IncidentMolitController incidentMolitController;
 
@@ -36,16 +38,24 @@ public class ApplicationScheduler {
     @Scheduled(cron = "5 * * * * *")  // 1분주기 작업 실행
     public void updateProcessState() {
         try {
-            this.processStateService.processRunning();
+            if (this.processStateService.isStateUpdateTimeExpired()) {
+                // 60초 이상 경과 시 프로세스 상태 업데이트
+                this.processStateService.processRunning();
+            }
         } catch(Exception e) {
             log.error("ApplicationScheduler.updateProcessState: Exception {}", e.getMessage());
         }
     }
 
-    @Scheduled(cron = "${application.incident.molit.cron:0/20 * * * * *}")
-    public void incidentMolit() {
-        if (this.incidentMolitConfig.isEnable()) {
-            runJob(this.incidentMolitController, "Incident-Molit");
+    @Async("appSchedulerExecutor")
+    @Scheduled(cron = "${application.molit-request.cron:5 * * * * *}")
+    public void molitRequest() {
+        if (this.applicationConfig.isStartSchedule()) {
+            try {
+                runJob(this.incidentMolitController, "Molit-Request");
+            } catch(Exception e) {
+                log.error("ApplicationScheduler.molitRequest: Exception {}", e.getMessage());
+            }
         }
     }
 

+ 31 - 27
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/service/IncidentMolitService.java → utic-incident-molit/src/main/java/com/utic/incident/molit/server/service/IncidentMolitService.java

@@ -1,16 +1,15 @@
-package com.utic.incident.utic.incident.molit.service;
+package com.utic.incident.molit.server.service;
 
 import com.utic.incident.common.annotation.ProcessingElapsed;
-import com.utic.incident.common.service.AbstractProcessService;
 import com.utic.incident.common.url.RequestUrlData;
 import com.utic.incident.common.url.RequestUrlDataError;
 import com.utic.incident.common.url.RequestUrlDataResult;
 import com.utic.incident.common.utils.TimeUtils;
-import com.utic.incident.utic.incident.molit.config.IncidentMolitConfig;
-import com.utic.incident.utic.incident.molit.dao.repository.IncidentMolitMapperImpl;
-import com.utic.incident.utic.incident.molit.dto.molit.IncidentMoctDto;
-import com.utic.incident.utic.incident.molit.dto.molit.MolitEventResponseDto;
-import com.utic.incident.utic.incident.molit.dto.molit.MolitIncidentResponseDto;
+import com.utic.incident.molit.server.config.MolitRequestConfig;
+import com.utic.incident.molit.server.dao.repository.IncidentMolitMapperImpl;
+import com.utic.incident.molit.server.dto.IncidentMoctDto;
+import com.utic.incident.molit.server.dto.MolitEventResponseDto;
+import com.utic.incident.molit.server.dto.MolitIncidentResponseDto;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -25,16 +24,17 @@ import java.util.List;
 @Getter
 @RequiredArgsConstructor
 @Service
-public class IncidentMolitService implements AbstractProcessService {
+public class IncidentMolitService {
 
-    private final IncidentMolitConfig config;
+    private final MolitRequestConfig config;
     private final IncidentMolitMapperImpl mapper;
 
     private final HashMap<String, IncidentMoctDto> incidentMoctMap = new HashMap<>();
     private int incidentCnt = 0;
+    private String incidentErrorMsg = "";
     private int eventCnt = 0;
+    private String eventErrorMsg = "";
 
-    @Override
     public boolean initialize() {
         this.incidentMoctMap.clear();
         this.incidentCnt = 0;
@@ -43,15 +43,15 @@ public class IncidentMolitService implements AbstractProcessService {
     }
 
     @ProcessingElapsed(type="MOLIT", name="Molit Incident Request")
-    @Override
-    public int processing() {
+    public int incidentProcessing() {
         int result = 0;
+        this.incidentErrorMsg = "";
         RequestUrlDataResult<MolitIncidentResponseDto> response = RequestUrlData.fetchXmlDataFromUrl(
-                this.config.getIncidentUrl(),
-                this.config.getConnectTimeout(),
-                this.config.getReadTimeout(),
-                this.config.getRetryCount(),
-                this.config.getRetryDelay(),
+                this.config.getIncident().getUrl(),
+                this.config.getIncident().getConnectTimeout(),
+                this.config.getIncident().getReadTimeout(),
+                this.config.getIncident().getRetryCount(),
+                this.config.getIncident().getRetryDelay(),
                 MolitIncidentResponseDto.class);
 
         if (response.getErrorCode() == RequestUrlDataError.SUCCESS) {
@@ -66,26 +66,28 @@ public class IncidentMolitService implements AbstractProcessService {
                 }
             }
             else {
-                log.info("MOLIT INCIDENT 응답 데이터가 없습니다.");
+                log.info("There is no response data for MOLIT INCIDENT.");
             }
         }
         else {
             result = -1;
-            log.info("MOLIT INCIDENT 요청 실패 (코드:{}, 메시지:{})", response.getErrorCode().getCode(), response.getErrorCode().getMessage());
+            this.incidentErrorMsg = response.getErrorCode().getMessage();
+            log.info("MOLIT INCIDENT Request failed. (Code:{}, Message:{})", response.getErrorCode().getCode(), this.incidentErrorMsg);
         }
         this.incidentCnt = result;
         return result;
     }
 
     @ProcessingElapsed(type="MOLIT", name="Molit Event Request")
-    public int processingEvent() {
+    public int eventProcessing() {
         int result = 0;
+        this.eventErrorMsg = "";
         RequestUrlDataResult<MolitEventResponseDto> response = RequestUrlData.fetchXmlDataFromUrl(
-                this.config.getEventUrl(),
-                this.config.getConnectTimeout(),
-                this.config.getReadTimeout(),
-                this.config.getRetryCount(),
-                this.config.getRetryDelay(),
+                this.config.getEvent().getUrl(),
+                this.config.getEvent().getConnectTimeout(),
+                this.config.getEvent().getReadTimeout(),
+                this.config.getEvent().getRetryCount(),
+                this.config.getEvent().getRetryDelay(),
                 MolitEventResponseDto.class);
 
         if (response.getErrorCode() == RequestUrlDataError.SUCCESS) {
@@ -100,12 +102,13 @@ public class IncidentMolitService implements AbstractProcessService {
                 }
             }
             else {
-                log.info("MOLIT EVENT 응답 데이터가 없습니다.");
+                log.info("There is no response data for MOLIT EVENT.");
             }
         }
         else {
             result = -1;
-            log.info("MOLIT EVENT 요청 실패 (코드:{}, 메시지:{})", response.getErrorCode().getCode(), response.getErrorCode().getMessage());
+            this.eventErrorMsg = response.getErrorCode().getMessage();
+            log.info("MOLIT EVENT Request failed. (Code:{}, Message:{})", response.getErrorCode().getCode(), this.eventErrorMsg);
         }
         this.eventCnt = result;
         return result;
@@ -131,6 +134,7 @@ public class IncidentMolitService implements AbstractProcessService {
                 .count();
         this.eventCnt = this.incidentMoctMap.size() - this.incidentCnt;
 
+        log.info("MOLIT Data Save: (Incident: {}, Event: {})", this.incidentCnt, this.eventCnt);
         this.mapper.insertLogRcvIncidentMoct(this.incidentCnt, this.eventCnt);
     }
 

+ 74 - 0
utic-incident-molit/src/main/java/com/utic/incident/molit/server/service/ProcessStateService.java

@@ -0,0 +1,74 @@
+package com.utic.incident.molit.server.service;
+
+import com.utic.incident.common.dto.ProcessStateDto;
+import com.utic.incident.molit.server.config.ApplicationConfig;
+import com.utic.incident.molit.server.dao.repository.IncidentMolitMapperImpl;
+import com.utic.incident.molit.server.repository.ApplicationRepository;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+@Slf4j
+@Getter
+@Service
+@RequiredArgsConstructor
+@Transactional(rollbackFor = {Exception.class})
+public class ProcessStateService {
+
+    private final IncidentMolitMapperImpl mapper;
+    private final ApplicationConfig config;
+    private final ApplicationRepository repo;
+
+    private long stateUpdateTime = 0L;
+
+    @PostConstruct
+    private void init() {
+        log.info("[ProcessStateService] -----------------------------------------");
+        log.info("[ProcessStateService]              processId: {}", this.config.getProcessId());
+    }
+
+    @PreDestroy
+    public void destroyService() {
+        log.error("ProcessStateService.destroy. system terminated.......");
+        processStop();
+    }
+
+    public void processStop() {
+        updateProcessRunning(ProcessStateDto.RUN_STATE.STOP.getValue(), 0, 0, "exit");
+    }
+
+    public void processStart() {
+        updateProcessRunning(ProcessStateDto.RUN_STATE.NORMAL.getValue(), 0, 0, "exit");
+    }
+    public void processRunning() {
+        updateProcessRunning(ProcessStateDto.RUN_STATE.NORMAL.getValue(),
+                this.repo.getProcessState().getRcvCnt(),
+                this.repo.getProcessState().getSndCnt(),
+                this.repo.getProcessState().getErrDesc());
+    }
+
+    public void updateProcessRunning(String runState, int rcvCnt, int sndCnt, String errDescMsg) {
+        this.repo.getProcessState().setRunState(runState);
+        this.repo.getProcessState().setRcvCnt(rcvCnt);
+        this.repo.getProcessState().setSndCnt(sndCnt);
+        this.repo.getProcessState().setErrDesc(errDescMsg);
+
+        updateProcessState();
+    }
+
+    private void updateProcessState() {
+        this.mapper.updateProcessStateRun(this.repo.getProcessState());
+        this.stateUpdateTime = System.currentTimeMillis();
+    }
+
+    public boolean isStateUpdateTimeExpired() {
+        final long timeGap = 60 * 1000L; // 1 minute in milliseconds
+        return (System.currentTimeMillis() - this.stateUpdateTime) > timeGap;
+    }
+
+}

+ 0 - 33
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/IncidentMolitConfig.java

@@ -1,33 +0,0 @@
-package com.utic.incident.utic.incident.molit.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-
-import javax.annotation.PostConstruct;
-
-@Slf4j
-@Getter
-@Setter
-@Configuration
-@ConfigurationProperties(prefix = "application.incident.molit")
-public class IncidentMolitConfig extends IncidentConfig {
-
-    private String cron = "0/20 * * * * *";
-    private String incidentUrl = "http://openapi.its.go.kr/api/NIncidentIdentity?key=1474512853033&ReqType=2&MinX=127.100000&MaxX=128.890000&MinY=34.100000%20&MaxY=39.100000&type=ex";
-    private String eventUrl = "http://openapi.its.go.kr/api/NEventIdentity?key=1474512853033&ReqType=2&Minx=127.100000&MaxX=128.890000&MinY=34.100000&MaxY=39.100000&type=ex";
-
-    @PostConstruct
-    private void init() {
-        log.info("[IncidentMolitConfig] -------------------------");
-        log.info("[IncidentMolitConfig]              enable: {}", this.enable);
-        log.info("[IncidentMolitConfig]             timeout: {} ms", this.connectTimeout);
-        log.info("[IncidentMolitConfig]          retryCount: {}", this.retryCount);
-        log.info("[IncidentMolitConfig]                cron: {}", this.cron);
-        log.info("[IncidentMolitConfig]         incidentUrl: {}", this.incidentUrl);
-        log.info("[IncidentMolitConfig]            eventUrl: {}", this.eventUrl);
-    }
-
-}

+ 0 - 40
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/config/SchedulingConfig.java

@@ -1,40 +0,0 @@
-package com.utic.incident.utic.incident.molit.config;
-
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.SchedulingConfigurer;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
-import org.springframework.scheduling.config.ScheduledTaskRegistrar;
-
-import javax.annotation.PostConstruct;
-
-@Slf4j
-@Data
-@Configuration
-@ConfigurationProperties(prefix = "application.scheduler")
-public class SchedulingConfig implements SchedulingConfigurer {
-
-    private int poolSize = 0;
-
-    @PostConstruct
-    private void init() {
-        if (this.poolSize == 0) {
-            this.poolSize = 10;
-        }
-        log.info("[ SchedulingConfig] -------------------------");
-        log.info("[ SchedulingConfig]              poolCore: {}", this.poolSize);
-    }
-
-    @Override
-    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
-        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
-
-        threadPoolTaskScheduler.setPoolSize(this.poolSize);
-        threadPoolTaskScheduler.setThreadNamePrefix("scheduler-");
-        threadPoolTaskScheduler.initialize();
-
-        scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
-    }
-}

+ 0 - 42
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/controller/IncidentMolitController.java

@@ -1,42 +0,0 @@
-package com.utic.incident.utic.incident.molit.controller;
-
-import com.utic.incident.common.annotation.SchedulingElapsed;
-import com.utic.incident.common.controller.AbstractProcessController;
-import com.utic.incident.common.utils.TimeUtils;
-import com.utic.incident.utic.incident.molit.service.IncidentMolitService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Controller;
-
-@Slf4j
-@Controller
-@RequiredArgsConstructor
-public class IncidentMolitController implements AbstractProcessController {
-
-    private final IncidentMolitService service;
-    private String startTime = null;
-    private boolean isRunning = false;
-
-    @Override
-    public boolean initialize() {
-        if (this.isRunning) {
-            log.warn("IncidentMolitController is already running: [{}]", this.startTime);
-            return false;
-        }
-        this.isRunning = true;
-        this.startTime = TimeUtils.getCurrentTimeString();
-        this.service.initialize();
-        return true;
-    }
-
-    @SchedulingElapsed(type="SCHEDULE", name="Incident Molit 작업")
-    @Override
-    public void run() {
-        this.isRunning = true;
-        this.service.processing();
-        this.service.processingEvent();
-        this.service.save();
-        this.isRunning = false;
-    }
-
-}

+ 0 - 11
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dao/mapper/ProcessMapper.java

@@ -1,11 +0,0 @@
-package com.utic.incident.utic.incident.molit.dao.mapper;
-
-import com.utic.incident.common.dto.ProcessStateDto;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-@Mapper
-public interface ProcessMapper {
-
-    int updateProcessState(@Param("obj")ProcessStateDto obj);
-}

+ 0 - 19
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/ProcessStateDto.java

@@ -1,19 +0,0 @@
-package com.utic.incident.utic.incident.molit.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class ProcessStateDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String processId;
-    private String runState;
-}

+ 0 - 23
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/dto/ProcessStateRunDto.java

@@ -1,23 +0,0 @@
-package com.utic.incident.utic.incident.molit.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Builder
-@NoArgsConstructor//(access = AccessLevel.PROTECTED)
-@AllArgsConstructor
-public class ProcessStateRunDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String processId;
-    private String runState;
-    private Integer rcvCnt;
-    private Integer sndCnt;
-    private Integer ectCnt;
-    private String errDesc;
-}

+ 0 - 55
utic-incident-molit/src/main/java/com/utic/incident/utic/incident/molit/service/ProcessStateService.java

@@ -1,55 +0,0 @@
-package com.utic.incident.utic.incident.molit.service;
-
-import com.utic.incident.common.dto.ProcessStateDto;
-import com.utic.incident.utic.incident.molit.config.ApplicationConfig;
-import com.utic.incident.utic.incident.molit.dao.mapper.ProcessMapper;
-import com.utic.incident.utic.incident.molit.repository.ApplicationRepository;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-
-@Slf4j
-@Getter
-@Service
-@RequiredArgsConstructor
-@Transactional(rollbackFor = {Exception.class})
-public class ProcessStateService {
-
-    private final ProcessMapper mapper;
-    private final ApplicationConfig config;
-
-    @PostConstruct
-    private void init() {
-        log.info("ProcessStateService.init: start.");
-        log.info("ProcessStateService.init. processId: {}.", this.config.getProcessId());
-        log.info("ProcessStateService.init: ..end.");
-    }
-
-    @PreDestroy
-    public void destroyService() {
-        log.error("ProcessStateService.destroy. system terminated.......");
-        processStop();
-    }
-
-    public void processStop() {
-        ApplicationRepository.processState.setRunState(ProcessStateDto.RUN_STATE.STOP.getValue());
-        updateProcessState(false);
-    }
-
-    public void processStart() {
-        ApplicationRepository.processState.setRunState(ProcessStateDto.RUN_STATE.NORMAL.getValue());
-        updateProcessState(true);
-    }
-    public void processRunning() {
-        processStart();
-    }
-
-    private void updateProcessState(boolean isRun) {
-        this.mapper.updateProcessState(ApplicationRepository.processState);
-    }
-}

+ 14 - 8
utic-incident-molit/src/main/resources/application.yml

@@ -24,7 +24,7 @@ spring:
     timeout-per-shutdown-phase: 10s
 
 server:
-  port: 9876
+  port: 9871
   shutdown: graceful
 management:
   endpoints:
@@ -43,18 +43,24 @@ application:
   err-time-gap: 300
   prcs-thread-count: 10
   dbms-batch-size: 1000
-  scheduling:
-    poolSize: 10
-  incident:
-    molit:
+  thread-pool-initializer:
+    schedule: 10
+  molit-request:
+    cron: 5 * * * * *
+    incident:
       enable: true
       connect-timeout: 10
       read-timeout: 10
       retry-count: 3
       retry-delay: 5
-      cron: 0/20 * * * * *
-      incident-url: http://openapi.its.go.kr/api/NIncidentIdentity?key=1474512853033&ReqType=2&MinX=127.100000&MaxX=128.890000&MinY=34.100000%20&MaxY=39.100000&type=ex
-      event-url: http://openapi.its.go.kr/api/NEventIdentity?key=1474512853033&ReqType=2&Minx=127.100000&MaxX=128.890000&MinY=34.100000&MaxY=39.100000&type=ex
+      url: http://openapi.its.go.kr/api/NIncidentIdentity?key=1474512853033&ReqType=2&MinX=127.100000&MaxX=128.890000&MinY=34.100000%20&MaxY=39.100000&type=ex
+    event:
+      enable: true
+      connect-timeout: 10
+      read-timeout: 10
+      retry-count: 3
+      retry-delay: 5
+      url: http://openapi.its.go.kr/api/NEventIdentity?key=1474512853033&ReqType=2&Minx=127.100000&MaxX=128.890000&MinY=34.100000&MaxY=39.100000&type=ex
 
 ---
 spring:

+ 9 - 8
utic-incident-molit/src/main/resources/logback-spring.xml

@@ -2,12 +2,12 @@
 <configuration scan="true" scanPeriod="60 seconds">
     <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
 
-    <property name="APP_CLASS_PATH"  value="com.utic.incident.utic.incident.molit"/>
+    <property name="APP_CLASS_PATH"  value="com.utic.incident.molit.server"/>
     <property name="PROJECT_PREFIX"  value="molit"/>
     <property name="PROJECT_NAME"    value="utic-incident-${PROJECT_PREFIX}"/>
     <property name="LOG_CHARSET"     value="UTF-8" />
-    <property name="LOG_PATH"        value="${user.home}/logs/${PROJECT_NAME}/"/>
-    <property name="LOG_BACKUP_PATH" value="${user.home}/logs/${PROJECT_NAME}/backup/"/>
+    <property name="LOG_PATH"        value="${user.dir}/logs/"/>
+    <property name="LOG_BACKUP_PATH" value="${user.dir}/logs/backup/"/>
 
     <property name="LOG_FILE_NAME"        value="${PROJECT_NAME}.log"/>
     <property name="LOG_FILE_NAME_ERROR"  value="${PROJECT_NAME}.err.log"/>
@@ -59,13 +59,14 @@
         </rollingPolicy>
     </appender>
 
-    <springProfile name="!prod">
-        <root level="INFO">
-            <appender-ref ref="CONSOLE"/>
-        </root>
-    </springProfile>
+<!--    <springProfile name="!prod">-->
+<!--        <root level="INFO">-->
+<!--            <appender-ref ref="CONSOLE"/>-->
+<!--        </root>-->
+<!--    </springProfile>-->
 
     <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
         <appender-ref ref="FILE_LOG"/>
         <appender-ref ref="FILE_ERROR"/>
     </root>

+ 11 - 10
utic-incident-molit/src/main/resources/mybatis/mapper/IncidentMolitMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace="com.utic.incident.utic.incident.molit.dao.mapper.IncidentMolitMapper">
+<mapper namespace="com.utic.incident.molit.server.dao.mapper.IncidentMolitMapper">
 
     <delete id="deleteIncidentMoctIncident">
     <![CDATA[
@@ -15,7 +15,7 @@
         ]]>
     </delete>
 
-    <insert id="insertIncidentMoct" parameterType="com.utic.incident.utic.incident.molit.dto.molit.IncidentMoctDto">
+    <insert id="insertIncidentMoct" parameterType="com.utic.incident.molit.server.dto.IncidentMoctDto">
     <![CDATA[
         INSERT INTO INCIDENT_MOCT
         (
@@ -77,20 +77,21 @@
         ]]>
     </insert>
 
-    <update id="updateProcessStateRun" parameterType="com.utic.incident.utic.incident.molit.dto.ProcessStateRunDto">
+    <update id="updateProcessStateRun" parameterType="com.utic.incident.common.dto.ProcessStateDto">
     <![CDATA[
         UPDATE PROCESS_STATE
-        SET REGDATE   = SYSDATE,
-            RUNSTATE  = #{obj.runState},
-            RCVCNT    = #{obj.rcvCnt},
-            SNDCNT    = #{obj.sndCnt},
-            ETCCNT    = #{obj.ectCnt},
-            ERRDESC   = #{obj.errDesc}
+        SET REGDATE    = SYSDATE,
+            RUNSTATE   = #{obj.runState},
+            RCVCNT     = #{obj.rcvCnt},
+            SNDCNT     = #{obj.sndCnt},
+            ETCCNT     = #{obj.etcCnt},
+            ERRDESC    = #{obj.errDesc},
+            ERRTIMEGAP = #{obj.errTimeGap}
         WHERE PROCESSID = #{obj.processId}
         ]]>
     </update>
 
-    <update id="updateProcessState" parameterType="com.utic.incident.utic.incident.molit.dto.ProcessStateDto">
+    <update id="updateProcessState" parameterType="com.utic.incident.common.dto.ProcessStateDto">
     <![CDATA[
         UPDATE PROCESS_STATE
         SET REGDATE   = SYSDATE,

+ 0 - 21
utic-incident-molit/src/main/resources/mybatis/mapper/ProcessMapper.xml

@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="com.utic.incident.utic.incident.molit.dao.mapper.ProcessMapper">
-
-    <update id="updateProcessState" parameterType="com.utic.incident.common.dto.ProcessStateDto">
-        <![CDATA[
-        UPDATE PROCESS_STATE@UTISDB
-        SET
-            REGDATE    = SYSDATE,
-            RUNSTATE   = #{obj.runState},
-            RCVCNT     = #{obj.rcvCnt},
-            SNDCNT     = #{obj.sndCnt},
-            ETCCNT     = #{obj.etcCnt},
-            ERRDESC    = #{obj.errDesc},
-            ERRTIMEGAP = #{obj.errTimeGap}
-        WHERE PROCESSID = #{obj.processId}
-        ]]>
-    </update>
-
-</mapper>

+ 2 - 2
utic-incident-molit/src/test/java/com/utic/incident/utic/incident/molit/IncidentMolitServerApplicationTest.java → utic-incident-molit/src/test/java/com/utic/incident/molit/server/IncidentMolitServerApplicationTest.java

@@ -1,6 +1,6 @@
-package com.utic.incident.utic.incident.molit;
+package com.utic.incident.molit.server;
 
-import com.utic.incident.utic.incident.molit.dto.molit.MolitIncidentResponseDto;
+import com.utic.incident.molit.server.dto.MolitIncidentResponseDto;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
 import org.xml.sax.Attributes;