From d4f6ec39b7e0421757a6b9d1a68b1c4610ea2e8c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 14 三月 2024 14:54:20 +0800
Subject: [PATCH] 优化CivilCode缓存

---
 src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java |   37 ++++++++-----------------------------
 1 files changed, 8 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java
index 20b6eef..8449ebb 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java
@@ -1,7 +1,7 @@
 package com.genersoft.iot.vmp.conf;
 
 import com.genersoft.iot.vmp.common.CivilCodePo;
-import org.ehcache.impl.internal.concurrent.ConcurrentHashMap;
+import com.genersoft.iot.vmp.utils.CivilCodeUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +17,8 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.nio.file.Files;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 鍚姩鏃惰鍙栬鏀垮尯鍒掕〃
@@ -27,8 +28,6 @@
 public class CivilCodeFileConf implements CommandLineRunner {
 
     private final static Logger logger = LoggerFactory.getLogger(CivilCodeFileConf.class);
-
-    private final Map<String, CivilCodePo> civilCodeMap= new ConcurrentHashMap<>();
 
     @Autowired
     @Lazy
@@ -62,6 +61,7 @@
         BufferedReader inputStreamReader = new BufferedReader(new InputStreamReader(inputStream));
         int index = -1;
         String line;
+        List<CivilCodePo> civilCodePoList = new ArrayList<>();
         while ((line = inputStreamReader.readLine()) != null) {
             index ++;
             if (index == 0) {
@@ -69,36 +69,15 @@
             }
             String[] infoArray = line.split(",");
             CivilCodePo civilCodePo = CivilCodePo.getInstance(infoArray);
-            civilCodeMap.put(civilCodePo.getCode(), civilCodePo);
+            civilCodePoList.add(civilCodePo);
         }
+        CivilCodeUtil.INSTANCE.add(civilCodePoList);
         inputStreamReader.close();
         inputStream.close();
-        if (civilCodeMap.size() == 0) {
+        if (civilCodePoList.isEmpty()) {
             logger.warn("[琛屾斂鍖哄垝] 鏂囦欢鍐呭涓虹┖锛屽彲鑳介�犳垚鐩綍鍒锋柊缁撴灉涓嶅畬鏁�");
         }else {
-            logger.info("[琛屾斂鍖哄垝] 鍔犺浇鎴愬姛锛屽叡鍔犺浇鏁版嵁{}鏉�", civilCodeMap.size());
+            logger.info("[琛屾斂鍖哄垝] 鍔犺浇鎴愬姛锛屽叡鍔犺浇鏁版嵁{}鏉�", civilCodePoList.size());
         }
     }
-
-    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);
-        }
-
-    }
-
 }

--
Gitblit v1.8.0