LinkTrafParamService.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.utic.ptis.server.service;
  2. import com.utic.common.utils.Elapsed;
  3. import com.utic.ptis.server.dao.mapper.dwdb.DwdbParamMapper;
  4. import com.utic.ptis.server.dao.mapper.utic.UticParamMapper;
  5. import com.utic.ptis.server.dto.dwdb.ParamAnalysisType;
  6. import com.utic.ptis.server.dto.dwdb.ParamMissing;
  7. import com.utic.ptis.server.dto.utic.TrafficGrade;
  8. import com.utic.ptis.server.dto.utic.TrafficWeight;
  9. import com.utic.ptis.server.utils.LogUtils;
  10. import lombok.Getter;
  11. import lombok.RequiredArgsConstructor;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.stereotype.Service;
  14. import java.util.List;
  15. import java.util.concurrent.ConcurrentHashMap;
  16. @Slf4j
  17. @Getter
  18. @RequiredArgsConstructor
  19. @Service
  20. public class LinkTrafParamService implements AbstractProcessService {
  21. private final DwdbParamMapper dwdbParamMapper;
  22. private final UticParamMapper uticParamMapper;
  23. private final ParamAnalysisType analysisType = ParamAnalysisType.builder()
  24. .analysisType(ParamAnalysisType.ANALYSIS_TYPE_PRIORITY)
  25. .build();
  26. private final ParamMissing missing = ParamMissing.builder()
  27. .usePst(true)
  28. .useKnn(true)
  29. .usePtn(true)
  30. .extKnn(true)
  31. .missPri(true)
  32. .build();
  33. private final ConcurrentHashMap<String, TrafficGrade> trafGradeMap = new ConcurrentHashMap<>();
  34. private final ConcurrentHashMap<String, TrafficWeight> trafWeightMap = new ConcurrentHashMap<>();
  35. public int processing() {
  36. // log.info("[PARAM..] processing: start.");
  37. // Elapsed elapsed = new Elapsed();
  38. loadingTrafficGrade();
  39. loadingTrafficWeight();
  40. loadingTrafficMissing();
  41. loadingTrafficAnalysisType();
  42. // log.info("[PARAM..] processing: end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
  43. return 0;
  44. }
  45. public void loadingTrafficAnalysisType() {
  46. Elapsed elapsed = new Elapsed();
  47. try {
  48. ParamAnalysisType analysisType = this.dwdbParamMapper.findAnalysisType();
  49. this.analysisType.setParam(analysisType);
  50. log.info("[PARAM..] (SEL) {} [({})(0:우선순위,1:가중치)]",
  51. LogUtils.elapsedLog("가공방식파라미터", 1, elapsed.milliSeconds()),
  52. this.analysisType.getAnalysisType());
  53. } catch (Exception e) {
  54. log.error("[PARAM..] findAnalysisType: Exception: {}", e.getMessage());
  55. }
  56. }
  57. public void loadingTrafficMissing() {
  58. Elapsed elapsed = new Elapsed();
  59. try {
  60. ParamMissing missing = this.dwdbParamMapper.findMissing();
  61. this.missing.setParam(missing);
  62. log.info("[PARAM..] (SEL) {} [PST({}), Pattern({}), 우선순위({})]",
  63. LogUtils.elapsedLog("결측파라미터", 1, elapsed.milliSeconds()),
  64. this.missing.isUsePst(), this.missing.isUsePtn(), this.missing.isMissPri());
  65. } catch (Exception e) {
  66. log.error("[PARAM..] findMissing: Exception: {}", e.getMessage());
  67. }
  68. }
  69. public void loadingTrafficWeight() {
  70. Elapsed elapsed = new Elapsed();
  71. try {
  72. List<TrafficWeight> trafficWeights = this.uticParamMapper.findTrafficWeight();
  73. for (TrafficWeight trafficWeight : trafficWeights) {
  74. this.trafWeightMap.put(trafficWeight.getWeightCode(), trafficWeight);
  75. }
  76. log.info("[PARAM..] (SEL) {}", LogUtils.elapsedLog("가중치파라미터", trafficWeights.size(), elapsed.milliSeconds()));
  77. } catch (Exception e) {
  78. log.error("[PARAM..] findTrafficWeight: Exception: {}", e.getMessage());
  79. }
  80. }
  81. public void loadingTrafficGrade() {
  82. Elapsed elapsed = new Elapsed();
  83. try {
  84. List<TrafficGrade> trafficGrades = this.uticParamMapper.findTrafficGrade();
  85. for (TrafficGrade trafficGrade : trafficGrades) {
  86. this.trafGradeMap.put(trafficGrade.getRoadRank(), trafficGrade);
  87. }
  88. log.info("[PARAM..] (SEL) {}", LogUtils.elapsedLog("소통등급(TRAFFICGRADE)", trafficGrades.size(), elapsed.milliSeconds()));
  89. } catch (Exception e) {
  90. log.error("[PARAM..] findTrafficGrade: Exception: {}", e.getMessage());
  91. }
  92. }
  93. }