Browse Source

dev add cross traffic

shjung 1 year ago
parent
commit
71b222fd33

+ 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", "esb01", "esb02"})
+    @Bean({"sqlSessionFactory", "oper01", "vds01", "gits01", "dsrc01", "moct01", "esb01", "esb02", "bis01", "crs01"})
     public SqlSessionFactory sqlSessionFactoryBean(
             @Autowired @Qualifier("dataSource") DataSource dataSource, ApplicationContext applicationContext) {
         log.info("mapperLocations: {}", this.mapperLocations);

+ 1 - 0
src/main/java/com/its/traf/global/eTrafPrcsJob.java

@@ -17,6 +17,7 @@ public enum eTrafPrcsJob {
     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_CRS01("소통정보수집-스마트교차로(CRS)", "INT_TRF,LINK", true),
     PRCS_LOAD_RAW_ALL("소통정보수집", "ALL", true),
 
     PRCS_LINK_TRAF("소통정보가공-LINK-TRAF", "LINK_TRAF", true),

+ 3 - 0
src/main/java/com/its/traf/service/its/collect/LinkRawDataCollectWorker.java

@@ -56,6 +56,9 @@ public class LinkRawDataCollectWorker implements Runnable {
             case "esb02":
                 jobType = eTrafPrcsJob.PRCS_LOAD_RAW_ESB02;
                 break;
+            case "crs01":
+                jobType = eTrafPrcsJob.PRCS_LOAD_RAW_CRS01;
+                break;
             default:
                 break;
         }

+ 7 - 2
src/main/java/com/its/traf/service/its/dao/LinkRawDataDaoService.java

@@ -39,8 +39,13 @@ public class LinkRawDataDaoService implements AbstractLinkRawDataDaoService {
         List<LinkRawDataDto> result = null;
         SqlSession sqlSession = null;
         try {
-            sqlSession = this.sqlSessionFactory.openSession(ExecutorType.SIMPLE, false);
-            result = sqlSession.selectList(queryId, params);
+            if (this.sqlSessionFactory != null) {
+                sqlSession = this.sqlSessionFactory.openSession(ExecutorType.SIMPLE, false);
+                result = sqlSession.selectList(queryId, params);
+            }
+            else {
+                log.error("LinkRawDataDaoService:collect, sqlSessionFactory: {} is null....", this.clctSystCd);
+            }
         } catch (Exception e) {
             log.error("LinkRawDataDaoService:collect, Exception: {}, {}", this.clctSystCd, e.getMessage());
         }

+ 37 - 0
src/main/resources/mybatis/mapper/its/collect/LinkRawDataCRS01.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.CRS01">
+
+    <select id="selectLinkRawDataCRS01" resultType="com.its.traf.dto.its.LinkRawDataDto" parameterType="java.util.Map" fetchSize="1000">
+    <![CDATA[
+        SELECT TO_NUMBER(A.IN_LINK_ID) AS LINK_ID,
+               ROUND(AVG(B.SPED), 0)   AS SPED,
+               SUM(B.TFVL)             AS TFVL,
+               0                       AS OCPY_RATE,
+               0                       AS TRVL_HH,
+               MAX(B.CLCT_DT)          AS CLCT_DT,
+               SUM(B.CLCT_CNT)         AS CLCT_CNT
+        FROM TB_SC_M_OP_INT_AVE A,
+             (SELECT INT_NO, AVE_NO,
+                     TO_CHAR(MAX(CRET_DTM), 'YYYYMMDDHH24MISS') AS CLCT_DT,
+                     ROUND(AVG(AVG_SPD), 0) AS SPED,
+                     SUM(VOL)               AS TFVL,
+                     COUNT(1)               AS CLCT_CNT
+              FROM TB_SC_L_IF_INT_TRFINFO
+              WHERE 1=1
+                AND (INT_NO, AVE_NO, CRET_DTM) IN (SELECT INT_NO, AVE_NO, MAX(CRET_DTM)
+                                                   FROM TB_SC_L_IF_INT_TRFINFO
+                                                   WHERE 1=1
+                                                     AND CRET_DTM > SYSDATE - 20/1440
+                                                   GROUP BY INT_NO, AVE_NO)
+                AND AVG_SPD > 5 AND AVG_SPD < 120
+              GROUP BY INT_NO, AVE_NO) B
+        WHERE 1=1
+          AND A.INT_NO = B.INT_NO
+          AND A.AVE_NO = B.AVE_NO
+        GROUP BY A.IN_LINK_ID
+    ]]>
+    </select>
+
+</mapper>