浏览代码

add vds dtct statistics

shjung 1 年之前
父节点
当前提交
bc6ca9eb43

+ 3 - 0
app-install/scp.txt

@@ -1,2 +1,5 @@
 scp traf-prcs-server-0.0.1.jar adits@10.10.10.22:/home/adits/app
 비번: Admin123!
+
+-- 서버파일 가지고 오기
+scp adits@10.10.10.22:/home/adits/app/*.sh .

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

@@ -2,7 +2,11 @@ package com.its.traf.controller.its;
 
 import com.its.app.utils.TimeUtils;
 import com.its.traf.define.ITS;
+import com.its.traf.global.AppRepository;
+import com.its.traf.global.eTrafStatJob;
+import com.its.traf.process.DbmsData;
 import com.its.traf.process.DbmsDataProcess;
+import com.its.traf.process.DbmsDataType;
 import com.its.traf.service.its.*;
 import com.its.traf.vo.statistics.voStatistics;
 import lombok.RequiredArgsConstructor;
@@ -59,6 +63,9 @@ public class TrafPrcs15MController implements AbstractTrafPrcsController {
         voStat.setSTAT_TO(this.toTime);
         voStat.setDAY_TYPE_CD(weekCd);
 
+        AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_VDS_DTCT_15M);
+        this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_VDS_DTCT_STAT_15M_INSERT, false, voStat, 1));
+
         stopWatch.stop();
         log.info("[TRAFFIC---]                         TrafPrcs15MController: ..END. {} ms", stopWatch.getTotalTimeMillis());
 

+ 3 - 0
src/main/java/com/its/traf/controller/its/TrafPrcsDDController.java

@@ -70,6 +70,9 @@ public class TrafPrcsDDController implements AbstractTrafPrcsController {
         AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_ROAD_DD);
         this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_ROAD_STAT_DD_CREATE, false, voStat, 1));
 
+        AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_VDS_DTCT_DD);
+        this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_VDS_DTCT_STAT_DD_CREATE, false, voStat, 1));
+
         // 돌발 구간별 일 통계
         AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_INCD_SECT_DD);
         this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_INCD_SECT_STAT_DD_CREATE, false, voStat, 1));

+ 3 - 0
src/main/java/com/its/traf/controller/its/TrafPrcsHHController.java

@@ -69,6 +69,9 @@ public class TrafPrcsHHController implements AbstractTrafPrcsController {
         AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_ROAD_HH);
         this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_ROAD_STAT_HH_CREATE, false, voStat, 1));
 
+        AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_VDS_DTCT_HH);
+        this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_VDS_DTCT_STAT_HH_CREATE, false, voStat, 1));
+
         stopWatch.stop();
         log.info("[TRAFFIC---]                          TrafPrcsHHController: ..END. {} ms", stopWatch.getTotalTimeMillis());
 

+ 3 - 0
src/main/java/com/its/traf/controller/its/TrafPrcsMNController.java

@@ -69,6 +69,9 @@ public class TrafPrcsMNController implements AbstractTrafPrcsController {
         AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_ROAD_MN);
         this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_ROAD_STAT_MN_CREATE, false, voStat, 1));
 
+        AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_VDS_DTCT_MN);
+        this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_VDS_DTCT_STAT_MN_CREATE, false, voStat, 1));
+
         // 돌발 구간별 일 통계
         AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_INCD_SECT_MN);
         this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_INCD_SECT_STAT_MN_CREATE, false, voStat, 1));

+ 3 - 0
src/main/java/com/its/traf/controller/its/TrafPrcsYYController.java

@@ -69,6 +69,9 @@ public class TrafPrcsYYController implements AbstractTrafPrcsController {
         AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_ROAD_YY);
         this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_ROAD_STAT_YY_CREATE, false, voStat, 1));
 
+        AppRepository.getInstance().startStatJob(eTrafStatJob.STAT_VDS_DTCT_YY);
+        this.dbmsDataProcess.add(new DbmsData(DbmsDataType.TB_VDS_DTCT_STAT_YY_CREATE, false, voStat, 1));
+
         stopWatch.stop();
         log.info("[TRAFFIC---]                          TrafPrcsYYController: ..END. {} ms", stopWatch.getTotalTimeMillis());
 

+ 15 - 0
src/main/java/com/its/traf/dao/mapper/its/VdsStatMapper.java

@@ -0,0 +1,15 @@
+package com.its.traf.dao.mapper.its;
+
+import com.its.traf.vo.statistics.voStatistics;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface VdsStatMapper {
+
+    int CRT_TB_VDS_DTCT_STAT_15M(@Param("obj") voStatistics obj);
+    int CRT_TB_VDS_DTCT_STAT_HH(@Param("obj") voStatistics obj);
+    int CRT_TB_VDS_DTCT_STAT_DD(@Param("obj") voStatistics obj);
+    int CRT_TB_VDS_DTCT_STAT_MN(@Param("obj") voStatistics obj);
+    int CRT_TB_VDS_DTCT_STAT_YY(@Param("obj") voStatistics obj);
+}

+ 5 - 0
src/main/java/com/its/traf/global/eTrafStatJob.java

@@ -4,22 +4,27 @@ public enum eTrafStatJob {
     STAT_LINK_15M("15분통계-LINK-15M", "LINK_STAT_15M"),
     STAT_IFSC_15M("15분통계-IFSC-15M", "IFSC_STAT_15M"),
     STAT_ROAD_15M("15분통계-ROAD-15M", "ROAD_STAT_15M"),
+    STAT_VDS_DTCT_15M("15분통계-VDS-DTCT-15M", "VDS_DTCT_STAT_15M"),
 
     STAT_LINK_HH("시간통계-LINK-HH", "LINK_STAT_HH"),
     STAT_IFSC_HH("시간통계-IFSC-HH", "IFSC_STAT_HH"),
     STAT_ROAD_HH("시간통계-ROAD-HH", "ROAD_STAT_HH"),
+    STAT_VDS_DTCT_HH("시간통계-VDS-DTCT-HH", "VDS_DTCT_STAT_HH"),
 
     STAT_LINK_DD("일 통계-LINK-DD", "LINK_STAT_DD"),
     STAT_IFSC_DD("일 통계-IFSC-DD", "IFSC_STAT_DD"),
     STAT_ROAD_DD("일 통계-ROAD-DD", "ROAD_STAT_DD"),
+    STAT_VDS_DTCT_DD("일 통계-VDS-DTCT-DD", "VDS_DTCT_STAT_DD"),
 
     STAT_LINK_MN("월 통계-LINK-MN", "LINK_STAT_MN"),
     STAT_IFSC_MN("월 통계-IFSC-MN", "IFSC_STAT_MN"),
     STAT_ROAD_MN("월 통계-ROAD-MN", "ROAD_STAT_MN"),
+    STAT_VDS_DTCT_MN("월 통계-VDS-DTCT-MN", "VDS_DTCT_STAT_MN"),
 
     STAT_LINK_YY("년 통계-LINK-YY", "LINK_STAT_YY"),
     STAT_IFSC_YY("년 통계-IFSC-YY", "IFSC_STAT_YY"),
     STAT_ROAD_YY("년 통계-ROAD-YY", "ROAD_STAT_YY"),
+    STAT_VDS_DTCT_YY("년 통계-VDS-DTCT-YY", "VDS_DTCT_STAT_YY"),
 
     PRCN_REPT_CNGS_SECT("반복정체판정", "REPT_CNGS_SECT"),
 

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

@@ -29,6 +29,7 @@ public class DbmsDataProcess {
     private final LinkDaoService linkDaoService;
     private final IfscDaoService ifscDaoService;
     private final RoadDaoService roadDaoService;
+    private final VdsStatDaoService vdsStatDaoService;
     private final VmsIfscDaoService vmsIfscDaoService;
     private final ReptCngsSectDaoService reptCngsSectDaoService;
     private final ExternalLinkDaoService externalLinkDaoService;
@@ -152,6 +153,14 @@ public class DbmsDataProcess {
                     this.roadDaoService.directQueryFunc(type, obj);
                     break;
 
+                case TB_VDS_DTCT_STAT_15M_INSERT:
+                case TB_VDS_DTCT_STAT_HH_CREATE:
+                case TB_VDS_DTCT_STAT_DD_CREATE:
+                case TB_VDS_DTCT_STAT_MN_CREATE:
+                case TB_VDS_DTCT_STAT_YY_CREATE:
+                    this.vdsStatDaoService.directQueryFunc(type, obj);
+                    break;
+
                 case TB_VMS_IFSC_TRAF_UPDATE:
                     this.vmsIfscDaoService.batchUpdateFunc(type, obj);
                     break;

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

@@ -45,6 +45,12 @@ public enum DbmsDataType {
     TB_ROAD_STAT_MN_CREATE,
     TB_ROAD_STAT_YY_CREATE,
 
+    TB_VDS_DTCT_STAT_15M_INSERT,
+    TB_VDS_DTCT_STAT_HH_CREATE,
+    TB_VDS_DTCT_STAT_DD_CREATE,
+    TB_VDS_DTCT_STAT_MN_CREATE,
+    TB_VDS_DTCT_STAT_YY_CREATE,
+
     TB_VMS_IFSC_TRAF_UPDATE,
     TB_VMS_IFSC_TRAF_HS_INSERT,
 

+ 97 - 0
src/main/java/com/its/traf/service/its/dao/VdsStatDaoService.java

@@ -0,0 +1,97 @@
+package com.its.traf.service.its.dao;
+
+import com.its.traf.dao.mapper.its.VdsStatMapper;
+import com.its.traf.global.AppRepository;
+import com.its.traf.global.eTrafStatJob;
+import com.its.traf.process.DbmsDataType;
+import com.its.traf.vo.statistics.voStatistics;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StopWatch;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Slf4j
+@Service
+@SuppressWarnings("unchecked")
+public class VdsStatDaoService extends BatchDaoService implements AbstractDaoService {
+
+    private final VdsStatMapper mapper;
+
+    public VdsStatDaoService(SqlSessionFactory sqlSessionFactory, VdsStatMapper 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;
+        switch(type) {
+            case TB_VDS_DTCT_STAT_15M_INSERT:
+                result = this.mapper.CRT_TB_VDS_DTCT_STAT_15M((voStatistics)obj);
+                AppRepository.getInstance().endStatJob(eTrafStatJob.STAT_VDS_DTCT_15M, result, true);
+                break;
+            case TB_VDS_DTCT_STAT_HH_CREATE:
+                result = this.mapper.CRT_TB_VDS_DTCT_STAT_HH((voStatistics)obj);
+                AppRepository.getInstance().endStatJob(eTrafStatJob.STAT_VDS_DTCT_HH, result, true);
+                break;
+            case TB_VDS_DTCT_STAT_DD_CREATE:
+                result = this.mapper.CRT_TB_VDS_DTCT_STAT_DD((voStatistics)obj);
+                AppRepository.getInstance().endStatJob(eTrafStatJob.STAT_VDS_DTCT_DD, result, true);
+                break;
+            case TB_VDS_DTCT_STAT_MN_CREATE:
+                result = this.mapper.CRT_TB_VDS_DTCT_STAT_MN((voStatistics)obj);
+                AppRepository.getInstance().endStatJob(eTrafStatJob.STAT_VDS_DTCT_MN, result, true);
+                break;
+            case TB_VDS_DTCT_STAT_YY_CREATE:
+                result = this.mapper.CRT_TB_VDS_DTCT_STAT_YY((voStatistics)obj);
+                AppRepository.getInstance().endStatJob(eTrafStatJob.STAT_VDS_DTCT_YY, result, true);
+                break;
+            default:
+                log.error("[DIRECT-SQL] {}: ..END. [{}], Unknown SQL Type.", proceedName, type.name());
+                result = 0;
+                break;
+        }
+        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) {
+        List<HashMap<String, Object>> lists = (List<HashMap<String, Object>>)obj;
+        String proceedName = String.format("%45s", this.getClass().getSimpleName());
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start(type.name());
+
+        int result = 0;
+        stopWatch.stop();
+        log.info("[BATCH-INST] {}: ..END. [{}], {} EA. {} ms.", proceedName, type.name(), result, stopWatch.getTotalTimeMillis());
+        return result;
+    }
+
+    @Override
+    public int batchUpdateFunc(DbmsDataType type, Object obj) {
+        List<HashMap<String, Object>> lists = (List<HashMap<String, Object>>)obj;
+        String proceedName = String.format("%45s", this.getClass().getSimpleName());
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start(type.name());
+
+        int result = 0;
+        stopWatch.stop();
+        log.info("[BATCH-UPDT] {}: ..END. [{}], {} EA. {} ms.", proceedName, type.name(), result, stopWatch.getTotalTimeMillis());
+        return result;
+    }
+}

+ 1 - 1
src/main/java/com/its/traf/service/its/prcs/TrafPrcsFusionAlgo.java

@@ -33,7 +33,7 @@ public class TrafPrcsFusionAlgo {
         obj.getFusionV().setValid(false);
 
         TbLinkParaStupDto linkParaStup = this.linkParaSetupService.get(obj.getParaId());
-        if (linkParaStup == null || linkParaStup.getClcts() == null || linkParaStup.getClcts().size() == 0) {
+        if (linkParaStup == null || linkParaStup.getClcts() == null || linkParaStup.getClcts().isEmpty()) {
             log.error("FusionAlgo.run: Not Setting Parameter: [{}]", obj.getLinkId());
             return false;
         }

+ 157 - 0
src/main/resources/mybatis/mapper/its/VdsStatMapper.xml

@@ -0,0 +1,157 @@
+<?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.VdsStatMapper">
+
+    <insert id="CRT_TB_VDS_DTCT_STAT_15M" parameterType="com.its.traf.vo.statistics.voStatistics">
+    <![CDATA[
+		INSERT INTO TB_VDS_DTCT_STAT_15M (STAT_DT,
+                                          VDS_DTCT_NMBR,
+		                                  TFVL,
+		                                  AVRG_SPED,                   
+		                                  AVRG_OCPY_RATE,              
+		                                  AVRG_LNGT,                   
+		                                  AVRG_HDWY,
+                                          AVRG_SPCE_OCPY_RATE,
+                                          AVRG_SPCE_AVRG_SPED
+		                                 )                             
+		SELECT  #{obj.STAT_DT}               AS STAT_DT,
+                VDS_DTCT_NMBR                 AS VDS_DTCT_NMBR,
+		        SUM(TFVL)                     AS TFVL,
+		        ROUND(AVG(SPED), 0)           AS AVRG_SPED,
+		        AVG(AVRG_OCPY_RATE)           AS AVRG_OCPY_RATE,
+		        AVG(AVRG_LNGT)                AS AVRG_LNGT,
+                ROUND(AVG(HDWY), 0)           AS AVRG_HDWY,
+                AVG(SPCE_OCPY_RATE)           AS AVRG_SPCE_OCPY_RATE,
+		        ROUND(AVG(SPCE_AVRG_SPED), 0) AS AVRG_SPCE_AVRG_SPED
+		  FROM TB_VDS_DTCT_CLCT
+		 WHERE CLCT_DT BETWEEN #{obj.STAT_FROM} AND #{obj.STAT_TO}
+		 GROUP BY VDS_DTCT_NMBR
+    ]]>
+    </insert>
+
+    <insert id="CRT_TB_VDS_DTCT_STAT_HH" parameterType="com.its.traf.vo.statistics.voStatistics">
+    <![CDATA[
+		INSERT INTO TB_VDS_DTCT_STAT_HH (STAT_DT,
+                                         VDS_DTCT_NMBR,
+		                                 TFVL,                              
+		                                 AVRG_SPED,                         
+		                                 AVRG_OCPY_RATE,                    
+		                                 AVRG_LNGT,                         
+		                                 AVRG_HDWY,
+                                         AVRG_SPCE_OCPY_RATE,
+                                         AVRG_SPCE_AVRG_SPED
+		                                )                                   
+		SELECT  #{obj.STAT_DT}                    AS STAT_DT,
+                VDS_DTCT_NMBR                      AS VDS_DTCT_NMBR,
+		        SUM(TFVL)                          AS TFVL,                 
+		        ROUND(AVG(AVRG_SPED), 0)           AS AVRG_SPED,            
+		        AVG(AVRG_OCPY_RATE)                AS AVRG_OCPY_RATE,
+                AVG(AVRG_LNGT)                     AS AVRG_LNGT,
+                ROUND(AVG(AVRG_HDWY), 0)           AS AVRG_HDWY,
+                AVG(AVRG_SPCE_OCPY_RATE)           AS AVRG_SPCE_OCPY_RATE,
+		        ROUND(AVG(AVRG_SPCE_AVRG_SPED), 0) AS AVRG_SPCE_AVRG_SPED
+		  FROM TB_VDS_DTCT_STAT_15M
+		 WHERE STAT_DT BETWEEN #{obj.STAT_FROM} AND #{obj.STAT_TO}                              
+		 GROUP BY VDS_DTCT_NMBR
+    ]]>
+    </insert>
+
+    <insert id="CRT_TB_VDS_DTCT_STAT_DD" parameterType="com.its.traf.vo.statistics.voStatistics">
+    <![CDATA[
+		INSERT INTO TB_VDS_DTCT_STAT_DD (STAT_DT,
+                                         VDS_DTCT_NMBR,
+		                                 TFVL,                              
+		                                 AVRG_SPED,                         
+		                                 AVRG_OCPY_RATE,                    
+		                                 AVRG_LNGT,
+                                         AVRG_HDWY,
+                                         AVRG_SPCE_OCPY_RATE,
+                                         AVRG_SPCE_AVRG_SPED
+		                                )                                   
+		SELECT  #{obj.STAT_DT}                    AS STAT_DT,
+                VDS_DTCT_NMBR                      AS VDS_DTCT_NMBR,
+		        SUM(TFVL)                          AS TFVL,                 
+		        ROUND(AVG(AVRG_SPED), 0)           AS AVRG_SPED,            
+		        AVG(AVRG_OCPY_RATE)                AS AVRG_OCPY_RATE,       
+		        AVG(AVRG_LNGT)                     AS AVRG_LNGT,
+                ROUND(AVG(AVRG_HDWY), 0)           AS AVRG_HDWY,
+                AVG(AVRG_SPCE_OCPY_RATE)           AS AVRG_SPCE_OCPY_RATE,
+                ROUND(AVG(AVRG_SPCE_AVRG_SPED), 0) AS AVRG_SPCE_AVRG_SPED
+		  FROM TB_VDS_DTCT_STAT_HH                                          
+		 WHERE STAT_DT BETWEEN #{obj.STAT_FROM} AND #{obj.STAT_TO}                               
+		 GROUP BY VDS_DTCT_NMBR
+    ]]>
+    </insert>
+
+    <update id="CRT_TB_VDS_DTCT_STAT_MN" parameterType="com.its.traf.vo.statistics.voStatistics">
+    <![CDATA[
+		MERGE INTO TB_VDS_DTCT_STAT_MN L                                    
+		USING (                                                             
+		SELECT  #{obj.STAT_DT}                    AS STAT_DT,
+                VDS_DTCT_NMBR                      AS VDS_DTCT_NMBR,
+		        SUM(TFVL)                          AS TFVL,                 
+		        ROUND(AVG(AVRG_SPED), 0)           AS AVRG_SPED,            
+		        AVG(AVRG_OCPY_RATE)                AS AVRG_OCPY_RATE,       
+		        AVG(AVRG_LNGT)                     AS AVRG_LNGT,
+                ROUND(AVG(AVRG_HDWY), 0)           AS AVRG_HDWY,
+                AVG(AVRG_SPCE_OCPY_RATE)           AS AVRG_SPCE_OCPY_RATE,
+                ROUND(AVG(AVRG_SPCE_AVRG_SPED), 0) AS AVRG_SPCE_AVRG_SPED
+		  FROM TB_VDS_DTCT_STAT_DD                                          
+		 WHERE STAT_DT BETWEEN #{obj.STAT_FROM} AND #{obj.STAT_TO}                                
+		 GROUP BY VDS_DTCT_NMBR ) M
+		ON (L.STAT_DT        = M.STAT_DT
+		AND L.VDS_DTCT_NMBR  = M.VDS_DTCT_NMBR)
+		WHEN MATCHED THEN UPDATE SET
+               L.TFVL                = M.TFVL,
+		       L.AVRG_SPED           = M.AVRG_SPED,                         
+		       L.AVRG_OCPY_RATE      = M.AVRG_OCPY_RATE,                    
+		       L.AVRG_LNGT           = M.AVRG_LNGT,
+               L.AVRG_HDWY           = M.AVRG_HDWY,
+               L.AVRG_SPCE_OCPY_RATE = M.AVRG_SPCE_OCPY_RATE,
+		       L.AVRG_SPCE_AVRG_SPED = M.AVRG_SPCE_AVRG_SPED
+		WHEN NOT MATCHED THEN
+		INSERT(L.STAT_DT, L.VDS_DTCT_NMBR, L.TFVL, L.AVRG_SPED,
+		       L.AVRG_OCPY_RATE, L.AVRG_LNGT, L.AVRG_HDWY, L.AVRG_SPCE_OCPY_RATE, L.AVRG_SPCE_AVRG_SPED )
+		VALUES(M.STAT_DT, M.VDS_DTCT_NMBR, M.TFVL, M.AVRG_SPED,
+		       M.AVRG_OCPY_RATE, M.AVRG_LNGT, M.AVRG_HDWY, M.AVRG_SPCE_OCPY_RATE, M.AVRG_SPCE_AVRG_SPED )
+    ]]>
+    </update>
+
+    <update id="CRT_TB_VDS_DTCT_STAT_YY" parameterType="com.its.traf.vo.statistics.voStatistics">
+    <![CDATA[
+		MERGE INTO TB_VDS_DTCT_STAT_YY L
+		USING (
+		SELECT  #{obj.STAT_DT}                    AS STAT_DT,
+		        VDS_DTCT_NMBR                      AS VDS_DTCT_NMBR,
+		        SUM(TFVL)                          AS TFVL,
+		        ROUND(AVG(AVRG_SPED), 0)           AS AVRG_SPED,
+		        AVG(AVRG_OCPY_RATE)                AS AVRG_OCPY_RATE,
+		        AVG(AVRG_LNGT)                     AS AVRG_LNGT,
+		        ROUND(AVG(AVRG_HDWY), 0)           AS AVRG_HDWY,
+		        AVG(AVRG_SPCE_OCPY_RATE)           AS AVRG_SPCE_OCPY_RATE,
+		        ROUND(AVG(AVRG_SPCE_AVRG_SPED), 0) AS AVRG_SPCE_AVRG_SPED
+		  FROM TB_VDS_DTCT_STAT_MN
+		 WHERE STAT_DT BETWEEN #{obj.STAT_FROM} AND #{obj.STAT_TO}
+		 GROUP BY VDS_DTCT_NMBR ) M
+		ON (L.STAT_DT       = M.STAT_DT
+		AND L.VDS_DTCT_NMBR = M.VDS_DTCT_NMBR)
+		WHEN MATCHED THEN UPDATE SET
+		       L.TFVL                = M.TFVL,
+		       L.AVRG_SPED           = M.AVRG_SPED,
+		       L.AVRG_OCPY_RATE      = M.AVRG_OCPY_RATE,
+		       L.AVRG_LNGT           = M.AVRG_LNGT,
+		       L.AVRG_HDWY           = M.AVRG_HDWY,
+		       L.AVRG_SPCE_OCPY_RATE = M.AVRG_SPCE_OCPY_RATE,
+		       L.AVRG_SPCE_AVRG_SPED = M.AVRG_SPCE_AVRG_SPED
+		WHEN NOT MATCHED THEN
+		INSERT(L.STAT_DT, L.VDS_DTCT_NMBR, L.TFVL, L.AVRG_SPED,
+		       L.AVRG_OCPY_RATE, L.AVRG_LNGT, L.AVRG_HDWY,
+		       L.AVRG_SPCE_OCPY_RATE, L.AVRG_SPCE_AVRG_SPED )
+		VALUES(M.STAT_DT, M.VDS_DTCT_NMBR, M.TFVL, M.AVRG_SPED,
+		       M.AVRG_OCPY_RATE, M.AVRG_LNGT, M.AVRG_HDWY,
+		       M.AVRG_SPCE_OCPY_RATE, M.AVRG_SPCE_AVRG_SPED )
+    ]]>
+    </update>
+
+</mapper>

+ 3 - 0
파일서버업로드.txt

@@ -1,2 +1,5 @@
 scp traf-prcs-server-0.0.1.jar adits@10.10.10.22:/home/adits/app
 비번: Admin123!
+
+-- 서버파일 가지고 오기
+scp adits@10.10.10.22:/home/adits/app/*.sh .