package com.genersoft.iot.vmp.utils; import com.genersoft.iot.vmp.common.CivilCodePo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public enum CivilCodeUtil { INSTANCE; private final static Logger log = LoggerFactory.getLogger(CivilCodeUtil.class); // 用与消息的缓存 private final Map civilCodeMap = new ConcurrentHashMap<>(); CivilCodeUtil() { } public void add(List civilCodePoList) { if (!civilCodePoList.isEmpty()) { for (CivilCodePo civilCodePo : civilCodePoList) { civilCodeMap.put(civilCodePo.getCode(), civilCodePo); } } } public CivilCodePo getParentCode(String code) { if (code.length() > 8) { return null; } if (code.length() == 8) { String parentCode = code.substring(0, 6); return civilCodeMap.get(parentCode); }else { CivilCodePo civilCodePo = civilCodeMap.get(code); if (civilCodePo == null){ return null; } String parentCode = civilCodePo.getParentCode(); if (parentCode == null) { return null; } return civilCodeMap.get(parentCode); } } }