| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package com.utic.ptis.server.controller;
- import com.utic.common.utils.TimeUtils;
- import com.utic.ptis.server.service.*;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Controller;
- import org.springframework.util.StopWatch;
- @Slf4j
- @Controller
- @RequiredArgsConstructor
- public class LinkTrafPrcsController implements AbstractProcessController {
- private final LinkTrafPrcsTime prcsTime;
- private final LinkRepositoryService repositoryService;
- private final LinkTrafDeleteService trafDeleteService;
- private final LinkTrafCollectService trafCollectService;
- private final LinkTrafFusionService trafFusionService;
- private final LinkTrafMissingService trafMissingService;
- private final LinkTrafSaveService trafSaveService;
- private String statTime;
- private String fromTime;
- private String toTime;
- public void initialize() {
- String currTime = TimeUtils.getCurrentTimeString();
- this.statTime = TimeUtils.getTime(TimeUtils.TYPE_PRCS_15MIN);
- this.fromTime = this.statTime;
- this.toTime = TimeUtils.getToTime(this.fromTime, TimeUtils.TYPE_PRCS_15MIN);
- String funcName = String.format("%45s", "LinkTrafPrcsController.initialize");
- log.info("[SCHEDULING] {}: ..05M, {}, {}, {}, {}", funcName, currTime, this.statTime, this.fromTime, this.toTime);
- /*
- * 가공에 사용되는 시각 정보를 초기화 한다.
- * 데이터 처리를 위해 현재 가공시각을 재설정한다.
- */
- this.prcsTime.init();
- this.repositoryService.getFusionInfo().init();
- log.info("[PROCESSING]Current/Current_5M/Current_5M_Prcs: {}/{}/{}", this.prcsTime.getCurrTime(), this.prcsTime.getCurrFiveMin(), this.prcsTime.getPrcsFiveMin());
- log.info("[PROCESSING] Current_5M_Prcs/Start/End: {}/{}/{}", this.prcsTime.getPrcsFiveMin(), this.prcsTime.getPrcsFiveMinFrom(), this.prcsTime.getPrcsFiveMinTo());
- log.info("[PROCESSING] Current_5M_Prcs/Week/Quarter: {}/{}/{}/{}", this.prcsTime.getPrcsFiveMin(), this.prcsTime.getPrcsDayWeek(), this.prcsTime.getPrcsDayQuater(), this.prcsTime.getPrcsDayWeekCd());
- log.info("[PROCESSING] 15M:PrcsTM/Start/End/Run: {}/{}/{}/{}", this.prcsTime.getStat15MinTime(), this.prcsTime.getStat15MinFrom(), this.prcsTime.getStat15MinTo(), this.prcsTime.isStat15Min());
- log.info("[PROCESSING] Hour:PrcsTM/Start/End/Run: {}/{}/{}/{}", this.prcsTime.getStatHourTime(), this.prcsTime.getStatHourFrom(), this.prcsTime.getStatHourTo(), this.prcsTime.isStatHour());
- log.info("[PROCESSING] Day:PrcsTM/Start/End/Run: {}/{}/{}/{}", this.prcsTime.getStatDayTime(), this.prcsTime.getStatDayFrom(), this.prcsTime.getStatDayTo(), this.prcsTime.isStatDay());
- log.info("[PROCESSING] Month:PrcsTM/Start/End/Run: {}/{}/{}/{}", this.prcsTime.getStatMonTime(), this.prcsTime.getStatMonFrom(), this.prcsTime.getStatMonTo(), this.prcsTime.isStatMon());
- log.info("[PROCESSING] Year:PrcsTM/Start/End/Run: {}/{}/{}/{}", this.prcsTime.getStatYearTime(), this.prcsTime.getStatYearFrom(), this.prcsTime.getStatYearTo(), this.prcsTime.isStatYear());
- }
- public void run() {
- if (this.prcsTime.isProcessing()) {
- log.error("Previous processing is not completed.");
- }
- StopWatch stopWatch = new StopWatch();
- stopWatch.start("LinkTrafPrcsController");
- log.info("[TRAFFIC---] LinkTrafPrcsController: START.");
- // 가공 시작
- this.prcsTime.setProcessing(true);
- // 가공처리 작업을 수행하기 위한 초기화 작업을 수행한다.
- initialize();
- // 0. 소통정보 저장할 테이블 삭제
- this.trafDeleteService.processing();
- // 1. 수집원별 링크 원시 교통정보 조회
- this.trafCollectService.processing();
- // 2. 가공방식에 따른 퓨전 소통정보 생서
- this.trafFusionService.processing();
- // 3. 결측처리
- this.trafMissingService.processing();
- // 4. 소통정보 저장 테이블 삭제 작업 완료 대기
- this.trafDeleteService.waitForComplete();
- // 5. 소통정보 저장
- this.trafSaveService.processing();
- stopWatch.stop();
- log.info("[TRAFFIC---] LinkTrafPrcsController: ..END. {} ms", stopWatch.getTotalTimeMillis());
- }
- }
|