瀏覽代碼

sailfish-0.0.27,使用并发map

menglu 3 年之前
父節點
當前提交
161cef7a55
共有 18 個文件被更改,包括 136 次插入137 次删除
  1. 1 1
      ibms-data-sdk/pom.xml
  2. 1 2
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/AlarmDurationThread.java
  3. 2 2
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RedirectUtil.java
  4. 6 6
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestUtil.java
  5. 2 2
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ConfigRedirect.java
  6. 19 13
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/Constant.java
  7. 1 2
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ControlUtil.java
  8. 2 2
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/DeamonUtil.java
  9. 2 2
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ExcelCommonUtil.java
  10. 5 5
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ExcelRelationUtil.java
  11. 10 11
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ExportUtil.java
  12. 24 25
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/FileUtil.java
  13. 10 11
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDAlarmUtil.java
  14. 13 13
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDDownloadUtil.java
  15. 14 15
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDLoadUtil.java
  16. 3 3
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDRepositoryUtil.java
  17. 13 14
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RepositoryImpl.java
  18. 8 8
      ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ToolUtil.java

+ 1 - 1
ibms-data-sdk/pom.xml

@@ -216,7 +216,7 @@
 		<dependency>
 			<groupId>com.persagy</groupId>
 			<artifactId>sailfish</artifactId>
-			<version>0.0.26</version>
+			<version>0.0.27</version>
 		</dependency>
 	</dependencies>
 

+ 1 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/AlarmDurationThread.java

@@ -31,8 +31,7 @@ public class AlarmDurationThread extends Thread {
 			}
 
 			Date currentTime = new Date();
-			String[] ids = RepositoryContainer.RepositoryBase.id2alarmList.keySet().toArray(new String[0]);
-			for (String id : ids) {
+			for (String id : RepositoryContainer.RepositoryBase.id2alarmList.keySet()) {
 				SceneDataValue alarmList = RepositoryContainer.RepositoryBase.id2alarmList.get(id);
 				for (int i = 0; i < alarmList.value_array.set.size(); i++) {
 					SceneDataObject sdoInner = (SceneDataObject) alarmList.value_array.set.get(i);

+ 2 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RedirectUtil.java

@@ -1,8 +1,8 @@
 package com.persagy.ibms.data.sdk.service.rest;
 
 import java.net.URLEncoder;
-import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -30,7 +30,7 @@ public class RedirectUtil {
 		}
 		String resultString;
 		try {
-			Map<String, String> otherMap = new HashMap<String, String>();
+			Map<String, String> otherMap = new ConcurrentHashMap<String, String>();
 			Object result = RedirectUtil.redirectInner(ConfigRedirect, sql_json, otherMap);
 			if (wrapper) {
 				JSONObject resultJSON = new JSONObject();

+ 6 - 6
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestUtil.java

@@ -4,10 +4,10 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -509,7 +509,7 @@ public class RestUtil {
 		String time_to = parseObject.getString("time_to");
 		JSONArray Items = parseObject.getJSONArray("Items");
 		List<Object> drawObjectList = new ArrayList<Object>();
-		Map<String, String> ObjInfo2Point = new HashMap<String, String>();
+		Map<String, String> ObjInfo2Point = new ConcurrentHashMap<String, String>();
 		for (int i = 0; i < Items.size(); i++) {
 			JSONObject item = (JSONObject) Items.get(i);
 			JSONArray path = (JSONArray) item.get("path");
@@ -521,8 +521,8 @@ public class RestUtil {
 			Object drawObject = DrawUtil.drawObject(RepositoryContainer.instance, valueObject, ObjInfo2Point);
 			drawObjectList.add(drawObject);
 		}
-		Map<String, JSONArray> Point2datas = new HashMap<String, JSONArray>();
-		Map<String, IntWrapper> Point2index = new HashMap<String, IntWrapper>();
+		Map<String, JSONArray> Point2datas = new ConcurrentHashMap<String, JSONArray>();
+		Map<String, IntWrapper> Point2index = new ConcurrentHashMap<String, IntWrapper>();
 		JSONArray points = new JSONArray();
 		for (String objInfo : ObjInfo2Point.keySet()) {
 			String point = ObjInfo2Point.get(objInfo);
@@ -673,7 +673,7 @@ public class RestUtil {
 			JSONObject postJSON = new JSONObject();
 			// "label contain 'Sy440307000395af770eea9646b0b68e80748d596f19'"
 			postJSON.put("filters", paramObject.get("filters"));
-			Map<String, String> head = new HashMap<>();
+			Map<String, String> head = new ConcurrentHashMap<>();
 			head.put("projectId", RepositoryContainer.RepositoryBase.projectId);
 			// 3.发送请求
 			// http://39.102.40.239:28888/labsl/graph/pub/query
@@ -682,7 +682,7 @@ public class RestUtil {
 			String post_result = HttpClientUtil.post(post_url, postJSON.toJSONString(), null, head);
 			// 4.解析返回结果
 			JSONObject resultJSON = JSON.parseObject(post_result);
-			Map<String, String> map = new HashMap<>();
+			Map<String, String> map = new ConcurrentHashMap<>();
 			JSONArray content = (JSONArray) resultJSON.get("content");
 			JSONObject rd = new JSONObject();
 			if (content == null || content.isEmpty()) {

+ 2 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ConfigRedirect.java

@@ -1,11 +1,11 @@
 package com.persagy.ibms.data.sdk.util;
 
-import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 public class ConfigRedirect {
 	public String code;
 	public String http_request_type;
 	public String url;
-	public Map<String, String> headerMap = new HashMap<String, String>();
+	public Map<String, String> headerMap = new ConcurrentHashMap<String, String>();
 }

+ 19 - 13
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/Constant.java

@@ -1,19 +1,25 @@
 package com.persagy.ibms.data.sdk.util;
 
-import cn.hutool.core.io.resource.ResourceUtil;
-import cn.hutool.core.util.StrUtil;
-import lombok.extern.slf4j.Slf4j;
+import java.io.File;
+import java.io.InputStream;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.dom4j.Attribute;
 import org.dom4j.Document;
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
 import org.springframework.core.io.ClassPathResource;
 
-import java.io.File;
-import java.io.InputStream;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import cn.hutool.core.io.resource.ResourceUtil;
+import cn.hutool.core.util.StrUtil;
+import lombok.extern.slf4j.Slf4j;
 
 @SuppressWarnings({ "rawtypes" })
 @Slf4j
@@ -47,19 +53,19 @@ public class Constant {
 
 	public static String adm_project_url;
 
-	public static Map<String, String> SceneCode2TabName = new HashMap<String, String>();
+	public static Map<String, String> SceneCode2TabName = new ConcurrentHashMap<String, String>();
 
-	public static Map<String, Boolean> objType_hasRelation = new HashMap<String, Boolean>();
+	public static Map<String, Boolean> objType_hasRelation = new ConcurrentHashMap<String, Boolean>();
 	public static List<ConfigRelation> ConfigRelationList = new ArrayList<ConfigRelation>();
-	public static Map<String, ConfigRedirect> ConfigRedirectMap = new HashMap<String, ConfigRedirect>();
+	public static Map<String, ConfigRedirect> ConfigRedirectMap = new ConcurrentHashMap<String, ConfigRedirect>();
 
-	public static Map<String, Boolean> keyWordMap = new HashMap<String, Boolean>();
+	public static Map<String, Boolean> keyWordMap = new ConcurrentHashMap<String, Boolean>();
 	public static Map<String, Boolean> prefixMap;
 	public static Map<String, Boolean> suffixMap;
 
 	static {
 		{
-			suffixMap = new HashMap<String, Boolean>();
+			suffixMap = new ConcurrentHashMap<String, Boolean>();
 			suffixMap.put("-" + "meter-funcid", true);
 		}
 

+ 1 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ControlUtil.java

@@ -17,8 +17,7 @@ public class ControlUtil {
 	public static void setControlValue(JSONArray path, JSONObject infoValueSet) {
 		JSONObject exist_value = RepositoryContainer.RepositoryBase.controlValueMap.putIfAbsent(path.toJSONString(), infoValueSet);
 		if (exist_value != null) {
-			String[] info_codes = infoValueSet.keySet().toArray(new String[0]);
-			for (String info_code : info_codes) {
+			for (String info_code : infoValueSet.keySet()) {
 				exist_value.put(info_code, infoValueSet.get(info_code));
 			}
 		}

+ 2 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/DeamonUtil.java

@@ -3,9 +3,9 @@ package com.persagy.ibms.data.sdk.util;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -23,7 +23,7 @@ public class DeamonUtil {
 
 	public static void Process_deamon(RepositoryBase Repository) throws Exception {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-		Map<String, Boolean> pointMap = new HashMap<String, Boolean>();
+		Map<String, Boolean> pointMap = new ConcurrentHashMap<String, Boolean>();
 		for (SceneDataValue sdv : Repository.deamon_sdv2pointList.keySet()) {
 			List<String> pointList = Repository.deamon_sdv2pointList.get(sdv);
 			for (String point : pointList) {

+ 2 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ExcelCommonUtil.java

@@ -7,9 +7,9 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
@@ -153,7 +153,7 @@ public class ExcelCommonUtil {
 	}
 
 	public static Map<String, ExcelSheet> Read(InputStream stream, boolean titleCol) throws Exception {
-		Map<String, ExcelSheet> result = new HashMap<String, ExcelSheet>();
+		Map<String, ExcelSheet> result = new ConcurrentHashMap<String, ExcelSheet>();
 		Workbook workbook = WorkbookFactory.create(stream);
 		int numbers = workbook.getNumberOfSheets();
 		for (int i = 0; i < numbers; i++) {

+ 5 - 5
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ExcelRelationUtil.java

@@ -2,10 +2,10 @@ package com.persagy.ibms.data.sdk.util;
 
 import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
@@ -25,7 +25,7 @@ public class ExcelRelationUtil {
 			rangeList.add(range);
 		}
 		Row TitleRow = wSheet1.getRow(1 - 1);
-		Map<String, Integer> titleDic = new HashMap<String, Integer>();
+		Map<String, Integer> titleDic = new ConcurrentHashMap<String, Integer>();
 		for (Iterator<Cell> iterator = TitleRow.cellIterator(); iterator.hasNext();) {
 			Cell cell = iterator.next();
 			int index = cell.getColumnIndex();
@@ -33,7 +33,7 @@ public class ExcelRelationUtil {
 				titleDic.put(ExcelCommonUtil.GetCellValue(cell), index);
 			}
 		}
-		Map<Integer, Integer> row2count = new HashMap<Integer, Integer>();
+		Map<Integer, Integer> row2count = new ConcurrentHashMap<Integer, Integer>();
 		for (int i = 1; i <= wSheet1.getLastRowNum(); i++) {
 			Row row = wSheet1.getRow(i);
 			if (row == null) {
@@ -60,10 +60,10 @@ public class ExcelRelationUtil {
 				row2count.put(i, rowRange);
 			}
 		}
-		for (int i : row2count.keySet().toArray(new Integer[0])) {
+		for (int i : row2count.keySet()) {
 			Row row = wSheet1.getRow(i);
 			Cell graphCode = row.getCell(titleDic.get("图类型编码"));
-			Map<String, Integer> dic = new HashMap<String, Integer>();
+			Map<String, Integer> dic = new ConcurrentHashMap<String, Integer>();
 			for (int ii = 0; ii < row2count.get(i); ii++) {
 				Row rowInner = wSheet1.getRow(i + ii);
 				Cell edgeCode = rowInner.getCell(titleDic.get("边类型编码"));

+ 10 - 11
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ExportUtil.java

@@ -5,15 +5,14 @@ import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 
-import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.xssf.streaming.SXSSFSheet;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpHeaders;
@@ -27,6 +26,8 @@ import com.persagy.ibms.core.util.FastJsonReaderUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
+import lombok.extern.slf4j.Slf4j;
+
 @Slf4j
 public class ExportUtil {
 	private static ResponseEntity<FileSystemResource> export(File file) {
@@ -47,11 +48,10 @@ public class ExportUtil {
 	}
 
 	public static ResponseEntity<FileSystemResource> alarm_export(JSONObject result) throws Exception {
-		JSONArray alarm_export_title = FastJsonReaderUtil.Instance()
-				.ReadJSONArray(FileUtil.file("alarm_export_title.json"));
+		JSONArray alarm_export_title = FastJsonReaderUtil.Instance().ReadJSONArray(FileUtil.file("alarm_export_title.json"));
 		List<String> codeList = new ArrayList<String>();
 		List<String> titleList = new ArrayList<String>();
-		Map<String, String> titleMap = new HashMap<String, String>();
+		Map<String, String> titleMap = new ConcurrentHashMap<String, String>();
 		for (int i = 0; i < alarm_export_title.size(); i++) {
 			JSONObject title = alarm_export_title.getJSONObject(i);
 			String jsonKey = title.getString("jsonKey");
@@ -71,21 +71,20 @@ public class ExportUtil {
 			}
 			sheet.contentListList.add(contentList);
 		}
-		Map<String, ExcelSheet> sheetMap = new HashMap<String, ExcelSheet>();
+		Map<String, ExcelSheet> sheetMap = new ConcurrentHashMap<String, ExcelSheet>();
 		sheetMap.put("Sheet1", sheet);
 		String filepath = UUID.randomUUID().toString() + ".xlsx";
 		try {
 			ExcelCommonUtil.Write(filepath, sheetMap);
 		} catch (Exception e) {
-			log.error(e.getMessage(),e);
+			log.error(e.getMessage(), e);
 		}
 		return ExportUtil.export(new File(filepath));
 	}
 
 	public static void alarm_export(JSONObject result, HttpServletResponse response) throws Exception {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss.SSS");
-		JSONArray alarm_export_title = FastJsonReaderUtil.Instance()
-				.ReadJSONArray(FileUtil.file("alarm_export_title.json"));
+		JSONArray alarm_export_title = FastJsonReaderUtil.Instance().ReadJSONArray(FileUtil.file("alarm_export_title.json"));
 		JSONArray content = result.getJSONArray("content");
 		String xlsFileName = sdf.format(new Date()) + ".xlsx";
 		ExcelWriter writer = ExcelUtil.getBigWriter();
@@ -128,7 +127,7 @@ public class ExportUtil {
 	public static ResponseEntity<FileSystemResource> fjd_export(JSONArray parseArray) throws Exception {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		SimpleDateFormat sdf_ = new SimpleDateFormat("yyyyMMddHHmmss");
-		Map<String, ExcelSheet> sheetMap = new HashMap<String, ExcelSheet>();
+		Map<String, ExcelSheet> sheetMap = new ConcurrentHashMap<String, ExcelSheet>();
 		for (int i = 0; i < parseArray.size(); i++) {
 			JSONObject parseObject = parseArray.getJSONObject(i);
 			String code = parseObject.getString("code");
@@ -151,7 +150,7 @@ public class ExportUtil {
 		try {
 			ExcelCommonUtil.Write(filepath, sheetMap);
 		} catch (Exception e) {
-			log.error(e.getMessage(),e);
+			log.error(e.getMessage(), e);
 		}
 		return ExportUtil.export(new File(filepath));
 	}

+ 24 - 25
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/FileUtil.java

@@ -4,8 +4,8 @@ import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
-import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import cn.hutool.core.util.StrUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -40,11 +40,11 @@ public class FileUtil {
 
 	public static boolean compareRecursive(File file1, File file2) throws Exception {
 		if (file1.isDirectory() && file2.isDirectory()) {
-			Map<String, File> fileMap1 = new HashMap<String, File>();
-			Map<String, File> dirMap1 = new HashMap<String, File>();
+			Map<String, File> fileMap1 = new ConcurrentHashMap<String, File>();
+			Map<String, File> dirMap1 = new ConcurrentHashMap<String, File>();
 			draw(file1, fileMap1, dirMap1);
-			Map<String, File> fileMap2 = new HashMap<String, File>();
-			Map<String, File> dirMap2 = new HashMap<String, File>();
+			Map<String, File> fileMap2 = new ConcurrentHashMap<String, File>();
+			Map<String, File> dirMap2 = new ConcurrentHashMap<String, File>();
 			draw(file2, fileMap2, dirMap2);
 
 			if (!compareKey(fileMap1, fileMap2)) {
@@ -113,46 +113,45 @@ public class FileUtil {
 	/**
 	 * 判断文件是否存在,如果path为null,则返回false
 	 *
-	 * @param path 文件路径
+	 * @param path
+	 *            文件路径
 	 * @return 如果存在返回true
 	 */
 	public static boolean exist(String path) {
-		return (null != path) && ( cn.hutool.core.io.FileUtil.file("config/" + path).exists() || cn.hutool.core.io.FileUtil.file(path).exists());
+		return (null != path) && (cn.hutool.core.io.FileUtil.file("config/" + path).exists() || cn.hutool.core.io.FileUtil.file(path).exists());
 	}
 
 	public static File file(String path) {
 		if (null == path) {
 			return null;
 		}
-		path = StrUtil.removePrefix(path,File.separator);
+		path = StrUtil.removePrefix(path, File.separator);
 		String filePath = System.getProperty("user.dir") + File.separator + "config" + File.separator + path;
-		if( cn.hutool.core.io.FileUtil.exist(filePath)){
-			log.info("文件{}获取1路径:{}",path,filePath);
+		if (cn.hutool.core.io.FileUtil.exist(filePath)) {
+			log.info("文件{}获取1路径:{}", path, filePath);
 			return cn.hutool.core.io.FileUtil.file(filePath);
 		}
 		filePath = System.getProperty("user.dir") + File.separator + path;
-		if( cn.hutool.core.io.FileUtil.exist(filePath)){
-			log.info("文件{}获取2路径:{}",path,filePath);
+		if (cn.hutool.core.io.FileUtil.exist(filePath)) {
+			log.info("文件{}获取2路径:{}", path, filePath);
 			return cn.hutool.core.io.FileUtil.file(filePath);
 		}
-		if(cn.hutool.core.io.FileUtil.exist("config/" + path)){
-			log.info("文件{}获取3路径:{}",path,cn.hutool.core.io.FileUtil.file("config/" + path).getPath());
+		if (cn.hutool.core.io.FileUtil.exist("config/" + path)) {
+			log.info("文件{}获取3路径:{}", path, cn.hutool.core.io.FileUtil.file("config/" + path).getPath());
 			return cn.hutool.core.io.FileUtil.file("config/" + path);
 		}
-		if(cn.hutool.core.io.FileUtil.exist(path)){
-			log.info("文件{}获取4路径:{}",path,cn.hutool.core.io.FileUtil.file( path).getPath());
+		if (cn.hutool.core.io.FileUtil.exist(path)) {
+			log.info("文件{}获取4路径:{}", path, cn.hutool.core.io.FileUtil.file(path).getPath());
 			return cn.hutool.core.io.FileUtil.file(path);
 		}
-		log.info("文件{}获取5路径:{}",path,path);
+		log.info("文件{}获取5路径:{}", path, path);
 		return new File(path);
 	}
 
-
-
-//	public static File file(String path) {
-//		if (null == path) {
-//			return null;
-//		}
-//		return new File(path);
-//	}
+	// public static File file(String path) {
+	// if (null == path) {
+	// return null;
+	// }
+	// return new File(path);
+	// }
 }

+ 10 - 11
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDAlarmUtil.java

@@ -5,9 +5,9 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -24,13 +24,13 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class RWDAlarmUtil {
 	public static JSONArray history_alarm_path = new JSONArray();
-	static Map<Integer, String> stateMap = new HashMap<Integer, String>();
-	static Map<Integer, String> statusMap = new HashMap<Integer, String>();
-	static Map<Integer, String> treatStateMap = new HashMap<Integer, String>();
-	static Map<Integer, String> treatModeMap = new HashMap<Integer, String>();
-	static Map<Integer, String> natureMap = new HashMap<Integer, String>();
-	static Map<String, String> levelMap = new HashMap<String, String>();
-	static Map<String, String> categoryMap = new HashMap<String, String>();
+	static Map<Integer, String> stateMap = new ConcurrentHashMap<Integer, String>();
+	static Map<Integer, String> statusMap = new ConcurrentHashMap<Integer, String>();
+	static Map<Integer, String> treatStateMap = new ConcurrentHashMap<Integer, String>();
+	static Map<Integer, String> treatModeMap = new ConcurrentHashMap<Integer, String>();
+	static Map<Integer, String> natureMap = new ConcurrentHashMap<Integer, String>();
+	static Map<String, String> levelMap = new ConcurrentHashMap<String, String>();
+	static Map<String, String> categoryMap = new ConcurrentHashMap<String, String>();
 
 	static {
 		history_alarm_path.add("基础对象");
@@ -510,8 +510,7 @@ public class RWDAlarmUtil {
 
 	public static synchronized int refresh() throws Exception {
 		RepositoryContainer.RepositoryBase.alarmArray.set.clear();
-		String[] objIds = RepositoryContainer.RepositoryBase.id2alarmList.keySet().toArray(new String[0]);
-		for (String objId : objIds) {
+		for (String objId : RepositoryContainer.RepositoryBase.id2alarmList.keySet()) {
 			RepositoryContainer.RepositoryBase.id2alarmList.get(objId).value_array.set.clear();
 			RepositoryContainer.RepositoryBase.id2alarmCount.get(objId).value_prim.value = 0;
 		}
@@ -526,7 +525,7 @@ public class RWDAlarmUtil {
 			JSONObject getResult = JSON.parseObject(getResultString);
 			JSONArray ContentInner = (JSONArray) getResult.get("Content");
 			JSONArray ids = new JSONArray();
-			Map<String, JSONObject> alarmMap = new HashMap<String, JSONObject>();
+			Map<String, JSONObject> alarmMap = new ConcurrentHashMap<String, JSONObject>();
 			for (int i = 0; i < ContentInner.size(); i++) {
 				JSONObject alarm = ContentInner.getJSONObject(i);
 				if (alarm.containsKey("treatMode")) {

+ 13 - 13
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDDownloadUtil.java

@@ -6,9 +6,9 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -157,7 +157,7 @@ public class RWDDownloadUtil {
 			infoArray = infoArray == null ? new JSONArray() : infoArray;
 			FileUtil.Save(path + Constant.getSeperator() + "info" + Constant.getSeperator() + code + ".json", FastJsonUtil.toFormatString(infoArray));
 		}
-		Map<String, Boolean> objTypeMap = new HashMap<String, Boolean>();
+		Map<String, Boolean> objTypeMap = new ConcurrentHashMap<String, Boolean>();
 		for (int i = 0; i < classArray.size(); i++) {
 			JSONObject classItem = (JSONObject) classArray.get(i);
 			String objType = (String) classItem.get("objType");
@@ -194,20 +194,20 @@ public class RWDDownloadUtil {
 			FileUtil.Save(path + Constant.getSeperator() + "object" + Constant.getSeperator() + code + ".json",
 					FastJsonUtil.toFormatString(infoArray));
 		}
-		Map<String, Map<String, Integer>> relDic = new HashMap<String, Map<String, Integer>>();
+		Map<String, Map<String, Integer>> relDic = new ConcurrentHashMap<String, Map<String, Integer>>();
 		try (InputStream stream = Constant.getStream("relation.xlsx")) {
 			ExcelRelationUtil.ReadRel(stream, relDic);
 		} catch (Exception e) {
 			log.error(e.getMessage(), e);
 			throw e;
 		}
-		for (String graphCode : relDic.keySet().toArray(new String[0])) {
+		for (String graphCode : relDic.keySet()) {
 			File graph = new File(path + Constant.getSeperator() + "relation" + Constant.getSeperator() + graphCode);
 			if (!graph.exists()) {
 				graph.mkdir();
 			}
 			Map<String, Integer> lineDic = relDic.get(graphCode);
-			for (String relCode : lineDic.keySet().toArray(new String[0])) {
+			for (String relCode : lineDic.keySet()) {
 				JSONArray infoArray;
 				{
 					JSONObject param = new JSONObject();
@@ -336,12 +336,12 @@ public class RWDDownloadUtil {
 		log.debug("Download zkt physical world finish " + path);
 
 		{
-			Map<String, String> alarmTypeMap = new HashMap<String, String>();
+			Map<String, String> alarmTypeMap = new ConcurrentHashMap<String, String>();
 			if (Constant.alarm_service_name.equalsIgnoreCase("ibms-alarm")) {
 				boolean use_group = true;
 				if (use_group) {
-					String post_result = HttpClientUtil.get(
-							Constant.alarm_url + "/alarm-record/selectItemGroupCode" + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
+					String post_result = HttpClientUtil
+							.get(Constant.alarm_url + "/alarm-record/selectItemGroupCode" + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
 									+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode);
 					JSONObject resultJSON = JSON.parseObject(post_result);
 					JSONArray Content = resultJSON.getJSONArray("Item");
@@ -356,9 +356,9 @@ public class RWDDownloadUtil {
 						JSONObject classItem = classArray.getJSONObject(i);
 						String ibmsSceneCode = classItem.getString("ibmsSceneCode");
 						String ibmsClassCode = classItem.getString("ibmsClassCode");
-						String post_result = HttpClientUtil.get(Constant.alarm_url + "/alarm-config/itemList/" + ibmsSceneCode + "/"
-								+ ibmsClassCode + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
-								+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode);
+						String post_result = HttpClientUtil.get(Constant.alarm_url + "/alarm-config/itemList/" + ibmsSceneCode + "/" + ibmsClassCode
+								+ "?appId=" + "0" + "&userId=" + "systemId" + "&projectId=" + RepositoryContainer.RepositoryBase.projectId
+								+ "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode);
 						JSONObject resultJSON = JSON.parseObject(post_result);
 						JSONArray Content = resultJSON.getJSONArray("Content");
 						for (int ii = 0; ii < Content.size(); ii++) {
@@ -518,14 +518,14 @@ public class RWDDownloadUtil {
 			classArray = classArray == null ? new JSONArray() : classArray;
 			FileUtil.Save(path + Constant.getSeperator() + "groupArray.json", FastJsonUtil.toFormatString(classArray));
 		}
-		Map<String, Map<String, List<String>>> idListMapMap = new HashMap<String, Map<String, List<String>>>();
+		Map<String, Map<String, List<String>>> idListMapMap = new ConcurrentHashMap<String, Map<String, List<String>>>();
 		for (int i = 0; i < classArray.size(); i++) {
 			JSONObject item = (JSONObject) classArray.get(i);
 			String ibmsSceneCode = item.getString("ibmsSceneCode");
 			String ibmsClassCode = item.getString("ibmsClassCode");
 			String logicalGroupingId = item.getString("logicalGroupingId");
 			if (!idListMapMap.containsKey(ibmsSceneCode)) {
-				idListMapMap.put(ibmsSceneCode, new HashMap<String, List<String>>());
+				idListMapMap.put(ibmsSceneCode, new ConcurrentHashMap<String, List<String>>());
 			}
 			Map<String, List<String>> idListMap = idListMapMap.get(ibmsSceneCode);
 			if (!idListMap.containsKey(ibmsClassCode)) {

+ 14 - 15
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDLoadUtil.java

@@ -6,7 +6,6 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -62,7 +61,7 @@ public class RWDLoadUtil {
 		{
 			File root = new File(infoPath);
 			File[] files = root.listFiles();
-			Map<String, SceneDataSet> infoArrayDic = new HashMap<String, SceneDataSet>();
+			Map<String, SceneDataSet> infoArrayDic = new ConcurrentHashMap<String, SceneDataSet>();
 			for (File file : files) {
 				int index_ = file.getName().indexOf('.');
 				String code = file.getName().substring(0, index_);
@@ -108,7 +107,7 @@ public class RWDLoadUtil {
 		{
 			File root = new File(objectPath);
 			File[] files = root.listFiles();
-			Map<String, SceneDataSet> objectArrayDic = new HashMap<String, SceneDataSet>();
+			Map<String, SceneDataSet> objectArrayDic = new ConcurrentHashMap<String, SceneDataSet>();
 			for (File file : files) {
 				int index_ = file.getName().indexOf('.');
 				String code = file.getName().substring(0, index_);
@@ -121,8 +120,8 @@ public class RWDLoadUtil {
 				if (code.equals("OTSECB")) {
 					for (int ii = 0; ii < array.size(); ii++) {
 						JSONObject arrayItem = (JSONObject) array.get(ii);
-						Map<String, String> concentrateMap = new HashMap<String, String>();
-						Map<String, String> concentrateUnitMap = new HashMap<String, String>();
+						Map<String, String> concentrateMap = new ConcurrentHashMap<String, String>();
+						Map<String, String> concentrateUnitMap = new ConcurrentHashMap<String, String>();
 						for (int iii = 1; iii <= 5; iii++) {
 							if (arrayItem.containsKey("concentrateSensorType" + iii) && arrayItem.containsKey("concentrate" + iii)) {
 								String sensorType = (String) arrayItem.get("concentrateSensorType" + iii);
@@ -193,9 +192,9 @@ public class RWDLoadUtil {
 		}
 
 		{
-			Map<String, Map<String, SceneDataObject>> objType2id2Value = new HashMap<String, Map<String, SceneDataObject>>();
+			Map<String, Map<String, SceneDataObject>> objType2id2Value = new ConcurrentHashMap<String, Map<String, SceneDataObject>>();
 			for (String objType : Constant.objType_hasRelation.keySet()) {
-				Map<String, SceneDataObject> id2Value = new HashMap<String, SceneDataObject>();
+				Map<String, SceneDataObject> id2Value = new ConcurrentHashMap<String, SceneDataObject>();
 				SceneDataSet sdvList = Repository.objectArrayDic.get(objType);
 				for (SceneDataObject sdv : sdvList.set) {
 					String id = (String) sdv.value_object.get("id").value_prim.value;
@@ -208,14 +207,14 @@ public class RWDLoadUtil {
 
 		String relationPath = validPath + Constant.getSeperator() + "relation";
 		{
-			Map<String, Map<String, SceneDataSet>> relationArrayDic = new HashMap<String, Map<String, SceneDataSet>>();
-			Map<String, SceneDataSet> graphCodeDic = new HashMap<String, SceneDataSet>();
-			Map<String, SceneDataSet> relCodeDic = new HashMap<String, SceneDataSet>();
+			Map<String, Map<String, SceneDataSet>> relationArrayDic = new ConcurrentHashMap<String, Map<String, SceneDataSet>>();
+			Map<String, SceneDataSet> graphCodeDic = new ConcurrentHashMap<String, SceneDataSet>();
+			Map<String, SceneDataSet> relCodeDic = new ConcurrentHashMap<String, SceneDataSet>();
 			File root = new File(relationPath);
 			File[] dirs = root.listFiles();
 			for (File dir : dirs) {
 				File[] files = dir.listFiles();
-				Map<String, SceneDataSet> oneDic = new HashMap<String, SceneDataSet>();
+				Map<String, SceneDataSet> oneDic = new ConcurrentHashMap<String, SceneDataSet>();
 				SceneDataSet graphCodeSet = new SceneDataSet(false);
 				for (File file : files) {
 					int index_ = file.getName().indexOf('.');
@@ -551,7 +550,7 @@ public class RWDLoadUtil {
 				SceneDataSet.set = RWDUtil.array2SDOList(classArray);
 				Repository.ZKTClassArray = SceneDataSet;
 			}
-			Map<String, Map<String, SceneDataSet>> objectArrayDicZKT = new HashMap<String, Map<String, SceneDataSet>>();
+			Map<String, Map<String, SceneDataSet>> objectArrayDicZKT = new ConcurrentHashMap<String, Map<String, SceneDataSet>>();
 			for (int i = 0; i < classArray.size(); i++) {
 				JSONObject classItem = (JSONObject) classArray.get(i);
 				String ibmsSceneCode = (String) classItem.get("ibmsSceneCode");
@@ -559,7 +558,7 @@ public class RWDLoadUtil {
 				String code = (String) classItem.get("code");
 				String flag = (String) classItem.get("flag");
 				if (!objectArrayDicZKT.containsKey(ibmsSceneCode)) {
-					objectArrayDicZKT.put(ibmsSceneCode, new HashMap<String, SceneDataSet>());
+					objectArrayDicZKT.put(ibmsSceneCode, new ConcurrentHashMap<String, SceneDataSet>());
 				}
 				Map<String, SceneDataSet> mapInner = objectArrayDicZKT.get(ibmsSceneCode);
 				log.info(objectPath + Constant.getSeperator() + ibmsSceneCode + " " + ibmsClassCode);
@@ -666,7 +665,7 @@ public class RWDLoadUtil {
 		});
 		for (File dir : dirs) {
 			String product = dir.getName();
-			Map<String, SceneDataSet> infoArrayDic = new HashMap<String, SceneDataSet>();
+			Map<String, SceneDataSet> infoArrayDic = new ConcurrentHashMap<String, SceneDataSet>();
 			File[] files = dir.listFiles();
 			for (File file : files) {
 				int index_ = file.getName().indexOf('.');
@@ -956,7 +955,7 @@ public class RWDLoadUtil {
 		calendar.setTime(currDate);
 		int year = calendar.get(Calendar.YEAR);
 		String projectId = RepositoryContainer.RepositoryBase.projectId;
-		Map<String, String> modelMap = new HashMap<String, String>();
+		Map<String, String> modelMap = new ConcurrentHashMap<String, String>();
 		{
 			JSONObject param = new JSONObject();
 			param.put("userId", "0");

+ 3 - 3
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDRepositoryUtil.java

@@ -1,9 +1,9 @@
 package com.persagy.ibms.data.sdk.util;
 
 import java.io.File;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -35,7 +35,7 @@ public class RWDRepositoryUtil {
 				log.warn("LoadIBMSPhysicalWorld");
 				RWDLoadUtil.LoadIBMSPhysicalWorld(Repository);
 			}
-			if(Constant.info_point_enable){
+			if (Constant.info_point_enable) {
 				log.warn("LoadInfoPoint");
 				RWDLoadUtil.LoadInfoPoint(Repository);
 			}
@@ -125,7 +125,7 @@ public class RWDRepositoryUtil {
 	}
 
 	private static void parse_general_query(RepositoryImpl Repository, JSONObject custom_object) {
-		Map<String, JSONObject> general_queryMap = new HashMap<String, JSONObject>();
+		Map<String, JSONObject> general_queryMap = new ConcurrentHashMap<String, JSONObject>();
 		JSONArray PropertyList = custom_object.getJSONArray("PropertyList");
 		for (int i = 0; i < PropertyList.size(); i++) {
 			JSONObject Property = PropertyList.getJSONObject(i);

+ 13 - 14
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RepositoryImpl.java

@@ -1,6 +1,5 @@
 package com.persagy.ibms.data.sdk.util;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -20,38 +19,38 @@ public class RepositoryImpl extends RepositoryBase {
 	public SceneDataSet alarmConfigTrigger = new SceneDataSet(false);
 
 	// 对象类型,true表示有二级类型
-	public Map<String, Boolean> objTypeMap = new HashMap<String, Boolean>();
-	public Map<String, String> classCode2NameMap = new HashMap<String, String>();
+	public Map<String, Boolean> objTypeMap = new ConcurrentHashMap<String, Boolean>();
+	public Map<String, String> classCode2NameMap = new ConcurrentHashMap<String, String>();
 	// classCode到objType
-	public Map<String, String> code2objTypeMap = new HashMap<String, String>();
+	public Map<String, String> code2objTypeMap = new ConcurrentHashMap<String, String>();
 	// 对象类型下属信息点
 	public SceneDataSet classArray = new SceneDataSet(false);
-	public Map<String, SceneDataSet> infoArrayDic = new HashMap<String, SceneDataSet>();
+	public Map<String, SceneDataSet> infoArrayDic = new ConcurrentHashMap<String, SceneDataSet>();
 	// 对象类型到对象实例清单
-	public Map<String, SceneDataSet> objectArrayDic = new HashMap<String, SceneDataSet>();
+	public Map<String, SceneDataSet> objectArrayDic = new ConcurrentHashMap<String, SceneDataSet>();
 	// 所有对象实例清单
 	public SceneDataSet objectArrayAll = new SceneDataSet(false);
 	public ConcurrentHashMap<String, ConcurrentHashMap<String, String>> info2point = new ConcurrentHashMap<String, ConcurrentHashMap<String, String>>();
 	// 对象类型到map,map里面是id到对象值。只有关联表里面的对象才有
-	public Map<String, Map<String, SceneDataObject>> objType2id2Value = new HashMap<String, Map<String, SceneDataObject>>();
+	public Map<String, Map<String, SceneDataObject>> objType2id2Value = new ConcurrentHashMap<String, Map<String, SceneDataObject>>();
 	// 图类型到边类型到变实例清单
-	public Map<String, Map<String, SceneDataSet>> relationArrayDic = new HashMap<String, Map<String, SceneDataSet>>();
-	public Map<String, SceneDataSet> graphCodeDic = new HashMap<String, SceneDataSet>();
-	public Map<String, SceneDataSet> relCodeDic = new HashMap<String, SceneDataSet>();
+	public Map<String, Map<String, SceneDataSet>> relationArrayDic = new ConcurrentHashMap<String, Map<String, SceneDataSet>>();
+	public Map<String, SceneDataSet> graphCodeDic = new ConcurrentHashMap<String, SceneDataSet>();
+	public Map<String, SceneDataSet> relCodeDic = new ConcurrentHashMap<String, SceneDataSet>();
 	public SceneDataSet relationAll = new SceneDataSet(false);
 	// 对象id到JSONObject
-	public Map<String, JSONObject> id2object = new HashMap<String, JSONObject>();
+	public Map<String, JSONObject> id2object = new ConcurrentHashMap<String, JSONObject>();
 	// 对象id到SceneDataValue
-	public Map<String, SceneDataObject> id2sdv = new HashMap<String, SceneDataObject>();
+	public Map<String, SceneDataObject> id2sdv = new ConcurrentHashMap<String, SceneDataObject>();
 
 	// 管理范围
 	public SceneDataSet ZKTClassArray = new SceneDataSet(false);
-	public Map<String, Map<String, SceneDataSet>> ZKTObjectArrayDic = new HashMap<String, Map<String, SceneDataSet>>();
+	public Map<String, Map<String, SceneDataSet>> ZKTObjectArrayDic = new ConcurrentHashMap<String, Map<String, SceneDataSet>>();
 	public SceneDataSet ZKTAlarmTypeArray = new SceneDataSet(false);
 
 	// 编组
 	public SceneDataSet IBMSGroupArray = new SceneDataSet(false);
-	public Map<String, Map<String, SceneDataSet>> IBMSArrayDic = new HashMap<String, Map<String, SceneDataSet>>();
+	public Map<String, Map<String, SceneDataSet>> IBMSArrayDic = new ConcurrentHashMap<String, Map<String, SceneDataSet>>();
 
 	// 日历模式:周期性刷新,不需要拷贝
 	public SceneDataSet IBMSCalendarModel = new SceneDataSet(false, true);

+ 8 - 8
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ToolUtil.java

@@ -1,7 +1,7 @@
 package com.persagy.ibms.data.sdk.util;
 
-import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -30,7 +30,7 @@ public class ToolUtil {
 		Map<String, JSONObject> GeneralZoneMap = getMap_object("space", "GeneralZone");
 
 		JSONArray louceng = getArray_relation("MechInArch", "Eq2Fl", null);
-		Map<String, String> SELTCC2floor = new HashMap<String, String>();
+		Map<String, String> SELTCC2floor = new ConcurrentHashMap<String, String>();
 		for (int i = 0; i < louceng.size(); i++) {
 			JSONObject item = (JSONObject) louceng.get(i);
 			String objFrom = item.getString("objFrom");
@@ -39,7 +39,7 @@ public class ToolUtil {
 		}
 
 		JSONArray kongzhi = getArray_relation("MechCtrl", "EqCtrl", null);
-		Map<String, String> SELTCC2SELTCU = new HashMap<String, String>();
+		Map<String, String> SELTCC2SELTCU = new ConcurrentHashMap<String, String>();
 		for (int i = 0; i < kongzhi.size(); i++) {
 			JSONObject item = (JSONObject) kongzhi.get(i);
 			String objFrom = item.getString("objFrom");
@@ -48,7 +48,7 @@ public class ToolUtil {
 		}
 
 		JSONArray gongdian = getArray_relation("MechPower", "EqNormal", null);
-		Map<String, String> SELTCU2SETDLS = new HashMap<String, String>();
+		Map<String, String> SELTCU2SETDLS = new ConcurrentHashMap<String, String>();
 		for (int i = 0; i < gongdian.size(); i++) {
 			JSONObject item = (JSONObject) gongdian.get(i);
 			String objFrom = item.getString("objFrom");
@@ -57,7 +57,7 @@ public class ToolUtil {
 		}
 
 		JSONArray suozai = getArray_relation("MechInArch", "Eq2Sp", "GeneralZone");
-		Map<String, String> SETDLS2GeneralZone = new HashMap<String, String>();
+		Map<String, String> SETDLS2GeneralZone = new ConcurrentHashMap<String, String>();
 		for (int i = 0; i < suozai.size(); i++) {
 			JSONObject item = (JSONObject) suozai.get(i);
 			String objFrom = item.getString("objFrom");
@@ -86,8 +86,8 @@ public class ToolUtil {
 
 		JSONArray level1Array = new JSONArray();
 		JSONArray level2Array = new JSONArray();
-		Map<String, Boolean> level1Map = new HashMap<String, Boolean>();
-		Map<String, Boolean> level2Map = new HashMap<String, Boolean>();
+		Map<String, Boolean> level1Map = new ConcurrentHashMap<String, Boolean>();
+		Map<String, Boolean> level2Map = new ConcurrentHashMap<String, Boolean>();
 		JSONArray huiluArray = new JSONArray();
 		for (String SELTCC : SELTCC2SELTCU.keySet()) {
 			if (!SELTCC2SELTCU.containsKey(SELTCC)) {
@@ -225,7 +225,7 @@ public class ToolUtil {
 	}
 
 	public static Map<String, JSONObject> getMap_object(String objType, String classCode) {
-		Map<String, JSONObject> floorMap = new HashMap<String, JSONObject>();
+		Map<String, JSONObject> floorMap = new ConcurrentHashMap<String, JSONObject>();
 		JSONArray floorArray = getArray_object(objType, classCode);
 		for (int i = 0; i < floorArray.size(); i++) {
 			JSONObject item = (JSONObject) floorArray.get(i);