shjung il y a 1 an
Parent
commit
f6d38e6967

+ 1 - 0
conf/traf-prcs-server.pid

@@ -0,0 +1 @@
+44540

+ 1 - 1
src/main/java/com/its/traf/config/DatabaseConfig.java

@@ -53,7 +53,7 @@ public class DatabaseConfig {
     }
 
     @Primary
-    @Bean({"sqlSessionFactory", "oper01", "vds01", "gits01", "dsrc01", "moct01"})
+    @Bean({"sqlSessionFactory", "oper01", "vds01", "gits01", "dsrc01", "moct01", "esb01", "esb02"})
     public SqlSessionFactory sqlSessionFactoryBean(
             @Autowired @Qualifier("dataSource") DataSource dataSource, ApplicationContext applicationContext) {
         log.info("mapperLocations: {}", this.mapperLocations);

+ 1 - 0
src/main/java/com/its/traf/dto/its/LinkRawDataResultDto.java

@@ -13,5 +13,6 @@ import java.util.List;
 @Builder
 public class LinkRawDataResultDto {
     private String CLCT_SYST_CD;
+    private long jobElapsed;
     private List<LinkRawDataDto> lists;
 }

+ 3 - 1
src/main/java/com/its/traf/global/AppRepository.java

@@ -34,7 +34,9 @@ public class AppRepository {
     public void initMap() {
 
         for (eTrafPrcsJob prcsJob : eTrafPrcsJob.values()) {
-            this.prcsMap.put(prcsJob.getValue(), new TrafJobVo(prcsJob.getValue(), prcsJob.getName(), prcsJob.getDesc()));
+            if (prcsJob.isUsed()) {
+                this.prcsMap.put(prcsJob.getValue(), new TrafJobVo(prcsJob.getValue(), prcsJob.getName(), prcsJob.getDesc()));
+            }
         }
 
         for (eTrafStatJob statJob : eTrafStatJob.values()) {

+ 39 - 32
src/main/java/com/its/traf/global/eTrafPrcsJob.java

@@ -1,44 +1,48 @@
 package com.its.traf.global;
 
 public enum eTrafPrcsJob {
-    PRCS_05M_ALL("교통정보가공", "ALL"),
-
-    LOAD_PARAMETER("기초정보로딩-파리미터", "CLCT_SYST_STUP,HLDY_INFR,SECT_GRAD,VMS_IFSC_CMTR_GRAD,LINK_PARA_STUP"),
-    LOAD_BASEDATA("기초정보로딩-기본정보", "LINK,IFSC,ROAD,VMS_IFSC,EQTY_SECT,INCD_RSTR_SECT"),
-    LOAD_PATTERN("기초정보로딩-패턴정보", "LINK05,IFSC05,ROAD05,LINK15,IFSC15,ROAD15"),
-    LOAD_ALL("기초정보로딩", "ALL"),
-
-    PRCS_LOAD_INCD("소통정보수집-돌발", "INCD_OCRR,INCD_RSTR_SECT"),
-    PRCS_LOAD_RAW_OPER("소통정보수집-운영자", "LINK_SYOP_TRAF,IFSC_RLTN_LINK"),
-    PRCS_LOAD_RAW_VDS("소통정보수집-VDS", "VDS_DTCT_CLCT,VDS_DTCT_RLTN_LINK,VDS_DTCT"),
-    PRCS_LOAD_RAW_DSRC("소통정보수집-DSRC", "RSE_SECT_RLTN_LINK,RSE_SECT_TRAF"),
-    PRCS_LOAD_RAW_MOCT("소통정보수집-민간정보연계", "TRAFFIC_MOCT,LINK"),
-    PRCS_LOAD_RAW_GITS("소통정보수집-경기도연계", "EI_LINK_CUR,LINK"),
-    PRCS_LOAD_RAW_ALL("소통정보수집", "ALL"),
-
-    PRCS_LINK_TRAF("소통정보가공-LINK-TRAF", "LINK_TRAF"),
-    PRCS_LINK_TRAF_HS("소통정보가공-LINK-TRAF-HS", "LINK_TRAF_HS"),
-    PRCS_IFSC_TRAF("소통정보가공-IFSC-TRAF", "IFSC_TRAF"),
-    PRCS_IFSC_TRAF_HS("소통정보가공-IFSC-TRAF-HS", "IFSC_TRAF_HS"),
-    PRCS_ROAD_TRAF("소통정보가공-ROAD-TRAF", "ROAD_TRAF"),
-    PRCS_ROAD_TRAF_HS("소통정보가공-ROAD-TRAF-HS", "ROAD_TRAF_HS"),
-    PRCS_VMS_TRAF("소통정보가공-VMS-TRAF", "VMS_TRAF"),
-    PRCS_VMS_TRAF_HS("소통정보가공-VMS-TRAF-HS", "VMS_TRAF_HS"),
-
-    PRCS_PTRN_LINK_05M("패턴정보생성-LINK-05M", "LINK_PTRN_5M"),
-    PRCS_PTRN_IFSC_05M("패턴정보생성-IFSC-05M", "IFSC_PTRN_5M"),
-    PRCS_PTRN_ROAD_05M("패턴정보생성-ROAD-05M", "ROAD_PTRN_5M"),
-
-    PRCS_PTRN_LINK_15M("패턴정보생성-LINK-15M", "LINK_PTRN_15M"),
-    PRCS_PTRN_IFSC_15M("패턴정보생성-IFSC-15M", "IFSC_PTRN_15M"),
-    PRCS_PTRN_ROAD_15M("패턴정보생성-ROAD-15M", "ROAD_PTRN_15M");
+    PRCS_05M_ALL("교통정보가공", "ALL", true),
+
+    LOAD_PARAMETER("기초정보로딩-파리미터", "CLCT_SYST_STUP,HLDY_INFR,SECT_GRAD,VMS_IFSC_CMTR_GRAD,LINK_PARA_STUP", true),
+    LOAD_BASEDATA("기초정보로딩-기본정보", "LINK,IFSC,ROAD,VMS_IFSC,EQTY_SECT,INCD_RSTR_SECT", true),
+    LOAD_PATTERN("기초정보로딩-패턴정보", "LINK05,IFSC05,ROAD05,LINK15,IFSC15,ROAD15", true),
+    LOAD_ALL("기초정보로딩", "ALL", true),
+
+    PRCS_LOAD_INCD("소통정보수집-돌발", "INCD_OCRR,INCD_RSTR_SECT", true),
+    PRCS_LOAD_RAW_OPER("소통정보수집-운영자", "LINK_SYOP_TRAF,IFSC_RLTN_LINK", true),
+    PRCS_LOAD_RAW_VDS("소통정보수집-VDS", "VDS_DTCT_CLCT,VDS_DTCT_RLTN_LINK,VDS_DTCT", true),
+    PRCS_LOAD_RAW_DSRC("소통정보수집-DSRC", "RSE_SECT_RLTN_LINK,RSE_SECT_TRAF", true),
+    PRCS_LOAD_RAW_MOCT("소통정보수집-민간정보연계", "TRAFFIC_MOCT,LINK", true),
+    PRCS_LOAD_RAW_GITS("소통정보수집-경기도연계", "EI_LINK_CUR,LINK", false),
+    PRCS_LOAD_RAW_ESB01("소통정보수집-ESB(DSRC)", "DSCL_SECTTRF,LINK", true),
+    PRCS_LOAD_RAW_ESB02("소통정보수집-ESB(VDS)", "VDSL_REV,LINK", true),
+    PRCS_LOAD_RAW_ALL("소통정보수집", "ALL", true),
+
+    PRCS_LINK_TRAF("소통정보가공-LINK-TRAF", "LINK_TRAF", true),
+    PRCS_LINK_TRAF_HS("소통정보가공-LINK-TRAF-HS", "LINK_TRAF_HS", true),
+    PRCS_IFSC_TRAF("소통정보가공-IFSC-TRAF", "IFSC_TRAF", true),
+    PRCS_IFSC_TRAF_HS("소통정보가공-IFSC-TRAF-HS", "IFSC_TRAF_HS", true),
+    PRCS_ROAD_TRAF("소통정보가공-ROAD-TRAF", "ROAD_TRAF", true),
+    PRCS_ROAD_TRAF_HS("소통정보가공-ROAD-TRAF-HS", "ROAD_TRAF_HS", true),
+    PRCS_VMS_TRAF("소통정보가공-VMS-TRAF", "VMS_TRAF", true),
+    PRCS_VMS_TRAF_HS("소통정보가공-VMS-TRAF-HS", "VMS_TRAF_HS", true),
+
+    PRCS_PTRN_LINK_05M("패턴정보생성-LINK-05M", "LINK_PTRN_5M", true),
+    PRCS_PTRN_IFSC_05M("패턴정보생성-IFSC-05M", "IFSC_PTRN_5M", true),
+    PRCS_PTRN_ROAD_05M("패턴정보생성-ROAD-05M", "ROAD_PTRN_5M", true),
+
+    PRCS_PTRN_LINK_15M("패턴정보생성-LINK-15M", "LINK_PTRN_15M", true),
+    PRCS_PTRN_IFSC_15M("패턴정보생성-IFSC-15M", "IFSC_PTRN_15M", true),
+    PRCS_PTRN_ROAD_15M("패턴정보생성-ROAD-15M", "ROAD_PTRN_15M", true);
 
     private String name;
     private String desc;
+    private boolean used;
 
-    eTrafPrcsJob(String name, String desc) {
+    eTrafPrcsJob(String name, String desc, boolean used) {
         this.name = name;
         this.desc = desc;
+        this.used = used;
     }
 
     public Integer getValue() {
@@ -50,4 +54,7 @@ public enum eTrafPrcsJob {
     public String getDesc() {
         return this.desc;
     }
+    public boolean isUsed() {
+        return this.used;
+    }
 }

+ 3 - 1
src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectService.java

@@ -86,10 +86,12 @@ public class LinkRawDataCollectService {
             TbClctSystStupDto systStup = this.clctSystStupService.get(clctSyst);
             systStup.setClctNum(0);
             LinkRawDataResultDto collect = this.mapData.get(clctSyst);
+            long jobElapsed = 0;
             if (collect != null) {
                 systStup.setClctNum(collect.getLists().size());
+                jobElapsed = collect.getJobElapsed();
             }
-            log.info("[COLLECTING]LinkRawDataCollectService:collect: [{}], [{}] EA.", clctSyst, systStup.getClctNum());
+            log.info("[COLLECTING]LinkRawDataCollectService:collect: [{}], [{}] EA. {} ms.", clctSyst, systStup.getClctNum(), jobElapsed);
         }
         return this.mapData.size();
     }

+ 30 - 18
src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectWorker.java

@@ -31,16 +31,30 @@ public class LinkRawDataCollectWorker implements Runnable {
         String beanName = this.CLCT_SYST_CD.toLowerCase();
 
         eTrafPrcsJob jobType = null;
-        if ("oper01".equals(beanName)) {
-            jobType = eTrafPrcsJob.PRCS_LOAD_RAW_OPER;
-        } else if ("vds01".equals(beanName)) {
-            jobType = eTrafPrcsJob.PRCS_LOAD_RAW_VDS;
-        } else if ("dsrc01".equals(beanName)) {
-            jobType = eTrafPrcsJob.PRCS_LOAD_RAW_DSRC;
-        } else if ("moct01".equals(beanName)) {
-            jobType = eTrafPrcsJob.PRCS_LOAD_RAW_MOCT;
-        } else if ("gits01".equals(beanName)) {
-            jobType = eTrafPrcsJob.PRCS_LOAD_RAW_GITS;
+        switch (beanName) {
+            case "oper01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_OPER;
+                break;
+            case "vds01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_VDS;
+                break;
+            case "dsrc01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_DSRC;
+                break;
+            case "moct01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_MOCT;
+                break;
+            case "gits01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_GITS;
+                break;
+            case "esb01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_ESB01;
+                break;
+            case "esb02":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_ESB02;
+                break;
+            default:
+                break;
         }
 
         StopWatch stopWatch = new StopWatch();
@@ -54,6 +68,7 @@ public class LinkRawDataCollectWorker implements Runnable {
         } catch (Exception e) {
             sqlSessionFactory = (SqlSessionFactory)AppUtils.getBean(SqlSessionFactory.class);
         }
+
         int resultCount = 0;
         try {
             Thread.sleep(10);
@@ -61,22 +76,19 @@ public class LinkRawDataCollectWorker implements Runnable {
             List<LinkRawDataDto> result = linkRawDataDaoService.collect(this.CLCT_SYST_CD, this.params);
             if (result == null) {
                 result = new ArrayList<>();
-                //this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(new ArrayList<>()).build());
-            }
-            else {
-                resultCount = result.size();
-                //this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(result).build());
             }
+            resultCount = result.size();
             this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(result).build());
-        } catch (InterruptedException e) {
-            this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(new ArrayList<>()).build());
         } catch (Exception e) {
             this.mapData.put(this.CLCT_SYST_CD, LinkRawDataResultDto.builder().CLCT_SYST_CD(this.CLCT_SYST_CD).lists(new ArrayList<>()).build());
+            log.error("LinkRawDataCollectWorker.run: {}, {}", this.CLCT_SYST_CD, e.getMessage());
         }
         if (jobType != null) {
+            long jobElapsed = stopWatch.getTotalTimeMillis();
+            this.mapData.get(this.CLCT_SYST_CD).setJobElapsed(jobElapsed);
             AppRepository.getInstance().endPrcsJob(jobType, this.mapData.get(this.CLCT_SYST_CD).getLists().size(), false);
             stopWatch.stop();
-            log.info("[COLLECTING] LinkRawDataCollectWorker:run----: [{}], [{}] EA. {} ms.", jobType.getName(), resultCount, stopWatch.getTotalTimeMillis());
+            log.info("[COLLECTING] LinkRawDataCollectWorker:run----: [{}], [{}] EA. {} ms.", jobType.getName(), resultCount, jobElapsed);
         }
     }
 

+ 37 - 0
src/main/resources/mybatis/mapper/its/collect/LinkRawDataESB01.xml

@@ -0,0 +1,37 @@
+<?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.ESB01">
+
+    <!-- ESB 연계 DSRC 구간 소통정보 -->
+    <select id="selectLinkRawDataESB01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map" fetchSize="1000">
+    <![CDATA[
+        SELECT LINK_ID                  AS LINK_ID,
+               ROUND(AVG(SPED), 0)      AS SPED,
+               SUM(TFVL)                AS TFVL,
+               ROUND(AVG(OCPY_RATE), 0) AS OCPY_RATE,
+               ROUND(AVG(TRVL_HH), 0)   AS TRVL_HH,
+               MAX(PRCN_DT)             AS CLCT_DT,
+               COUNT(1)                 AS CLCT_CNT
+        FROM (SELECT T1.DSECT_ID,
+                     TO_CHAR(ANALYSIS_DATE, 'YYYYMMDDHH24MISS') AS PRCN_DT,
+                     T2.LINK_ID,
+                     T1.AVG_SPEED AS SPED,
+                     T1.SECT_VEH_CNT AS TFVL,
+                     0 AS OCPY_RATE,
+                     T1.AVG_TRAVELTIME AS TRVL_HH
+              FROM TB_ESB_DSCL_SECTTRF T1,
+                   TB_ESB_DSCM_SECT_RLTN_LINK T2
+              WHERE 1=1
+                AND (T1.DSECT_ID, T1.ANALYSIS_DATE) IN (SELECT DSECT_ID, MAX(ANALYSIS_DATE)
+                                                        FROM TB_ESB_DSCL_SECTTRF
+                                                        WHERE ANALYSIS_DATE >= SYSDATE - 9/1440
+                                                          AND AVG_SPEED > 0
+                                                        GROUP BY DSECT_ID)
+                AND T1.DSECT_ID = T2.DSECT_ID
+             )
+        GROUP BY LINK_ID
+    ]]>
+    </select>
+
+</mapper>

+ 32 - 0
src/main/resources/mybatis/mapper/its/collect/LinkRawDataESB02.xml

@@ -0,0 +1,32 @@
+<?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.ESB02">
+
+    <select id="selectLinkRawDataESB02" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map" fetchSize="1000">
+    <![CDATA[
+        SELECT T1.LINK_ID                  AS LINK_ID,
+               ROUND(AVG(T2.SPED), 0)      AS SPED,
+               SUM(T2.TFVL)                AS TFVL,
+               ROUND(AVG(T2.OCPY_RATE), 2) AS OCPY_RATE,
+               0                           AS TRVL_HH,
+               MAX(CLCT_DT)                AS CLCT_DT,
+               SUM(CLCT_CNT)               AS CLCT_CNT
+        FROM TB_ESB_VDSM_STN_RLTN_LINK T1,
+             (SELECT STN_ID,
+                     AVG(SPD) AS SPED,
+                     SUM(VOL) AS TFVL,
+                     AVG(OCC) AS OCPY_RATE,
+                     TO_CHAR(MAX(COLLECT_DATE), 'YYYYMMDDHH24MISS') AS CLCT_DT,
+                     COUNT(1) AS CLCT_CNT
+              FROM TB_ESB_VDSL_REV
+              WHERE 1=1
+                AND COLLECT_DATE >= SYSDATE - 9/1440
+                AND SPD > 0
+              GROUP BY STN_ID) T2
+        WHERE T1.STN_ID = T2.STN_ID
+        GROUP BY T1.LINK_ID
+    ]]>
+    </select>
+
+</mapper>

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

@@ -13,12 +13,12 @@
                TO_CHAR(MAX(A.REGDATE), 'YYYYMMDDHH24MISS') AS CLCT_DT,
                COUNT(1)                                    AS CLCT_CNT
         FROM 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
+         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>