package com.its.op.global; import com.its.op.dto.its.facility.TbFcltFailOcrrTypeDto; import com.its.op.dto.its.facility.TbFcltFailTypeActDto; import com.its.op.dto.its.facility.TbFcltFailTypeDto; import com.its.op.service.its.facility.TbFcltFailOcrrTypeService; import com.its.op.service.its.facility.TbFcltFailTypeActService; import com.its.op.service.its.facility.TbFcltFailTypeService; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @Slf4j @RequiredArgsConstructor @Getter @Component public class FcltCodeManager { // 시설물 장애 발생 구분 private final TbFcltFailOcrrTypeService failOcrrTypeService; // 시설물 장애 유형 private final TbFcltFailTypeService failTypeService; // 시설물 장애 유형별 조치 private final TbFcltFailTypeActService failTypeActService; public static final String defFcltCodeUnknown = "UNKNOWN"; private static final ConcurrentHashMap codeFailOcrrType = new ConcurrentHashMap<>(); private static final ConcurrentHashMap codeFailType = new ConcurrentHashMap<>(); private static final ConcurrentHashMap codeFailTypeAct = new ConcurrentHashMap<>(); //private static final ConcurrentHashMap> codes = new ConcurrentHashMap<>(); @PostConstruct void init() { load(); } public void load() { loadAllCode(); } public void loadAllCode() { List codeList1 = this.failOcrrTypeService.findAll(); for (TbFcltFailOcrrTypeDto code : codeList1) { codeFailOcrrType.put(code.getFailOcrrCd(), code); } List codeList2 = this.failTypeService.findAll(); for (TbFcltFailTypeDto code : codeList2) { codeFailType.put(code.getFailCd(), code); } List codeList3 = this.failTypeActService.findAll(); for (TbFcltFailTypeActDto code : codeList3) { codeFailTypeAct.put(code.getFailActCd(), code); } } public static String getFailOcrrTypeName(String CODE) { TbFcltFailOcrrTypeDto code = codeFailOcrrType.get(CODE); if (code != null) { return code.getFailOcrrCdNm(); } return defFcltCodeUnknown; } public static String getFailTypeName(String CODE) { TbFcltFailTypeDto code = codeFailType.get(CODE); if (code != null) { return code.getFailCdNm(); } return defFcltCodeUnknown; } public static String getFailTypeActName(String CODE) { TbFcltFailTypeActDto code = codeFailTypeAct.get(CODE); if (code != null) { return code.getFailActCdNm(); } return defFcltCodeUnknown; } }