123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.utic.ptis.server.service;
- import com.utic.common.utils.Elapsed;
- import com.utic.ptis.server.dao.mapper.dwdb.DwdbParamMapper;
- import com.utic.ptis.server.dao.mapper.utic.UticParamMapper;
- import com.utic.ptis.server.dto.dwdb.ParamAnalysisType;
- import com.utic.ptis.server.dto.dwdb.ParamMissing;
- import com.utic.ptis.server.dto.utic.TrafficGrade;
- import com.utic.ptis.server.dto.utic.TrafficWeight;
- import com.utic.ptis.server.utils.LogUtils;
- import lombok.Getter;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import java.util.List;
- import java.util.concurrent.ConcurrentHashMap;
- @Slf4j
- @Getter
- @RequiredArgsConstructor
- @Service
- public class LinkTrafParamService implements AbstractProcessService {
- private final DwdbParamMapper dwdbParamMapper;
- private final UticParamMapper uticParamMapper;
- private final ParamAnalysisType analysisType = ParamAnalysisType.builder()
- .analysisType(ParamAnalysisType.ANALYSIS_TYPE_PRIORITY)
- .build();
- private final ParamMissing missing = ParamMissing.builder()
- .usePst(true)
- .useKnn(true)
- .usePtn(true)
- .extKnn(true)
- .missPri(true)
- .build();
- private final ConcurrentHashMap<String, TrafficGrade> trafGradeMap = new ConcurrentHashMap<>();
- private final ConcurrentHashMap<String, TrafficWeight> trafWeightMap = new ConcurrentHashMap<>();
- public int processing() {
- // log.info("[PARAM..] processing: start.");
- // Elapsed elapsed = new Elapsed();
- loadingTrafficGrade();
- loadingTrafficWeight();
- loadingTrafficMissing();
- loadingTrafficAnalysisType();
- // log.info("[PARAM..] processing: end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
- return 0;
- }
- public void loadingTrafficAnalysisType() {
- Elapsed elapsed = new Elapsed();
- try {
- ParamAnalysisType analysisType = this.dwdbParamMapper.findAnalysisType();
- this.analysisType.setParam(analysisType);
- log.info("[PARAM..] (SEL) {} [({})(0:우선순위,1:가중치)]",
- LogUtils.elapsedLog("가공방식파라미터", 1, elapsed.milliSeconds()),
- this.analysisType.getAnalysisType());
- } catch (Exception e) {
- log.error("[PARAM..] findAnalysisType: Exception: {}", e.getMessage());
- }
- }
- public void loadingTrafficMissing() {
- Elapsed elapsed = new Elapsed();
- try {
- ParamMissing missing = this.dwdbParamMapper.findMissing();
- this.missing.setParam(missing);
- log.info("[PARAM..] (SEL) {} [PST({}), Pattern({}), 우선순위({})]",
- LogUtils.elapsedLog("결측파라미터", 1, elapsed.milliSeconds()),
- this.missing.isUsePst(), this.missing.isUsePtn(), this.missing.isMissPri());
- } catch (Exception e) {
- log.error("[PARAM..] findMissing: Exception: {}", e.getMessage());
- }
- }
- public void loadingTrafficWeight() {
- Elapsed elapsed = new Elapsed();
- try {
- List<TrafficWeight> trafficWeights = this.uticParamMapper.findTrafficWeight();
- for (TrafficWeight trafficWeight : trafficWeights) {
- this.trafWeightMap.put(trafficWeight.getWeightCode(), trafficWeight);
- }
- log.info("[PARAM..] (SEL) {}", LogUtils.elapsedLog("가중치파라미터", trafficWeights.size(), elapsed.milliSeconds()));
- } catch (Exception e) {
- log.error("[PARAM..] findTrafficWeight: Exception: {}", e.getMessage());
- }
- }
- public void loadingTrafficGrade() {
- Elapsed elapsed = new Elapsed();
- try {
- List<TrafficGrade> trafficGrades = this.uticParamMapper.findTrafficGrade();
- for (TrafficGrade trafficGrade : trafficGrades) {
- this.trafGradeMap.put(trafficGrade.getRoadRank(), trafficGrade);
- }
- log.info("[PARAM..] (SEL) {}", LogUtils.elapsedLog("소통등급(TRAFFICGRADE)", trafficGrades.size(), elapsed.milliSeconds()));
- } catch (Exception e) {
- log.error("[PARAM..] findTrafficGrade: Exception: {}", e.getMessage());
- }
- }
- }
|