shjung 3 年之前
父節點
當前提交
7c6b789f3e
共有 46 個文件被更改,包括 726 次插入403 次删除
  1. 3 2
      src/main/java/com/its/traf/TrafPrcsServerApplication.java
  2. 6 7
      src/main/java/com/its/traf/aspectj/ApplicationElapsedAspect.java
  3. 12 10
      src/main/java/com/its/traf/config/CenterCommConfig.java
  4. 4 5
      src/main/java/com/its/traf/config/DbmsItsConfig.java
  5. 123 0
      src/main/java/com/its/traf/config/DbmsUtisConfig.java
  6. 86 0
      src/main/java/com/its/traf/config/DebugConfig.java
  7. 12 89
      src/main/java/com/its/traf/config/ProcessingConfig.java
  8. 0 38
      src/main/java/com/its/traf/config/RepeatCongestConfig.java
  9. 1 1
      src/main/java/com/its/traf/config/SchedulerConfig.java
  10. 4 0
      src/main/java/com/its/traf/controller/its/TrafPrcs05MController.java
  11. 7 7
      src/main/java/com/its/traf/controller/its/TrafPrcsReptCngsSectController.java
  12. 11 0
      src/main/java/com/its/traf/dao/mapper/AbstractLinkRawDataMapper.java
  13. 0 34
      src/main/java/com/its/traf/dao/mapper/its/AbstractCollectSystMapper.java
  14. 11 0
      src/main/java/com/its/traf/dao/mapper/its/ExternalLinkMapper.java
  15. 0 23
      src/main/java/com/its/traf/dao/mapper/its/collect/CollectSystDao.java
  16. 14 0
      src/main/java/com/its/traf/dao/mapper/utis/LinkRawDataMOCT1Mapper.java
  17. 0 23
      src/main/java/com/its/traf/dto/its/LinkRawDataQryDto.java
  18. 32 0
      src/main/java/com/its/traf/dto/its/TbEIOF0101Dto.java
  19. 5 0
      src/main/java/com/its/traf/process/DbmsDataProcess.java
  20. 1 0
      src/main/java/com/its/traf/process/DbmsDataType.java
  21. 6 6
      src/main/java/com/its/traf/scheduler/JobScheduler.java
  22. 7 0
      src/main/java/com/its/traf/service/AbstractLinkRawDataDaoService.java
  23. 46 0
      src/main/java/com/its/traf/service/its/ExternalLinkService.java
  24. 4 4
      src/main/java/com/its/traf/service/its/TbIfscService.java
  25. 4 4
      src/main/java/com/its/traf/service/its/TbLinkService.java
  26. 4 4
      src/main/java/com/its/traf/service/its/TbRoadService.java
  27. 16 18
      src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectService.java
  28. 0 46
      src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectThread.java
  29. 15 4
      src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectWorker.java
  30. 58 0
      src/main/java/com/its/traf/service/its/dao/ExternalLinkDaoService.java
  31. 16 5
      src/main/java/com/its/traf/service/its/dao/LinkRawDataDaoService.java
  32. 8 8
      src/main/java/com/its/traf/xnetudp/UdpServerCenterComm.java
  33. 2 2
      src/main/java/com/its/traf/xnetudp/codec/CenterCommClientEncoder.java
  34. 4 4
      src/main/java/com/its/traf/xnetudp/codec/CenterCommServerDecoder.java
  35. 46 0
      src/main/resources/application-dev.yml
  36. 18 0
      src/main/resources/application-prod.yml
  37. 20 25
      src/main/resources/application.yml
  38. 2 2
      src/main/resources/logback-spring.xmlx
  39. 66 0
      src/main/resources/mybatis/mapper/its/ExternalLinkMapper.xml
  40. 1 1
      src/main/resources/mybatis/mapper/its/collect/LinkRawDataDSRC01.xml
  41. 1 1
      src/main/resources/mybatis/mapper/its/collect/LinkRawDataGITS01.xml
  42. 0 26
      src/main/resources/mybatis/mapper/its/collect/LinkRawDataMOCT01.xml
  43. 1 1
      src/main/resources/mybatis/mapper/its/collect/LinkRawDataOPER01.xml
  44. 1 1
      src/main/resources/mybatis/mapper/its/collect/LinkRawDataVDS01.xml
  45. 46 0
      src/main/resources/mybatis/mapper/utis/collect/LinkRawDataMOCT01.xml
  46. 2 2
      src/main/resources/mybatis/mapper/utis/collect/LinkRawDataUTIS02.xml

+ 3 - 2
src/main/java/com/its/traf/TrafPrcsServerApplication.java

@@ -4,6 +4,7 @@ import com.its.app.utils.OS;
 import com.its.app.utils.SysUtils;
 import com.its.traf.config.AppUtils;
 import com.its.traf.config.ProcessConfig;
+import com.its.traf.controller.its.TrafPrcs05MController;
 import com.its.traf.controller.its.TrafPrcs05MPrepareController;
 import com.its.traf.process.DbmsDataProcess;
 import com.its.traf.service.its.UnitSystService;
@@ -96,8 +97,8 @@ public class TrafPrcsServerApplication implements CommandLineRunner, Application
 
         TrafPrcs05MPrepareController trafPrcs05MPrepareController = (TrafPrcs05MPrepareController)AppUtils.getBean(TrafPrcs05MPrepareController.class);
         trafPrcs05MPrepareController.run();
-//        TrafPrcsReptCngsSectController testController = (TrafPrcsReptCngsSectController)AppUtils.getBean(TrafPrcsReptCngsSectController.class);
-//        testController.run();
+        TrafPrcs05MController testController = (TrafPrcs05MController)AppUtils.getBean(TrafPrcs05MController.class);
+        testController.run();
 
         UdpServerCenterComm udpServerCenterComm = (UdpServerCenterComm)AppUtils.getBean(UdpServerCenterComm.class);
         udpServerCenterComm.run();

+ 6 - 7
src/main/java/com/its/traf/aspectj/ApplicationElapsedAspect.java

@@ -1,6 +1,6 @@
 package com.its.traf.aspectj;
 
-import com.its.traf.dao.mapper.its.AbstractCollectSystMapper;
+import com.its.traf.service.AbstractLinkRawDataDaoService;
 import com.its.traf.service.its.dao.BatchDaoService;
 import com.its.traf.service.its.dao.LinkRawDataDaoService;
 import lombok.extern.slf4j.Slf4j;
@@ -18,15 +18,14 @@ public class ApplicationElapsedAspect {
     @Around("@annotation(com.its.traf.aspectj.CollectElapsed)")
     public Object collectElapsedTime(ProceedingJoinPoint joinPoint) throws Throwable {
 
-        int count = 0;
         String proceedName = String.format("%45s", joinPoint.getTarget().getClass().getSimpleName() + "." + joinPoint.getSignature().getName());
         String clctCode = "UNKNOWN";
-        AbstractCollectSystMapper svc = null;
+        AbstractLinkRawDataDaoService svc = null;
         Object target = joinPoint.getTarget();
-        if ((target instanceof AbstractCollectSystMapper)) {
+        if ((target instanceof AbstractLinkRawDataDaoService)) {
             Object[] params = joinPoint.getArgs();
-            clctCode = params[0].toString();
-            svc = (AbstractCollectSystMapper)target;
+            svc = (AbstractLinkRawDataDaoService)target;
+            clctCode = (String)params[0];//svc.getClctSystCd();
             log.info("[COLLECTING] {}: START. [{}]", proceedName, clctCode);
         }
         else {
@@ -40,7 +39,7 @@ public class ApplicationElapsedAspect {
 
         stopWatch.stop();
         if (svc != null) {
-            count = svc.count();
+            int count = svc.count();
             log.info("[COLLECTING] {}: ..END. [{}], {} EA. {} ms.", proceedName, clctCode, count, stopWatch.getTotalTimeMillis());
         }
         else {

+ 12 - 10
src/main/java/com/its/traf/config/CenterCommConfig.java

@@ -19,16 +19,18 @@ public class CenterCommConfig {
 
     private boolean enable = true;
     private int listenPort = 9902;
-    protected String bindingAddr = "0.0.0.0";
-    protected int backlog = 0;
-    protected int acceptThreads = 0;
-    protected int workerThreads = 0;
-    protected int rcvBuf = 0;
-    protected int sndBuf = 0;
-    protected int readerIdleTimeSeconds = 0;
-    protected int writerIdleTimeSeconds = 0;
-    protected int allIdleTimeSeconds = 0;
-    protected int connectTimeoutSeconds = 0;
+    private String bindingAddr = "0.0.0.0";
+    private int backlog = 0;
+    private int acceptThreads = 0;
+    private int workerThreads = 0;
+    private int rcvBuf = 0;
+    private int sndBuf = 0;
+    private int readerIdleTimeSeconds = 0;
+    private int writerIdleTimeSeconds = 0;
+    private int allIdleTimeSeconds = 0;
+    private int connectTimeoutSeconds = 0;
+    private boolean centerDump = false;
+
 
     @PostConstruct
     private void init() {

+ 4 - 5
src/main/java/com/its/traf/config/DatabaseItsConfig.java → src/main/java/com/its/traf/config/DbmsItsConfig.java

@@ -1,6 +1,5 @@
 package com.its.traf.config;
 
-import com.zaxxer.hikari.HikariDataSource;
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.session.SqlSessionFactory;
@@ -42,7 +41,7 @@ import java.util.Objects;
         basePackages="com.its.traf.dao.mapper.its",
         sqlSessionFactoryRef = "sqlSessionFactory")
 @EnableTransactionManagement
-public class DatabaseItsConfig {
+public class DbmsItsConfig {
 
     @Value("${spring.datasource.hikari.mapper-locations:classpath:mybatis/mapper/its/**/*.xml}")
     String mapperLocations;
@@ -60,8 +59,8 @@ public class DatabaseItsConfig {
     @Bean(name="dataSource")
     @ConfigurationProperties(prefix="spring.datasource.hikari")
     public DataSource dataSource() {
-        //return DataSourceBuilder.create().build();
-        return DataSourceBuilder.create().type(HikariDataSource.class).build();
+        return DataSourceBuilder.create().build();
+        //return DataSourceBuilder.create().type(HikariDataSource.class).build();
     }
 
     @Primary
@@ -96,7 +95,7 @@ public class DatabaseItsConfig {
     }
 
     @Primary
-    @Bean(name="sqlSessionFactory")
+    @Bean({"sqlSessionFactory", "oper01", "vds01", "gits01", "dsrc01"})
     public SqlSessionFactory sqlSessionFactoryBean(
             @Autowired @Qualifier("dataSource") DataSource dataSource, ApplicationContext applicationContext) {
         log.info("mapperLocations: {}", this.mapperLocations);

+ 123 - 0
src/main/java/com/its/traf/config/DbmsUtisConfig.java

@@ -0,0 +1,123 @@
+package com.its.traf.config;
+
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.hibernate.cfg.AvailableSettings;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.util.Objects;
+
+@Slf4j
+@ToString
+@Configuration
+@EnableJpaRepositories(
+        basePackages= {"com.its.traf.dao.repository.utis"},
+        entityManagerFactoryRef = "utisEntityManagerFactory",
+        transactionManagerRef = "utisTransactionManager")
+@MapperScan(
+        basePackages="com.its.traf.dao.mapper.utis",
+        sqlSessionFactoryRef = "utisSqlSessionFactory")
+@EnableTransactionManagement
+public class DbmsUtisConfig {
+
+    @Value("${spring.utis-datasource.hikari.mapper-locations:classpath:mybatis/mapper/utis/**/*.xml}")
+    String mapperLocations;
+
+    @PostConstruct
+    private void init() {
+        if (this.mapperLocations.trim().equals("")) {
+            this.mapperLocations = "classpath:mybatis/mapper/utis/**/*.xml";
+        }
+        log.info("mapperLocations: {}", this.mapperLocations);
+        log.info("{}", this);
+    }
+
+    @Bean(name="utisDataSource")
+    @ConfigurationProperties(prefix="spring.utis-datasource.hikari")
+    public DataSource dataSource() {
+        return DataSourceBuilder.create().build();
+    }
+
+    @Bean(name="utisJpaProperties")
+    @ConfigurationProperties(prefix="spring.utis-jpa")
+    public JpaProperties jpaProperties() {
+        return new JpaProperties();
+    }
+
+    @Bean(name="utisEntityManagerFactory")
+    public LocalContainerEntityManagerFactoryBean entityManagerFactory(
+            EntityManagerFactoryBuilder builder,
+            @Autowired @Qualifier("utisDataSource") DataSource primaryDataSource,
+            @Autowired @Qualifier("utisJpaProperties") JpaProperties jpaProperties) {
+
+        jpaProperties.getProperties().put(AvailableSettings.HBM2DDL_AUTO, "validate");
+
+        return builder
+                .dataSource(primaryDataSource)
+                .properties(jpaProperties.getProperties())
+                .packages("com.its.traf.entity.utis")
+                .persistenceUnit("default")
+                .build();
+    }
+
+    @Bean(name="utisTransactionManager")
+    public PlatformTransactionManager transactionManager(
+            @Autowired @Qualifier("utisEntityManagerFactory") LocalContainerEntityManagerFactoryBean entityManagerFactory) {
+        JpaTransactionManager transactionManager = new JpaTransactionManager(Objects.requireNonNull(entityManagerFactory.getObject()));
+        transactionManager.setNestedTransactionAllowed(true);
+        return transactionManager;
+    }
+
+    @Bean({"utisSqlSessionFactory", "moct01"})
+    public SqlSessionFactory sqlSessionFactoryBean(
+            @Autowired @Qualifier("utisDataSource") DataSource dataSource, ApplicationContext applicationContext) {
+        log.info("mapperLocations: {}", this.mapperLocations);
+        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
+        factoryBean.setDataSource(dataSource);
+        try {
+            //factoryBean.setTypeAliasesPackage("");
+            factoryBean.setConfigLocation(applicationContext.getResource("classpath:mybatis/mybatis-config.xml"));
+            factoryBean.setMapperLocations(applicationContext.getResources(this.mapperLocations));
+            return factoryBean.getObject();
+        } catch (IOException ie) {
+            log.error("sqlSessionFactoryBean: IOException");
+        } catch (Exception e) {
+            log.error("sqlSessionFactoryBean: Exception");
+        }
+        return null;
+    }
+
+    @Bean(name="utisSqlSession")
+    public SqlSessionTemplate sqlSession(
+            @Autowired @Qualifier("utisSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
+        return new SqlSessionTemplate(sqlSessionFactory);
+    }
+
+    @Bean(name="utisSqlSessionTemplate")
+    public SqlSessionTemplate sqlSessionTemplate(
+            @Autowired @Qualifier("utisSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
+        return new SqlSessionTemplate(sqlSessionFactory);
+    }
+
+}

+ 86 - 0
src/main/java/com/its/traf/config/DebugConfig.java

@@ -0,0 +1,86 @@
+package com.its.traf.config;
+
+import com.its.app.utils.StringUtils;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.PostConstruct;
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+@Slf4j
+@Getter
+@Setter
+@ToString
+@Configuration
+@ConfigurationProperties(prefix = "application.debug")
+public class DebugConfig {
+
+    private List<String> links = new ArrayList<>();
+    private List<String> ifscs = new ArrayList<>();
+    private List<String> roads = new ArrayList<>();
+    private List<String> vmsIfscs = new ArrayList<>();
+
+    @PostConstruct
+    private void init() {
+        reload();
+        log.info("{}, {}", this.getClass().getSimpleName(), this.toString());
+    }
+
+    /*
+     *  parameter 설정정보를 다시 읽어 온다
+     */
+    public boolean reload() {
+        try
+        {
+            String workingDir = System.getProperty("user.dir");
+            FileInputStream in = null;
+
+            try
+            {
+                in = new FileInputStream(workingDir + "/conf/debug.properties");
+            }
+            catch(Exception e)
+            {
+                log.error("{}.reload: Exception: {}", this.getClass().getSimpleName(), e.toString());
+                return false;
+            }
+
+            Properties props = new Properties();
+            props.load(in);
+            in.close();
+
+            List<String> debugLinkIds = new ArrayList<>();
+            List<String> debugIfscIds = new ArrayList<>();
+            List<String> debugRoadIds = new ArrayList<>();
+            List<String> debugVmsIfscIds = new ArrayList<>();
+
+            String debugLinks  = props.getProperty("links",  "x").trim();
+            String debugIfscs  = props.getProperty("ifscs",  "x").trim();
+            String debugRoads  = props.getProperty("roads",  "x").trim();
+            String debugVmsIfscs  = props.getProperty("vms-ifscs",  "x").trim();
+
+            if (!debugLinks.equals("x")) debugLinkIds = StringUtils.split(debugLinks, ",");
+            if (!debugIfscs.equals("x")) debugIfscIds = StringUtils.split(debugIfscs, ",");
+            if (!debugRoads.equals("x")) debugRoadIds = StringUtils.split(debugRoads, ",");
+            if (!debugVmsIfscs.equals("x")) debugVmsIfscIds = StringUtils.split(debugVmsIfscs, ",");
+
+            this.links = debugLinkIds;
+            this.ifscs = debugIfscIds;
+            this.roads = debugRoadIds;
+            this.vmsIfscs = debugVmsIfscIds;
+        }
+        catch(Exception e)
+        {
+            log.error("{}.reload: Exception: {}", this.getClass().getSimpleName(), e.toString());
+            return false;
+        }
+        return true;
+    }
+}

+ 12 - 89
src/main/java/com/its/traf/config/ProcessingConfig.java

@@ -1,7 +1,5 @@
 package com.its.traf.config;
 
-import com.its.app.utils.StringUtils;
-import com.its.app.utils.SysUtils;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -10,114 +8,39 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 
 import javax.annotation.PostConstruct;
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
 
 @Slf4j
 @Getter
 @Setter
 @ToString
 @Configuration
-@ConfigurationProperties(prefix = "application")
+@ConfigurationProperties(prefix = "application.processing")
 public class ProcessingConfig {
 
-    private String bootingDateTime;
-    private boolean startSchedule;
-
-    private String processId = "UTP01";
-    private String processName = "ITS Traffic Processing Server";
-
-    private String userId = "admin";
-    private String userPswd = "1234";
-
-    private String centerBindingAddr = "";
-    private int centerBindingPort = 4602;
-    private boolean centerDump = false;
-    private String centerNotificationGroups = "";
-
     private boolean incidentEnabled = true;
     private int incidentMinSpeed = 30;
     private int incidentAverageGap = 30;
     private int incidentPatternGap = 30;
 
-    private boolean repeatCongestEnabled = false;
-    private int repeatCongestTermWeeks = 5;
-    private int repeatCongestCounts = 3;
-    private int repeatContinuousMinutes = 30;
-
     private boolean dsrcEnabled = false;
     private int dsrcMinVol = 3;
 
-    private double ptrnUpdateFactor = 0.2;
+    private double patternUpdateFactor = 0.2;
 
-    private List<String> debugLinkIds = new ArrayList<>();
-    private List<String> debugIfscIds = new ArrayList<>();
-    private List<String> debugRoadIds = new ArrayList<>();
-    private List<String> debugVmsIfscIds = new ArrayList<>();
+    private boolean repeatCongestEnabled = false;
+    private int repeatCongestPeriodWeeks = 5;
+    private int repeatCongestCounts = 3;
+    private int repeatCongestContinuousMinutes = 20;
+
+    private String relatOrgId = "000000";
+    private String orgCode = "44146000";
 
     @PostConstruct
     private void init() {
-        this.startSchedule = false;
-        if (this.centerBindingAddr.equals("")) this.centerBindingAddr = "0.0.0.0";
-        reload();
-        this.bootingDateTime = SysUtils.getSysTimeStr();
-        log.info("{}, {}", this.getClass().getSimpleName(), this.toString());
-
-        if (this.ptrnUpdateFactor > 1) {
-            this.ptrnUpdateFactor = 0.2;
+        if (this.patternUpdateFactor > 1) {
+            this.patternUpdateFactor = 0.2;
         }
+        log.info("{}, {}", this.getClass().getSimpleName(), this.toString());
     }
 
-    /*
-     *  parameter 설정정보를 다시 읽어 온다
-     */
-    public boolean reload() {
-        try
-        {
-            String workingDir = System.getProperty("user.dir");
-            FileInputStream in = null;
-
-            try
-            {
-                in = new FileInputStream(workingDir + "/conf/debug.properties");
-            }
-            catch(Exception e)
-            {
-                log.error("{}.reload: Exception: {}", this.getClass().getSimpleName(), e.toString());
-                return false;
-            }
-
-            Properties props = new Properties();
-            props.load(in);
-            in.close();
-
-            List<String> debugLinkIds = new ArrayList<>();
-            List<String> debugIfscIds = new ArrayList<>();
-            List<String> debugRoadIds = new ArrayList<>();
-            List<String> debugVmsIfscIds = new ArrayList<>();
-
-            String debugLinks  = props.getProperty("links",  "x").trim();
-            String debugIfscs  = props.getProperty("ifscs",  "x").trim();
-            String debugRoads  = props.getProperty("roads",  "x").trim();
-            String debugVmsIfscs  = props.getProperty("vms-ifscs",  "x").trim();
-
-            if (!debugLinks.equals("x")) debugLinkIds = StringUtils.split(debugLinks, ",");
-            if (!debugIfscs.equals("x")) debugIfscIds = StringUtils.split(debugIfscs, ",");
-            if (!debugRoads.equals("x")) debugRoadIds = StringUtils.split(debugRoads, ",");
-            if (!debugVmsIfscs.equals("x")) debugVmsIfscIds = StringUtils.split(debugVmsIfscs, ",");
-
-            this.debugLinkIds = debugLinkIds;
-            this.debugIfscIds = debugIfscIds;
-            this.debugRoadIds = debugRoadIds;
-            this.debugVmsIfscIds = debugVmsIfscIds;
-        }
-        catch(Exception e)
-        {
-            log.error("{}.reload: Exception: {}", this.getClass().getSimpleName(), e.toString());
-            return false;
-        }
-        return true;
-    }
 }

+ 0 - 38
src/main/java/com/its/traf/config/RepeatCongestConfig.java

@@ -1,38 +0,0 @@
-package com.its.traf.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-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
-@ToString
-@Configuration
-@ConfigurationProperties(prefix = "application.repeat-congest")
-public class RepeatCongestConfig {
-
-    private boolean enabled = false;
-    private int periodWeeks = 5;
-    private int congestCounts = 3;
-    private int continuousMinutes = 30;
-
-    @PostConstruct
-    private void init() {
-        if (this.periodWeeks < 4) {
-            this.periodWeeks = 4;
-        }
-        if (this.periodWeeks > 9) {
-            this.periodWeeks = 9;
-        }
-        if (this.congestCounts > this.periodWeeks) {
-            this.congestCounts = this.periodWeeks;
-        }
-    }
-
-}

+ 1 - 1
src/main/java/com/its/traf/config/JobSchedulerConfig.java → src/main/java/com/its/traf/config/SchedulerConfig.java

@@ -18,7 +18,7 @@ import java.util.List;
 @ToString
 @Configuration
 @ConfigurationProperties(prefix = "application.schedule")
-public class JobSchedulerConfig {
+public class SchedulerConfig {
 
     private int poolCore = 0;
     public List<JobScheduleInfo> batchJobs = new ArrayList<>();

+ 4 - 0
src/main/java/com/its/traf/controller/its/TrafPrcs05MController.java

@@ -20,6 +20,7 @@ public class TrafPrcs05MController implements AbstractTrafPrcsController {
     private final TbRoadService roadService;
     private final TbVmsIfscService vmsIfscService;
     private final TrafPrcsCountService trafPrcsCountService;
+    private final ExternalLinkService externalLinkService;
 
     private String statTime;
     private String fromTime;
@@ -88,6 +89,9 @@ public class TrafPrcs05MController implements AbstractTrafPrcsController {
         this.ifscService.processPtrn();
         this.roadService.processPtrn();
 
+        // 외부연계 처리
+        this.externalLinkService.processing();
+
         // 가공 완료
         this.prcsTime.setProcessing(false);
     }

+ 7 - 7
src/main/java/com/its/traf/controller/its/TrafPrcsReptCngsSectController.java

@@ -1,7 +1,7 @@
 package com.its.traf.controller.its;
 
 import com.its.app.utils.TimeUtils;
-import com.its.traf.config.RepeatCongestConfig;
+import com.its.traf.config.ProcessingConfig;
 import com.its.traf.dao.mapper.its.ReptCngsSectMapper;
 import com.its.traf.define.ITS;
 import com.its.traf.dto.its.IfscCngsAvgDto;
@@ -29,7 +29,7 @@ import java.util.*;
 public class TrafPrcsReptCngsSectController implements AbstractTrafPrcsController {
 
     private final TbHldyInfrService hldyInfrService;
-    private final RepeatCongestConfig config;
+    private final ProcessingConfig config;
     private final TbIfscService ifscService;
     private final ReptCngsSectMapper reptCngsSectMapper;
     private final DbmsDataProcess dbmsDataProcess;
@@ -129,7 +129,7 @@ public class TrafPrcsReptCngsSectController implements AbstractTrafPrcsControlle
         this.DAY_TYPE_CD = ITS.getDayWeekCd(ITS.getDayWeek(calStat.getTime()));
         log.info("TrafPrcsReptCngsSectController: loadCngsLists START, {}, {}", this.STAT_YM, this.DAY_TYPE_CD);
 
-        int periodWeeks = this.config.getPeriodWeeks();
+        int periodWeeks = this.config.getRepeatCongestPeriodWeeks();
         Calendar calBase = (Calendar)calStat.clone();
         for (int ii = 0; ii < periodWeeks; ii++) {
             calStat = (Calendar) calBase.clone();
@@ -180,7 +180,7 @@ public class TrafPrcsReptCngsSectController implements AbstractTrafPrcsControlle
             // 정체 정보가 일정 갯수 이상인지 확인
             for (String hhMi: hhMiMap.keySet()) {
                 List<IfscCngsDto> lists = hhMiMap.get(hhMi);
-                if (lists == null || lists.size() < this.config.getCongestCounts()) {
+                if (lists == null || lists.size() < this.config.getRepeatCongestCounts()) {
                     continue;
                 }
 //                if (key == 3505430300L) {
@@ -235,7 +235,7 @@ public class TrafPrcsReptCngsSectController implements AbstractTrafPrcsControlle
                     dataCount++;
                     cngsTimeIdx++;
                 } else {
-                    if (dataCount*5 >= this.config.getContinuousMinutes()) {
+                    if (dataCount*5 >= this.config.getRepeatCongestContinuousMinutes()) {
                         // 지속시간이 설정값 이상이면 반복정체구간으로 설정한다.
                         TbIfscDto ifsc = this.ifscService.get(ifscId);
                         if (ifsc != null) {
@@ -273,7 +273,7 @@ public class TrafPrcsReptCngsSectController implements AbstractTrafPrcsControlle
                 } else {
                 }
             }
-            if (dataCount*5 >= this.config.getContinuousMinutes()) {
+            if (dataCount*5 >= this.config.getRepeatCongestContinuousMinutes()) {
                 // 지속시간이 설정값 이상이면 반복정체구간으로 설정한다.
                 TbIfscDto ifsc = this.ifscService.get(ifscId);
                 if (ifsc != null) {
@@ -328,7 +328,7 @@ public class TrafPrcsReptCngsSectController implements AbstractTrafPrcsControlle
 
     @Override
     public void run() {
-        if (!this.config.isEnabled()) {
+        if (!this.config.isRepeatCongestEnabled()) {
             log.info("TrafPrcsReptCngsSectController: Not Set Enabled.");
             return;
         }

+ 11 - 0
src/main/java/com/its/traf/dao/mapper/AbstractLinkRawDataMapper.java

@@ -0,0 +1,11 @@
+package com.its.traf.dao.mapper;
+
+import com.its.traf.dto.its.LinkRawDataDto;
+
+import java.util.List;
+import java.util.Map;
+
+public interface AbstractLinkRawDataMapper {
+
+    List<LinkRawDataDto> selectLinkRawData(Map<String, Object> obj);
+}

+ 0 - 34
src/main/java/com/its/traf/dao/mapper/its/AbstractCollectSystMapper.java

@@ -1,34 +0,0 @@
-package com.its.traf.dao.mapper.its;
-
-import com.its.traf.dto.its.LinkRawDataQryDto;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.session.SqlSession;
-
-import java.util.List;
-
-@Slf4j
-public class AbstractCollectSystMapper<T> {
-
-    private SqlSession sqlSession;
-    protected int count;
-
-    public AbstractCollectSystMapper() {
-        //this.sqlSession = (SqlSession) AppUtils.getBean(SqlSession.class);
-        //this.sf = (SqlSessionFactory) AppUtils.getBean(SqlSessionFactory.class);
-    }
-
-    public List<T> collectSyst(String queryId, LinkRawDataQryDto collectDt) {
-        //this.sqlSession = this.sf.openSession();
-//        try {
-//            return sqlSession.selectList(queryId, collectDt);
-//        } catch(Exception e) {
-//            log.error("AbstractCollectSystMapper.collectSyst: {}, {}, Exception: {}", queryId, collectDt.toString(), e.toString());
-//        }
-        //this.sqlSession.close();
-        return null;
-    }
-
-    public int count() {
-        return this.count;
-    }
-}

+ 11 - 0
src/main/java/com/its/traf/dao/mapper/its/ExternalLinkMapper.java

@@ -0,0 +1,11 @@
+package com.its.traf.dao.mapper.its;
+
+import com.its.traf.dto.its.TbEIOF0101Dto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface ExternalLinkMapper {
+
+    int createEIOF0101(@Param("obj") TbEIOF0101Dto obj);
+}

+ 0 - 23
src/main/java/com/its/traf/dao/mapper/its/collect/CollectSystDao.java

@@ -1,23 +0,0 @@
-package com.its.traf.dao.mapper.its.collect;
-
-import com.its.traf.aspectj.CollectElapsed;
-import com.its.traf.dao.mapper.its.AbstractCollectSystMapper;
-import com.its.traf.dto.its.LinkRawDataQryDto;
-import com.its.traf.dto.its.LinkRawDataDto;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Slf4j
-@Repository
-public class CollectSystDao extends AbstractCollectSystMapper<LinkRawDataDto> {
-
-    @CollectElapsed
-    public List<LinkRawDataDto> collect(String CLCT_SYST_CD, LinkRawDataQryDto qryDt) {
-        String queryId = "selectLinkRawData" + CLCT_SYST_CD;
-        List<LinkRawDataDto> list = collectSyst(queryId, qryDt);
-        this.count = list.size();
-        return list;
-    }
-}

+ 14 - 0
src/main/java/com/its/traf/dao/mapper/utis/LinkRawDataMOCT1Mapper.java

@@ -0,0 +1,14 @@
+package com.its.traf.dao.mapper.utis;
+
+import com.its.traf.dao.mapper.AbstractLinkRawDataMapper;
+import com.its.traf.dto.its.LinkRawDataDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface LinkRawDataMOCT1Mapper extends AbstractLinkRawDataMapper {
+
+    List<LinkRawDataDto> selectLinkRawData(Map<String, Object> obj);
+}

+ 0 - 23
src/main/java/com/its/traf/dto/its/LinkRawDataQryDto.java

@@ -1,23 +0,0 @@
-package com.its.traf.dto.its;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class LinkRawDataQryDto {
-    private String CURR_DT;
-    private String BASE_DT;
-    private String FROM_DT;
-    private String TO_DT;
-    private String FROM_15M;
-    private String FROM_HOUR;
-
-    private int DSRC_MIN_VOL;
-
-    public LinkRawDataQryDto() {
-        this.DSRC_MIN_VOL = 3;
-    }
-}

+ 32 - 0
src/main/java/com/its/traf/dto/its/TbEIOF0101Dto.java

@@ -0,0 +1,32 @@
+package com.its.traf.dto.its;
+
+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("TbEIOF0101Dto(경기도연계)")
+public class TbEIOF0101Dto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("연계기관 ID")
+    @JsonProperty("relat_org_id")
+    private String relatOrgId;
+
+    @ApiModelProperty("기관코드")
+    @JsonProperty("org_code")
+    private String orgCode;
+
+    @ApiModelProperty("가공시각")
+    @JsonProperty("prcn_dt")
+    private String prcnDt;
+
+}

+ 5 - 0
src/main/java/com/its/traf/process/DbmsDataProcess.java

@@ -31,6 +31,7 @@ public class DbmsDataProcess {
     private final RoadDaoService roadDaoService;
     private final VmsIfscDaoService vmsIfscDaoService;
     private final ReptCngsSectDaoService reptCngsSectDaoService;
+    private final ExternalLinkDaoService externalLinkDaoService;
 
     @PostConstruct
     void init() {
@@ -111,6 +112,10 @@ public class DbmsDataProcess {
                     this.linkDaoService.directQueryFunc(type, obj);
                     break;
 
+                case TB_EIOF0101_CREATE:
+                    this.externalLinkDaoService.directQueryFunc(type, obj);
+                    break;
+
                 case TB_IFSC_TRAF_UPDATE:
                 case TB_IFSC_PTRN_05M_UPDATE:
                 case TB_IFSC_PTRN_HLDY_05M_UPDATE:

+ 1 - 0
src/main/java/com/its/traf/process/DbmsDataType.java

@@ -19,6 +19,7 @@ public enum DbmsDataType {
     TB_LINK_STAT_DD_CREATE,
     TB_LINK_STAT_MN_CREATE,
     TB_LINK_STAT_YY_CREATE,
+    TB_EIOF0101_CREATE,
 
     TB_IFSC_TRAF_UPDATE,
     TB_IFSC_TRAF_HS_INSERT,

+ 6 - 6
src/main/java/com/its/traf/scheduler/JobScheduler.java

@@ -1,6 +1,6 @@
 package com.its.traf.scheduler;
 
-import com.its.traf.config.JobSchedulerConfig;
+import com.its.traf.config.SchedulerConfig;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -23,14 +23,14 @@ import java.util.concurrent.ScheduledFuture;
 @Service
 public class JobScheduler implements SchedulingConfigurer {
 
-    private final JobSchedulerConfig jobSchedulerConfig;
+    private final SchedulerConfig schedulerConfig;
 
     private ScheduledTaskRegistrar scheduledTaskRegistrar;
     private Map<String, ScheduledFuture> futureMap = new HashMap<>();
     private Map<String, JobScheduleInfo> batchScheduleMap = new HashMap<>();
 
-    public JobScheduler(JobSchedulerConfig jobSchedulerConfig) {
-        this.jobSchedulerConfig = jobSchedulerConfig;
+    public JobScheduler(SchedulerConfig schedulerConfig) {
+        this.schedulerConfig = schedulerConfig;
     }
 
     @PostConstruct
@@ -46,7 +46,7 @@ public class JobScheduler implements SchedulingConfigurer {
     public TaskScheduler poolScheduler() {
         ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
         scheduler.setThreadNamePrefix("jobScheduler-");
-        scheduler.setPoolSize(this.jobSchedulerConfig.getPoolCore());
+        scheduler.setPoolSize(this.schedulerConfig.getPoolCore());
         scheduler.initialize();
         return scheduler;
     }
@@ -62,7 +62,7 @@ public class JobScheduler implements SchedulingConfigurer {
 
         taskRegistrar.setScheduler(poolScheduler());
 
-        List<JobScheduleInfo> jobs = this.jobSchedulerConfig.getBatchJobs();
+        List<JobScheduleInfo> jobs = this.schedulerConfig.getBatchJobs();
         for(JobScheduleInfo info : jobs) {
             this.batchScheduleMap.put(info.getName(), info);
             taskRegistrar.addTriggerTask(() -> batchJobScheduleCron(info.getName()), t -> {

+ 7 - 0
src/main/java/com/its/traf/service/AbstractLinkRawDataDaoService.java

@@ -0,0 +1,7 @@
+package com.its.traf.service;
+
+public interface AbstractLinkRawDataDaoService {
+
+    int count();
+    String getClctSystCd();
+}

+ 46 - 0
src/main/java/com/its/traf/service/its/ExternalLinkService.java

@@ -0,0 +1,46 @@
+package com.its.traf.service.its;
+
+import com.its.traf.config.ProcessingConfig;
+import com.its.traf.dto.its.TbEIOF0101Dto;
+import com.its.traf.dto.its.TbLinkDto;
+import com.its.traf.process.DbmsData;
+import com.its.traf.process.DbmsDataProcess;
+import com.its.traf.process.DbmsDataType;
+import com.its.traf.service.AbstractDataService;
+import com.its.traf.service.AbstractPrcsService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class ExternalLinkService extends AbstractDataService<Long, TbLinkDto> implements AbstractPrcsService {
+
+    private final TrafPrcsTime prcsTime;
+    private final ProcessingConfig processingConfig;
+    private final DbmsDataProcess dbmsDataProcess;
+
+    @Override
+    @Transactional
+    public int load() {
+        return 0;
+    }
+
+    /**
+     * 외부연계 처리
+     * @return
+     */
+    @Override
+    public int processing() {
+
+        TbEIOF0101Dto dto = TbEIOF0101Dto.builder()
+                .relatOrgId(this.processingConfig.getRelatOrgId())
+                .prcnDt(this.prcsTime.getCurrFiveMin())
+                .build();;
+        this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_EIOF0101_CREATE, false, dto, 1));
+        return 0;
+    }
+
+}

+ 4 - 4
src/main/java/com/its/traf/service/its/TbIfscService.java

@@ -314,8 +314,8 @@ public class TbIfscService extends AbstractDataService<Long, TbIfscDto> implemen
         String sPRCN_DT = this.prcsTime.getPrcsFiveMin();
         boolean isChangeMonth = !sPRCN_DT.substring(0, 6).equals(this.ptrn05M.substring(0, 6));
 
-        double fFactO = (1.0 - this.processingConfig.getPtrnUpdateFactor());
-        double fFactN = this.processingConfig.getPtrnUpdateFactor();
+        double fFactO = (1.0 - this.processingConfig.getPatternUpdateFactor());
+        double fFactN = this.processingConfig.getPatternUpdateFactor();
 
         // 05분 패턴
         String PRCN_DT         = sPRCN_DT.substring(0, 6);
@@ -403,8 +403,8 @@ public class TbIfscService extends AbstractDataService<Long, TbIfscDto> implemen
         String sPRCN_DT = this.prcsTime.getStat15MinTime();
         boolean isChangeMonth = !sPRCN_DT.substring(0, 6).equals(this.ptrn15M.substring(0, 6));
 
-        double fFactO = (1.0 - this.processingConfig.getPtrnUpdateFactor());
-        double fFactN = this.processingConfig.getPtrnUpdateFactor();
+        double fFactO = (1.0 - this.processingConfig.getPatternUpdateFactor());
+        double fFactN = this.processingConfig.getPatternUpdateFactor();
 
         // 05분 패턴
         String PRCN_DT         = sPRCN_DT.substring(0, 6);

+ 4 - 4
src/main/java/com/its/traf/service/its/TbLinkService.java

@@ -683,8 +683,8 @@ public class TbLinkService extends AbstractDataService<Long, TbLinkDto> implemen
         String sPRCN_DT = this.prcsTime.getPrcsFiveMin();
         boolean isChangeMonth = !sPRCN_DT.substring(0, 6).equals(this.ptrn05M.substring(0, 6));
 
-        double fFactO = (1.0 - this.processingConfig.getPtrnUpdateFactor());
-        double fFactN = this.processingConfig.getPtrnUpdateFactor();
+        double fFactO = (1.0 - this.processingConfig.getPatternUpdateFactor());
+        double fFactN = this.processingConfig.getPatternUpdateFactor();
 
         // 05분 패턴
         String PRCN_DT         = sPRCN_DT.substring(0, 6);
@@ -789,8 +789,8 @@ public class TbLinkService extends AbstractDataService<Long, TbLinkDto> implemen
         String sPRCN_DT = this.prcsTime.getStat15MinTime();
         boolean isChangeMonth = !sPRCN_DT.substring(0, 6).equals(this.ptrn15M.substring(0, 6));
 
-        double fFactO = (1.0 - this.processingConfig.getPtrnUpdateFactor());
-        double fFactN = this.processingConfig.getPtrnUpdateFactor();
+        double fFactO = (1.0 - this.processingConfig.getPatternUpdateFactor());
+        double fFactN = this.processingConfig.getPatternUpdateFactor();
 
         // 05분 패턴
         String PRCN_DT         = sPRCN_DT.substring(0, 6);

+ 4 - 4
src/main/java/com/its/traf/service/its/TbRoadService.java

@@ -315,8 +315,8 @@ public class TbRoadService extends AbstractDataService<Long, TbRoadDto> implemen
         String sPRCN_DT = this.prcsTime.getPrcsFiveMin();
         boolean isChangeMonth = !sPRCN_DT.substring(0, 6).equals(this.ptrn05M.substring(0, 6));
 
-        double fFactO = (1.0 - this.processingConfig.getPtrnUpdateFactor());
-        double fFactN = this.processingConfig.getPtrnUpdateFactor();
+        double fFactO = (1.0 - this.processingConfig.getPatternUpdateFactor());
+        double fFactN = this.processingConfig.getPatternUpdateFactor();
 
         // 05분 패턴
         String PRCN_DT         = sPRCN_DT.substring(0, 6);
@@ -404,8 +404,8 @@ public class TbRoadService extends AbstractDataService<Long, TbRoadDto> implemen
         String sPRCN_DT = this.prcsTime.getStat15MinTime();
         boolean isChangeMonth = !sPRCN_DT.substring(0, 6).equals(this.ptrn15M.substring(0, 6));
 
-        double fFactO = (1.0 - this.processingConfig.getPtrnUpdateFactor());
-        double fFactN = this.processingConfig.getPtrnUpdateFactor();
+        double fFactO = (1.0 - this.processingConfig.getPatternUpdateFactor());
+        double fFactN = this.processingConfig.getPatternUpdateFactor();
 
         // 05분 패턴
         String PRCN_DT         = sPRCN_DT.substring(0, 6);

+ 16 - 18
src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectService.java

@@ -1,18 +1,17 @@
 package com.its.traf.service.its.collect;
 
-import com.its.traf.dao.mapper.its.collect.CollectSystDao;
-import com.its.traf.dto.its.LinkRawDataQryDto;
+import com.its.traf.config.ProcessingConfig;
 import com.its.traf.dto.its.LinkRawDataResultDto;
 import com.its.traf.dto.its.TbClctSystStupDto;
 import com.its.traf.service.its.TbClctSystStupService;
 import com.its.traf.service.its.TrafPrcsTime;
-import com.its.traf.service.its.dao.LinkRawDataDaoService;
 import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -26,9 +25,8 @@ import java.util.concurrent.TimeUnit;
 public class LinkRawDataCollectService {
 
     private final TrafPrcsTime prcsTime;
-    private final CollectSystDao collectSystDao;
+    private final ProcessingConfig processingConfig;
     private final TbClctSystStupService clctSystStupService;
-    private final LinkRawDataDaoService linkRawDataDaoService;
 
     private ConcurrentHashMap<String, LinkRawDataResultDto> mapData = new ConcurrentHashMap<>();
 
@@ -59,26 +57,27 @@ public class LinkRawDataCollectService {
             return 0;
         }
 
-        LinkRawDataQryDto queryCond = new LinkRawDataQryDto();
-        queryCond.setCURR_DT(this.prcsTime.getCurrFiveMin());
-        queryCond.setBASE_DT(this.prcsTime.getPrcsFiveMin());
-        queryCond.setFROM_DT(this.prcsTime.getPrcsFiveMinFrom());
-        queryCond.setTO_DT(this.prcsTime.getPrcsFiveMinTo());
-        queryCond.setFROM_15M(this.prcsTime.getStat15MinFrom());
-        queryCond.setFROM_HOUR(this.prcsTime.getStatHourFrom());
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("CURR_DT",      this.prcsTime.getCurrFiveMin());
+        params.put("BASE_DT",      this.prcsTime.getPrcsFiveMin());
+        params.put("FROM_DT",      this.prcsTime.getPrcsFiveMinFrom());
+        params.put("TO_DT",        this.prcsTime.getPrcsFiveMinTo());
+        params.put("FROM_15M",     this.prcsTime.getStat15MinFrom());
+        params.put("FROM_HOUR",    this.prcsTime.getStatHourFrom());
+        params.put("DSRC_MIN_VOL", this.processingConfig.getDsrcMinVol());
 
         ExecutorService executorService = Executors.newFixedThreadPool(clctSystCnt);
         for (String clctSyst: this.clctSystStupService.keySet()) {
-            executorService.execute(new LinkRawDataCollectWorker(clctSyst, queryCond, this.mapData, this.linkRawDataDaoService));
+            executorService.execute(new LinkRawDataCollectWorker(clctSyst, params, this.mapData));
         }
 
-        executorService.shutdown();
         try {
-            if (!executorService.awaitTermination(5, TimeUnit.SECONDS)) {
+            executorService.shutdown();
+            if (!executorService.awaitTermination(20, TimeUnit.SECONDS)) {
                 executorService.shutdownNow();
             }
         } catch (InterruptedException e) {
-            log.error("LinkRawDataCollectWorker InterruptedException, {}", e.getMessage());
+            log.error("LinkRawDataCollectService: LinkRawDataCollectWorker InterruptedException, {}", e.getMessage());
             executorService.shutdownNow();
         }
 
@@ -90,9 +89,8 @@ public class LinkRawDataCollectService {
             if (collect != null) {
                 systStup.setClctNum(collect.getLists().size());
             }
-            log.info("[COLLECTING] collect: [{}], [{}] EA.", clctSyst, systStup.getClctNum());
+            log.info("LinkRawDataCollectService:collect: [{}], [{}] EA.", clctSyst, systStup.getClctNum());
         }
-
         return this.mapData.size();
     }
 

+ 0 - 46
src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectThread.java

@@ -1,46 +0,0 @@
-package com.its.traf.service.its.collect;
-
-import com.its.traf.dao.mapper.its.collect.CollectSystDao;
-import com.its.traf.dto.its.LinkRawDataDto;
-import com.its.traf.dto.its.LinkRawDataQryDto;
-import com.its.traf.dto.its.LinkRawDataResultDto;
-
-import java.util.List;
-
-public class LinkRawDataCollectThread extends Thread implements AbstractLinkRawDataCollectThread {
-
-    private LinkRawDataCollectService linkRawDataCollectService;
-    private CollectSystDao collectSystDao;
-    private String CLCT_SYST_CD;
-    private LinkRawDataQryDto queryCond;
-    private int count;
-
-    public LinkRawDataCollectThread(LinkRawDataCollectService linkRawDataCollectService, CollectSystDao collectSystDao, String CLCT_SYST_CD, LinkRawDataQryDto queryCond) {
-        this.linkRawDataCollectService = linkRawDataCollectService;
-        this.collectSystDao = collectSystDao;
-        this.CLCT_SYST_CD = CLCT_SYST_CD;
-        this.queryCond = queryCond;
-    }
-
-    public void run() {
-        List<LinkRawDataDto> rawTrafficList = this.collectSystDao.collect(this.CLCT_SYST_CD, this.queryCond);
-        if (rawTrafficList == null) {
-            this.count = 0;
-        }
-        else {
-            this.count = rawTrafficList.size();
-            LinkRawDataResultDto rawTrafficResult = LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(rawTrafficList).build();
-            this.linkRawDataCollectService.getMapData().put(this.CLCT_SYST_CD, rawTrafficResult);
-        }
-    }
-
-    @Override
-    public int count() {
-        return this.count;
-    }
-
-    @Override
-    public String getCode() {
-        return this.CLCT_SYST_CD;
-    }
-}

+ 15 - 4
src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectWorker.java

@@ -1,13 +1,15 @@
 package com.its.traf.service.its.collect;
 
+import com.its.traf.config.AppUtils;
 import com.its.traf.dto.its.LinkRawDataDto;
-import com.its.traf.dto.its.LinkRawDataQryDto;
 import com.its.traf.dto.its.LinkRawDataResultDto;
 import com.its.traf.service.its.dao.LinkRawDataDaoService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.session.SqlSessionFactory;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -16,15 +18,23 @@ import java.util.concurrent.ConcurrentHashMap;
 public class LinkRawDataCollectWorker implements Runnable {
 
     private final String CLCT_SYST_CD;
-    private final LinkRawDataQryDto linkRawDataQryDto;
+    private final HashMap<String, Object> params;
     private final ConcurrentHashMap<String, LinkRawDataResultDto> mapData;
-    private final LinkRawDataDaoService linkRawDataDaoService;
+    //private final LinkRawDataDaoService linkRawDataDaoService;
 
     @Override
     public void run() {
+        SqlSessionFactory sqlSessionFactory = null;
+        String beanName = this.CLCT_SYST_CD.toLowerCase();
+        try {
+            sqlSessionFactory = (SqlSessionFactory)AppUtils.getBean(beanName);
+        } catch (Exception e) {
+            sqlSessionFactory = (SqlSessionFactory)AppUtils.getBean(SqlSessionFactory.class);
+        }
         try {
             Thread.sleep(10);
-            List<LinkRawDataDto> result = linkRawDataDaoService.collect(this.CLCT_SYST_CD, this.linkRawDataQryDto);
+            LinkRawDataDaoService linkRawDataDaoService = new LinkRawDataDaoService(sqlSessionFactory);
+            List<LinkRawDataDto> result = linkRawDataDaoService.collect(this.CLCT_SYST_CD, this.params);
             if (result == null) {
                 this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(new ArrayList<>()).build());
             }
@@ -37,4 +47,5 @@ public class LinkRawDataCollectWorker implements Runnable {
             this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(new ArrayList<>()).build());
         }
     }
+
 }

+ 58 - 0
src/main/java/com/its/traf/service/its/dao/ExternalLinkDaoService.java

@@ -0,0 +1,58 @@
+package com.its.traf.service.its.dao;
+
+import com.its.traf.dao.mapper.its.ExternalLinkMapper;
+import com.its.traf.dao.mapper.its.LinkMapper;
+import com.its.traf.dto.its.TbEIOF0101Dto;
+import com.its.traf.process.DbmsDataType;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StopWatch;
+
+@Slf4j
+@Service
+public class ExternalLinkDaoService extends BatchDaoService implements AbstractDaoService {
+
+    private final ExternalLinkMapper mapper;
+
+    public ExternalLinkDaoService(SqlSessionFactory sqlSessionFactory, ExternalLinkMapper mapper) {
+        super(sqlSessionFactory);
+        this.mapper = mapper;
+        this.serviceName = this.getClass().getName();
+    }
+
+    /**
+     * 단일 SQL 수행
+     * @param type
+     * @param obj
+     */
+    @Override
+    public int directQueryFunc(DbmsDataType type, Object obj) {
+        String proceedName = String.format("%45s", this.getClass().getSimpleName());
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start(type.name());
+
+        int result;
+        if (type == DbmsDataType.TB_EIOF0101_CREATE) {
+            // 경기도 연계
+            result = this.mapper.createEIOF0101((TbEIOF0101Dto)obj);
+        }
+        else {
+            log.error("[DIRECT-SQL] {}: ..END. [{}], Unknown SQL Type.", proceedName, type.name());
+            result = 0;
+        }
+        stopWatch.stop();
+        log.info("[DIRECT-SQL] {}: ..END. [{}], {} EA. {} ms.", proceedName, type.name(), result, stopWatch.getTotalTimeMillis());
+        return result;
+    }
+
+    @Override
+    public int batchInsertFunc(DbmsDataType type, Object obj) {
+        return 0;
+    }
+
+    @Override
+    public int batchUpdateFunc(DbmsDataType type, Object obj) {
+        return 0;
+    }
+}

+ 16 - 5
src/main/java/com/its/traf/service/its/dao/LinkRawDataDaoService.java

@@ -2,7 +2,7 @@ package com.its.traf.service.its.dao;
 
 import com.its.traf.aspectj.CollectElapsed;
 import com.its.traf.dto.its.LinkRawDataDto;
-import com.its.traf.dto.its.LinkRawDataQryDto;
+import com.its.traf.service.AbstractLinkRawDataDaoService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.session.ExecutorType;
@@ -10,28 +10,39 @@ import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.stereotype.Repository;
 
+import java.util.HashMap;
 import java.util.List;
 
 @Slf4j
 @RequiredArgsConstructor
 @Repository
-public class LinkRawDataDaoService {
+public class LinkRawDataDaoService implements AbstractLinkRawDataDaoService {
 
     private final SqlSessionFactory sqlSessionFactory;
     private int count;
+    private String clctSystCd;
 
+    @Override
     public int count() {
         return this.count;
     }
 
+    @Override
+    public String getClctSystCd() {
+        return this.clctSystCd;
+    }
+
     @CollectElapsed
-    public List<LinkRawDataDto> collect(String CLCT_SYST_CD, LinkRawDataQryDto qryDt) {
+    public List<LinkRawDataDto> collect(String CLCT_SYST_CD, HashMap<String, Object> params) {
+        this.clctSystCd = CLCT_SYST_CD;
         String queryId = "selectLinkRawData" + CLCT_SYST_CD;
-        List<LinkRawDataDto> result;
+        List<LinkRawDataDto> result = null;
         SqlSession sqlSession = null;
         try {
             sqlSession = this.sqlSessionFactory.openSession(ExecutorType.SIMPLE, false);
-            result = sqlSession.selectList(queryId, qryDt);
+            result = sqlSession.selectList(queryId, params);
+        } catch (Exception e) {
+            log.error("LinkRawDataDaoService:collect, Exception: {}, {}", this.clctSystCd, e.getMessage());
         }
         finally {
             if (sqlSession != null) {

+ 8 - 8
src/main/java/com/its/traf/xnetudp/UdpServerCenterComm.java

@@ -1,7 +1,7 @@
 package com.its.traf.xnetudp;
 
 import com.its.traf.config.AppUtils;
-import com.its.traf.config.ProcessingConfig;
+import com.its.traf.config.CenterCommConfig;
 import com.its.traf.xnetudp.codec.CenterCommServerDecoder;
 import com.its.traf.xnetudp.handler.CenterCommServerPacketHandler;
 import io.netty.bootstrap.Bootstrap;
@@ -21,11 +21,11 @@ import javax.annotation.PostConstruct;
 @Component
 public class UdpServerCenterComm extends UdpServerAbstract {
 
-    private ProcessingConfig serverConfig;
+    private CenterCommConfig centerCommConfig;
 
     @PostConstruct
     private void init() {
-        this.serverConfig = (ProcessingConfig) AppUtils.getBean(ProcessingConfig.class);
+        this.centerCommConfig = (CenterCommConfig) AppUtils.getBean(CenterCommConfig.class);
     }
     public void run() {
         log.info("UdpServerCenterComm.init: Start.");
@@ -54,16 +54,16 @@ public class UdpServerCenterComm extends UdpServerAbstract {
 
         log.info("===============================================================");
         log.info("=  UDP Center Communication Server Start.......................");
-        log.info("=  bindAddress: {}", serverConfig.getCenterBindingAddr());
-        log.info("=     bindPort: {}", serverConfig.getCenterBindingPort());
+        log.info("=  bindAddress: {}", centerCommConfig.getBindingAddr());
+        log.info("=     bindPort: {}", centerCommConfig.getListenPort());
         log.info("===============================================================");
 
         try {
-            if (this.serverConfig.getCenterBindingAddr().equals("0.0.0.0")) {
-                this.bootstrap.bind(this.serverConfig.getCenterBindingPort());
+            if (this.centerCommConfig.getBindingAddr().equals("0.0.0.0")) {
+                this.bootstrap.bind(this.centerCommConfig.getListenPort());
             }
             else {
-                this.bootstrap.bind(this.serverConfig.getCenterBindingAddr(), serverConfig.getCenterBindingPort());
+                this.bootstrap.bind(this.centerCommConfig.getBindingAddr(), centerCommConfig.getListenPort());
             }
         }
         catch (Exception e) {

+ 2 - 2
src/main/java/com/its/traf/xnetudp/codec/CenterCommClientEncoder.java

@@ -2,7 +2,7 @@ package com.its.traf.xnetudp.codec;
 
 import com.its.traf.config.AppUtils;
 import com.its.app.utils.SysUtils;
-import com.its.traf.config.ProcessingConfig;
+import com.its.traf.config.CenterCommConfig;
 import com.its.traf.service.its.UnitSystService;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandlerContext;
@@ -26,7 +26,7 @@ public class CenterCommClientEncoder extends MessageToMessageEncoder<Object> {
 	@Override
 	protected void encode(ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception {
 
-		ProcessingConfig serverConfig = (ProcessingConfig) AppUtils.getBean(ProcessingConfig.class);
+		CenterCommConfig serverConfig = (CenterCommConfig) AppUtils.getBean(CenterCommConfig.class);
 
 		Channel channel = ctx.channel();
 		if (!channel.isOpen()) {

+ 4 - 4
src/main/java/com/its/traf/xnetudp/codec/CenterCommServerDecoder.java

@@ -2,7 +2,7 @@ package com.its.traf.xnetudp.codec;
 
 import com.its.traf.config.AppUtils;
 import com.its.app.utils.SysUtils;
-import com.its.traf.config.ProcessingConfig;
+import com.its.traf.config.CenterCommConfig;
 import com.its.traf.xnetudp.protocol.CENTER_COMM_MESSAGE;
 import io.netty.buffer.ByteBuf;
 import io.netty.channel.ChannelHandlerContext;
@@ -15,10 +15,10 @@ import java.util.List;
 @Slf4j
 public class CenterCommServerDecoder extends MessageToMessageDecoder<DatagramPacket> {
 
-	private ProcessingConfig serverConfig;
+	private CenterCommConfig centerCommConfig;
 
 	public CenterCommServerDecoder() {
-		serverConfig = (ProcessingConfig) AppUtils.getBean(ProcessingConfig.class);
+		centerCommConfig = (CenterCommConfig) AppUtils.getBean(CenterCommConfig.class);
 	}
 
 	@Override
@@ -37,7 +37,7 @@ public class CenterCommServerDecoder extends MessageToMessageDecoder<DatagramPac
 		byte[] buffer = new byte[recvBytes];
 		buf.getBytes(buf.readerIndex(), buffer);
 
-		if (this.serverConfig.isCenterDump()) {
+		if (this.centerCommConfig.isCenterDump()) {
 			log.info("RECV DUMP: {}", SysUtils.byteArrayToHex(buffer));
 		}
 

+ 46 - 0
src/main/resources/application-dev.yml

@@ -17,7 +17,53 @@ spring:
       idleTimeout: 30000
       connectTimeout: 10000
   jpa:
+    database-platform: org.hibernate.dialect.Oracle10gDialect
+    open-in-view: false
+    show-sql: false
+    hibernate:
+      ddl-auto: none
+    properties:
+      hibernate:
+        default_batch_fetch_size: 1000
+        format_sql: true
+        use_sql_columns: true
+        hbm2ddl.auto: validate
+        implicit_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
+        physical_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
+    output:
+      ansi:
+        enabled: always
+
+  utis-datasource:
+    hikari:
+      driver-class-name: oracle.jdbc.OracleDriver
+      jdbc-url: jdbc:oracle:thin:@115.91.94.42:1521:HANTE
+      username: rota
+      password: rota
+      connection-test-query: SELECT 1 FROM DUAL
+      minimumIdle: 3
+      maximumIdle: 10
+      maximumPoolSize: 20
+      idleTimeout: 30000
+      connectTimeout: 10000
+  utis-jpa:
     database-platform: org.hibernate.dialect.Oracle10gDialect
     properties:
       hibernate:
         dialect: org.hibernate.dialect.Oracle10gDialect
+
+logging:
+  level:
+    org.hibernate.SQL: INFO
+    org:
+      springframework:
+        #security: DEBUG
+        jdbc:
+          core:
+            JdbcTemplate: ERROR
+            StatementCreatorUtils: ERROR
+      hibernate:
+        type:
+          descriptor:
+            sql:
+              BasicBinder: ERROR

+ 18 - 0
src/main/resources/application-prod.yml

@@ -21,3 +21,21 @@ spring:
     properties:
       hibernate:
         dialect: org.hibernate.dialect.Oracle10gDialect
+
+  utis-datasource:
+    hikari:
+      driver-class-name: oracle.jdbc.OracleDriver
+      jdbc-url: jdbc:oracle:thin:@172.19.10.11:1521:ptatms
+      username: rota
+      password: rota
+      connection-test-query: SELECT 1 FROM DUAL
+      minimumIdle: 3
+      maximumIdle: 10
+      #maximumPoolSize: 20
+      idleTimeout: 30000
+      connectTimeout: 10000
+  utis-jpa:
+    database-platform: org.hibernate.dialect.Oracle10gDialect
+    properties:
+      hibernate:
+        dialect: org.hibernate.dialect.Oracle10gDialect

+ 20 - 25
src/main/resources/application.yml

@@ -6,30 +6,25 @@ application:
     region-code: 228
     region-name: 평택시
 
-  center-comm:
-    process-id: OPER00
-  vds-server:
-    process-id: VDS01
-  vms-server:
-    process-id: VMS01
-  dsrc-server:
-    process-id: DSRC01
-  cctv-server:
-    process-id: CTV01
-
-  job-schedule:
-    cctv-preset: true
-    base-dbms: false
-    fclt-stts: false
-    unit-stts: false
-    db-svr-stts: false
-
-  repeat-congest:
-    enabled: true
-    period-weeks: 6
-    congest-counts: 3
-    continuous-minutes: 10
-
+  processing:
+    #Audo incident detect
+    incident-enabled: true
+    incident-min-speed: 30
+    incident-average-gap: 30
+    incident-pattern-gap: 30
+    #dsrc
+    dsrc-enabled: false
+    dsrc-min-vol: 3
+    #patten update
+    pattern-update-factor: 0.2
+    #repeat congest
+    repeat-congest-enabled: true
+    repeat-congest-period-weeks: 6
+    repeat-congest-counts: 3
+    repeat-congest-continuous-minutes: 10
+    #gits external link
+    relat-org-id: 000000
+    org-code: 44146000
 
 server:
   port: 8998
@@ -63,7 +58,7 @@ spring:
   main:
     banner-mode: off
   application:
-    name: its-op-server
+    name: traf-prcs-server
   jackson:
     property-naming-strategy: LOWER_CASE
   datasource:

+ 2 - 2
src/main/resources/logback-spring.xmlxxx → src/main/resources/logback-spring.xmlx

@@ -2,9 +2,9 @@
 <configuration scan="true" scanPeriod="60 seconds">
     <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
 
-    <property name="APP_CLASS_PATH"  value="com.its.vds"/>
+    <property name="APP_CLASS_PATH"  value="com.its.traf"/>
     <property name="PROJECT_PREFIX"  value="traf"/>
-    <property name="PROJECT_NAME"    value="${PROJECT_PREFIX}-comm-server"/>
+    <property name="PROJECT_NAME"    value="${PROJECT_PREFIX}-prcs-server"/>
     <property name="ROOT_LOG_LEVEL"  value="INFO"/>
     <property name="LOG_CHARSET"     value="UTF-8" />
     <property name="LOG_PATH"        value="${user.dir}/logs/"/>

+ 66 - 0
src/main/resources/mybatis/mapper/its/ExternalLinkMapper.xml

@@ -0,0 +1,66 @@
+<?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.its.traf.dao.mapper.its.ExternalLinkMapper">
+
+    <update id="createEIOF0101" parameterType="com.its.traf.dto.its.TbEIOF0101Dto">
+    <![CDATA[
+        MERGE INTO EIOF0101 L
+            USING (SELECT #{obj.relatOrgId}  AS RELAT_ORG_ID,
+                          Y.EXSYS_LINK_ID    AS EXSYS_LINK_ID,
+                          TO_CHAR(X.LINK_ID) AS LINK_ID,
+                          X.PRCN_DT          AS COLLE_DATE,
+                          X.SPED             AS LINK_TRVLSPD,
+                          X.TRVL_HH          AS TRVLTM_SSCNT,
+                          '1'                AS CONGESTLVL_CD,
+                          '0'                AS TFINFO_CRE_TP_CD,
+                          X.TFVL             AS TRAFFICVOL,
+                          '0'                AS DENSITY,
+                          '0'                AS QUE_LENGTH,
+                          X.OCPY_RATE        AS OCCUPRATIO,
+                          '0'                AS LINK_DELAYTIME,
+                          '1'                AS COLLE_CD,
+                          ''                 AS RECV_DATE,
+                          #{obj.orgCode}     AS ORG_CODE
+                   FROM TB_LINK_TRAF X,
+                        (SELECT TO_NUMBER(A.LINKID) AS LINK_ID,
+                                A.G_LINKID          AS EXSYS_LINK_ID
+                         FROM LINK_MAPPING A
+                         WHERE A.MAPPING_TP IN ('2', '3')
+                        ) Y
+                   WHERE 1 = 1
+                     AND X.PRCN_DT = #{obj.prcnDt}
+                     AND X.SPED > 0
+                     AND X.LINK_ID = Y.LINK_ID ) M
+            ON (L.RELAT_ORG_ID = M.RELAT_ORG_ID AND L.EXSYS_LINK_ID = M.EXSYS_LINK_ID AND L.LINK_ID = M.LINK_ID)
+            WHEN MATCHED THEN UPDATE SET
+                L.COLLE_DATE       = M.COLLE_DATE,
+                L.LINK_TRVLSPD     = M.LINK_TRVLSPD,
+                L.TRVLTM_SSCNT     = M.TRVLTM_SSCNT,
+                L.CONGESTLVL_CD    = M.CONGESTLVL_CD,
+                L.TFINFO_CRE_TP_CD = M.TFINFO_CRE_TP_CD,
+                L.TRAFFICVOL       = M.TRAFFICVOL,
+                L.DENSITY          = M.DENSITY,
+                L.QUE_LENGTH       = M.QUE_LENGTH,
+                L.OCCUPRATIO       = M.OCCUPRATIO,
+                L.LINK_DELAYTIME   = M.LINK_DELAYTIME,
+                L.COLLE_CD         = M.COLLE_CD,
+                L.RECV_DATE        = M.RECV_DATE,
+                L.ORG_CODE         = M.ORG_CODE
+            WHEN NOT MATCHED THEN
+            INSERT (
+                    RELAT_ORG_ID, EXSYS_LINK_ID, LINK_ID,
+                    COLLE_DATE, LINK_TRVLSPD, TRVLTM_SSCNT,
+                    CONGESTLVL_CD, TFINFO_CRE_TP_CD, TRAFFICVOL,
+                    DENSITY, QUE_LENGTH, OCCUPRATIO,
+                    LINK_DELAYTIME, COLLE_CD, RECV_DATE, ORG_CODE )
+                VALUES (
+                   M.RELAT_ORG_ID, M.EXSYS_LINK_ID, M.LINK_ID,
+                   M.COLLE_DATE, M.LINK_TRVLSPD, M.TRVLTM_SSCNT,
+                   M.CONGESTLVL_CD, M.TFINFO_CRE_TP_CD, M.TRAFFICVOL,
+                   M.DENSITY, M.QUE_LENGTH, M.OCCUPRATIO,
+                   M.LINK_DELAYTIME, M.COLLE_CD, M.RECV_DATE, M.ORG_CODE )
+    ]]>
+	</update>
+
+</mapper>

+ 1 - 1
src/main/resources/mybatis/mapper/its/collect/LinkRawDataDSRC01.xml

@@ -3,7 +3,7 @@
 
 <mapper namespace="mapper.its.collect.DSRC01">
 
-    <select id="selectLinkRawDataDRSC01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="com.its.traf.dto.its.LinkRawDataQryDto">
+    <select id="selectLinkRawDataDSRC01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
     <![CDATA[
         SELECT A.LINK_ID                  AS LINK_ID,
                ROUND(AVG(B.TRVL_SPED), 0) AS SPED,

+ 1 - 1
src/main/resources/mybatis/mapper/its/collect/LinkRawDataGITS01.xml

@@ -3,7 +3,7 @@
 
 <mapper namespace="mapper.its.collect.GITS01">
 
-    <select id="selectLinkRawDataGITS01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="com.its.traf.dto.its.LinkRawDataQryDto">
+    <select id="selectLinkRawDataGITS01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
     <![CDATA[
         SELECT B.LINK_ID                             AS LINK_ID,
                ROUND(AVG(NVL(A.LINK_TRVLSPD, 0)), 0) AS SPED,

+ 0 - 26
src/main/resources/mybatis/mapper/its/collect/LinkRawDataMOCT01.xml

@@ -1,26 +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="mapper.its.collect.MOCT01">
-
-    <select id="selectLinkRawDataMOCT01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="com.its.traf.dto.its.LinkRawDataQryDto">
-    <![CDATA[
-	    SELECT A.LINKID                                    AS LINK_ID,
-               ROUND(AVG(A.SPEED), 0)                      AS SPED,
-               0                                           AS TFVL,
-               0                                           AS OCPY_RATE,
-               ROUND(AVG(TRAVELTIME), 0)                   AS TRVL_HH,
-               TO_CHAR(MAX(A.REGDATE), 'YYYYMMDDHH24MISS') AS CLCT_DT,
-               COUNT(1)                                    AS CLCT_CNT
-          FROM ROTA.TRAFFIC_MOCT A
-         INNER JOIN (SELECT TO_CHAR(LINK_ID) AS LINKID
-                       FROM TB_LINK) B
-            ON A.LINKID    = B.LINKID
-           AND A.LINKLEVEL = 1
-           AND A.REGDATE  >= SYSDATE - 9/1440
-           AND A.SPEED     > 2
-         GROUP BY A.LINKID
-    ]]>
-    </select>
-
-</mapper>

+ 1 - 1
src/main/resources/mybatis/mapper/its/collect/LinkRawDataOPER01.xml

@@ -3,7 +3,7 @@
 
 <mapper namespace="mapper.its.collect.OPER01">
 
-    <select id="selectLinkRawDataOPER01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="com.its.traf.dto.its.LinkRawDataQryDto">
+    <select id="selectLinkRawDataOPER01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
     <![CDATA[
 	    SELECT B.LINK_ID                            AS LINK_ID,
                AVG(A.SPED)                          AS SPED,

+ 1 - 1
src/main/resources/mybatis/mapper/its/collect/LinkRawDataVDS01.xml

@@ -3,7 +3,7 @@
 
 <mapper namespace="mapper.its.collect.VDS01">
 
-    <select id="selectLinkRawDataVDS01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="com.its.traf.dto.its.LinkRawDataQryDto">
+    <select id="selectLinkRawDataVDS01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
     <![CDATA[
 	    SELECT LINK_ID                   AS LINK_ID,
                ROUND(AVG(SPED), 0)       AS SPED,

+ 46 - 0
src/main/resources/mybatis/mapper/utis/collect/LinkRawDataMOCT01.xml

@@ -0,0 +1,46 @@
+<?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.its.traf.dao.mapper.utis.LinkRawDataMOCT1Mapper">
+
+    <select id="selectLinkRawDataMOCT01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
+    <![CDATA[
+        SELECT A.LINKID                                    AS LINK_ID,
+               ROUND(AVG(A.SPEED), 0)                      AS SPED,
+               0                                           AS TFVL,
+               0                                           AS OCPY_RATE,
+               ROUND(AVG(TRAVELTIME), 0)                   AS TRVL_HH,
+               TO_CHAR(MAX(A.REGDATE), 'YYYYMMDDHH24MISS') AS CLCT_DT,
+               COUNT(1)                                    AS CLCT_CNT
+        FROM TRAFFIC_MOCT_NEW A
+                 INNER JOIN (SELECT TO_CHAR(LINK_ID) AS LINKID
+                             FROM TB_LINK) B
+                            ON A.LINKID    = B.LINKID
+                                AND A.LINKLEVEL = 1
+                                AND A.REGDATE  >= SYSDATE - 9/1440
+                                AND A.SPEED     > 2
+        GROUP BY A.LINKID
+        ]]>
+    </select>
+
+    <select id="selectLinkRawData" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
+    <![CDATA[
+        SELECT A.LINKID                                    AS LINK_ID,
+               ROUND(AVG(A.SPEED), 0)                      AS SPED,
+               0                                           AS TFVL,
+               0                                           AS OCPY_RATE,
+               ROUND(AVG(TRAVELTIME), 0)                   AS TRVL_HH,
+               TO_CHAR(MAX(A.REGDATE), 'YYYYMMDDHH24MISS') AS CLCT_DT,
+               COUNT(1)                                    AS CLCT_CNT
+        FROM TRAFFIC_MOCT_NEW A
+                 INNER JOIN (SELECT TO_CHAR(LINK_ID) AS LINKID
+                             FROM TB_LINK) B
+                            ON A.LINKID    = B.LINKID
+                                AND A.LINKLEVEL = 1
+                                AND A.REGDATE  >= SYSDATE - 9/1440
+                                AND A.SPEED     > 2
+        GROUP BY A.LINKID
+        ]]>
+    </select>
+
+</mapper>

+ 2 - 2
src/main/resources/mybatis/mapper/its/collect/LinkRawDataUTIS02.xml → src/main/resources/mybatis/mapper/utis/collect/LinkRawDataUTIS02.xml

@@ -3,7 +3,7 @@
 
 <mapper namespace="mapper.its.collect.UTIS02">
 
-    <select id="selectLinkRawDataUTIS02" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="com.its.traf.dto.its.LinkRawDataQryDto">
+    <select id="selectLinkRawDataUTIS02" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map">
     <![CDATA[
 	    SELECT A.LINKID                                    AS LINK_ID,
                ROUND(AVG(A.SPEED), 0)                      AS SPED,
@@ -12,7 +12,7 @@
                ROUND(AVG(TRAVELTIME), 0)                   AS TRVL_HH,
                TO_CHAR(MAX(A.REGDATE), 'YYYYMMDDHH24MISS') AS CLCT_DT,
                COUNT(1)                                    AS CLCT_CNT
-          FROM ROTA.TRAFFIC_CENTER A
+          FROM TRAFFIC_CENTER A
          INNER JOIN (SELECT TO_CHAR(LINK_ID) AS LINKID
                        FROM TB_LINK) B
             ON A.LINKID    = B.LINKID