| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- package com.its.op.global;
- import com.its.op.model.entity.database.CmmnCd;
- import com.its.op.model.entity.database.SectGradClsf;
- import com.its.op.repository.database.CmmnCdRepository;
- import com.its.op.repository.database.SectGradClsfRepository;
- import lombok.Getter;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Component;
- import javax.annotation.PostConstruct;
- import java.util.HashMap;
- import java.util.List;
- import java.util.concurrent.ConcurrentHashMap;
- @Slf4j
- @RequiredArgsConstructor
- @Getter
- @Component
- public class CodeManager {
- private final CmmnCdRepository repo;
- private final SectGradClsfRepository sectGradClsfRepository;
- private static final String defUnknownCode = "X";
- private static final String defUnknownDesc = "UNKNOWN";
- public static final String EDTN_CD = "EDI"; // 편집모드
- public static final String DAY_TYPE_CD = "DTW"; // 요일유형
- public static final String SYST_STTS_CD = "SPS"; // 프로세스 상태
- public static final String CMTR_GRAD_CD = "LTC"; // 소통등급
- public static final String PRCN_SORC = "CST"; // 가공소스
- public static final String ADJS_SORC = "MCS"; // 보정소스
- public static final String NODE_TYPE = "NDT"; // 노드유형
- public static final String ROAD_USE = "RDU"; // 도로사용여부
- public static final String ROAD_RANK = "RDR"; // 도로등급
- public static final String ROAD_TYPE = "RDT"; // 도로유형
- public static final String MULTI_LINK = "MLT"; // 중용구간
- public static final String LINK_CONNECT = "CTR"; // 연결로
- public static final String REST_VEH = "PLV"; // 통행제한차량
- public static final String SECT_GRAD_CD = "SRT"; // 구간 등급 코드
- public static final String DRCT_CD = "IFD"; // 방향 코드
- public static final String HLDY_DAY_CD = "LHT"; // 휴일유형코드
- public static final String CNCT_INTN_TYPE_CD = "COT"; // 연계기관유형코드
- public static final String CMNC_STTS_CD = "CMS"; // 통신상태코드
- public static final String MODL_STTS_CD = "MOS"; // 모듈상태
- public static final String PWER_STTS_CD = "PWS"; // 전원상태
- public static final String DOOR_STTS_CD = "CDS"; // 도어상태
- public static final String FAN_STTS_CD = "PAS"; // 팬상태
- public static final String HETR_STTS_CD = "HTS"; // 히터상태
- public static final String DTCT_TYPE_CD = "DTT"; // 검지기유형
- public static final String VMS_USAG_TYPE_CD = "VUT"; // VMS 용도 유형 코드
- public static final String VMS_TYPE_CD = "VMP"; // VMS 유형 코드
- private static final ConcurrentHashMap<String, HashMap<String, Code>> codes = new ConcurrentHashMap<>();
- @PostConstruct
- void init() {
- load();
- }
- public void load() {
- /*
- loadCode(DAY_TYPE_CD);
- loadCode(CMTR_GRAD_CD);
- loadCode(ADJS_SORC);
- loadCode(NODE_TYPE);
- loadCode(ROAD_USE);
- loadCode(ROAD_RANK);
- loadCode(ROAD_TYPE);
- loadCode(MULTI_LINK);
- loadCode(LINK_CONNECT);
- loadCode(REST_VEH);
- loadCode(DRCT_CD);
- loadCode(SECT_GRAD_CD);
- loadCode(HLDY_DAY_CD);
- */
- loadAllCode();
- //loadSectGradStup();
- log.info("=== {}", codes);
- }
- private void loadSectGradStup() {
- HashMap<String, Code> codeMap = new HashMap<>();
- List<SectGradClsf> codeList = sectGradClsfRepository.findAll();
- for (SectGradClsf cd : codeList) {
- codeMap.put(cd.getSECT_GRAD_CD(), new Code(cd.getSECT_GRAD_CD(), cd.getSECT_GRAD_NM(), cd.getSECT_GRAD_NM()));
- }
- codes.put(SECT_GRAD_CD, codeMap);
- }
- public void loadCode(String CMMN_CLSF_CD) {
- HashMap<String, Code> codeMap = new HashMap<>();
- List<CmmnCd> codeList = this.repo.findAllByCmmnClsfCd(CMMN_CLSF_CD);
- if (codeList != null) {
- for (CmmnCd cd : codeList) {
- codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
- }
- }
- codes.put(CMMN_CLSF_CD, codeMap);
- }
- public void loadAllCode() {
- List<CmmnCd> codeList = this.repo.findAll();
- for (CmmnCd cd : codeList) {
- HashMap<String, Code> codeMap = codes.get(cd.getCMMN_CLSF_CD());
- if (codeMap == null) {
- codeMap = new HashMap<>();
- codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
- codes.put(cd.getCMMN_CLSF_CD(), codeMap);
- }
- else {
- codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
- }
- }
- }
- public static String getCodeDesc(String CMMN_CLSF_CD, String CMMN_CD) {
- HashMap<String, Code> codeMap = codes.get(CMMN_CLSF_CD);
- if (codeMap != null) {
- Code code = codeMap.get(CMMN_CD);
- if (code != null) {
- return "[" + CMMN_CD + "] " + code.getDesc();
- }
- }
- return "[" + CMMN_CD + "] " + defUnknownDesc;
- }
- public static String getCodeDescShort(String CMMN_CLSF_CD, String CMMN_CD) {
- HashMap<String, Code> codeMap = codes.get(CMMN_CLSF_CD);
- if (codeMap != null) {
- Code code = codeMap.get(CMMN_CD);
- if (code != null) {
- return code.getDesc();
- }
- }
- return defUnknownDesc;
- }
- }
|