Browse Source

完善清理功能

menglu 3 years ago
parent
commit
a788edde4f

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

@@ -211,7 +211,7 @@
 		<dependency>
 			<groupId>com.persagy</groupId>
 			<artifactId>sailfish</artifactId>
-			<version>0.0.11</version>
+			<version>0.0.12</version>
 		</dependency>
 	</dependencies>
 

+ 21 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/DaemonThread.java

@@ -1,5 +1,6 @@
 package com.persagy.ibms.data.sdk.service;
 
+import java.io.File;
 import java.net.URI;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -45,6 +46,13 @@ public class DaemonThread extends Thread {
 		// 没有就下载
 		{
 			Date currTime = new Date();
+			String[] pathArray = { Constant.physical_world, Constant.zkt_physical_world, Constant.config, Constant.ibms_physical_world };
+			for (String path : pathArray) {
+				File root = new File(path);
+				if (!root.exists()) {
+					root.mkdir();
+				}
+			}
 			try {
 				String validPath = Constant.getLatestPath(Constant.physical_world, true);
 				if (validPath == null) {
@@ -59,6 +67,19 @@ public class DaemonThread extends Thread {
 				log.error(e.getMessage(), e);
 			}
 			try {
+				String validPath = Constant.getLatestPath(Constant.zkt_physical_world, true);
+				if (validPath == null) {
+					while (true) {
+						boolean changed_physical_world = RWDDownloadUtil.Process_zkt_physical_world();
+						if (changed_physical_world) {
+							break;
+						}
+					}
+				}
+			} catch (Exception e) {
+				log.error(e.getMessage(), e);
+			}
+			try {
 				String validPath = Constant.getLatestPath(Constant.config, false);
 				if (validPath == null) {
 					String tmpPath = Constant.config + Constant.getSeperator() + sdf.format(currTime) + ".json";

+ 5 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/RefreshThread.java

@@ -99,12 +99,15 @@ public class RefreshThread extends Thread {
 		File tmp = new File(tmpPath);
 
 		boolean compare_valid = FileUtil.compareRecursive(valid, tmp);
+		boolean result;
 		if (!compare_valid) {
 			Date currTime = new Date();
 			tmp.renameTo(new File(Constant.config + Constant.getSeperator() + sdf.format(currTime) + ".json"));
-			return true;
+			result = true;
 		} else {
-			return false;
+			result = false;
 		}
+		RWDDownloadUtil.Clear(Constant.config, false);
+		return result;
 	}
 }

+ 55 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/Constant.java

@@ -25,6 +25,8 @@ public class Constant {
 	public static String zkt_monitor_url;
 	public static String physical_world;
 	public static boolean physical_world_download_enable;
+	public static String zkt_physical_world;
+	public static boolean zkt_physical_world_download_enable;
 	public static String ibms_physical_world;
 	public static boolean ibms_physical_world_download_enable;
 	public static String config;
@@ -96,6 +98,12 @@ public class Constant {
 						physical_world = element.attribute("path").getValue();
 						physical_world_download_enable = Boolean.parseBoolean(element.attribute("download_enable").getValue());
 					}
+					iter = document.selectNodes("/root/zkt_physical_world").iterator();
+					if (iter.hasNext()) {
+						element = (Element) iter.next();
+						zkt_physical_world = element.attribute("path").getValue();
+						zkt_physical_world_download_enable = Boolean.parseBoolean(element.attribute("download_enable").getValue());
+					}
 					iter = document.selectNodes("/root/ibms_physical_world").iterator();
 					if (iter.hasNext()) {
 						element = (Element) iter.next();
@@ -218,6 +226,53 @@ public class Constant {
 		return null;
 	}
 
+	public static List<String> getValidPath(String parentPath, boolean return_dir) {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+		File file = new File(parentPath);
+		if (file.isDirectory()) {
+			File[] files = file.listFiles();
+			if (return_dir) {
+				List<String> nameList = new ArrayList<String>();
+				for (File fileIndex : files) {
+					if (fileIndex.isDirectory()) {
+						try {
+							sdf.parse(fileIndex.getName());
+							nameList.add(fileIndex.getName());
+						} catch (ParseException e) {
+							// e.printStackTrace();
+						}
+					}
+				}
+				if (nameList.size() > 0) {
+					Collections.sort(nameList);
+					Collections.reverse(nameList);
+					return nameList;
+				}
+			} else {
+				List<String> nameList = new ArrayList<String>();
+				for (File fileIndex : files) {
+					if (!fileIndex.isDirectory()) {
+						if (fileIndex.getName().endsWith(".json")) {
+							String nameTrim = fileIndex.getName().substring(0, fileIndex.getName().length() - ".json".length());
+							try {
+								sdf.parse(nameTrim);
+								nameList.add(nameTrim);
+							} catch (ParseException e) {
+								// e.printStackTrace();
+							}
+						}
+					}
+				}
+				if (nameList.size() > 0) {
+					Collections.sort(nameList);
+					Collections.reverse(nameList);
+					return nameList;
+				}
+			}
+		}
+		return null;
+	}
+
 	public static String getSeperator() {
 		if (System.getProperty("os.name").equals("Linux") || System.getProperty("os.name").equals("Mac OS X")) {
 			return "/";

+ 4 - 6
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/FileUtil.java

@@ -7,9 +7,6 @@ import java.io.OutputStreamWriter;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.persagy.ibms.core.util.FastJsonCompareUtil;
-import com.persagy.ibms.core.util.FastJsonReaderUtil;
-
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
@@ -73,9 +70,10 @@ public class FileUtil {
 
 			return true;
 		} else if (file1.isFile() && file2.isFile()) {
-			Object json1 = FastJsonReaderUtil.Instance().Read(file1);
-			Object json2 = FastJsonReaderUtil.Instance().Read(file2);
-			boolean file_compare = FastJsonCompareUtil.Instance().CompareObject(json1, json2);
+			// Object json1 = FastJsonReaderUtil.Instance().Read(file1);
+			// Object json2 = FastJsonReaderUtil.Instance().Read(file2);
+			// boolean file_compare = FastJsonCompareUtil.Instance().CompareObject(json1, json2);
+			boolean file_compare = file1.length() == file2.length();
 			log.debug("Compare " + file1.getPath() + " " + file2.getPath() + "\t" + file_compare);
 			return file_compare;
 		} else {

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

@@ -71,6 +71,7 @@ public class RWDDownloadUtil {
 		// 检查一致性
 		boolean compare = FileUtil.compareRecursive(dir1, dir2);
 		log.debug("Compare tmp1" + (compare ? "==" : "!=") + "tmp2");
+		boolean result;
 		if (compare) {
 			File valid = null;
 			if (validPath != null) {
@@ -80,22 +81,24 @@ public class RWDDownloadUtil {
 				boolean compare_valid = FileUtil.compareRecursive(valid, dir2);
 				log.debug("Compare valid" + (compare_valid ? "==" : "!=") + "tmp2");
 				if (compare_valid) {
-					return false;
+					result = false;
 				} else {
 					// 移动tmp2
 					Date currTime = new Date();
 					dir2.renameTo(new File(Constant.physical_world + Constant.getSeperator() + sdf.format(currTime)));
-					return true;
+					result = true;
 				}
 			} else {
 				// 移动tmp2
 				Date currTime = new Date();
 				dir2.renameTo(new File(Constant.physical_world + Constant.getSeperator() + sdf.format(currTime)));
-				return true;
+				result = true;
 			}
 		} else {
-			return false;
+			result = false;
 		}
+		Clear(Constant.physical_world, true);
+		return result;
 	}
 
 	public static void LoadPhysicalWorld(String path) throws Exception {
@@ -135,15 +138,12 @@ public class RWDDownloadUtil {
 		}
 		for (int i = 0; i < classArray.size(); i++) {
 			JSONObject item = (JSONObject) classArray.get(i);
-			String objType = item.getString("objType");
 			String code = item.getString("code");
 			JSONArray infoArray;
 			{
 				JSONObject param = new JSONObject();
 				JSONObject criteria = new JSONObject();
-				criteria.put("objType", objType);
 				criteria.put("classCode", code);
-				criteria.put("valid", 1);
 				param.put("criteria", criteria);
 				log.debug("Download info " + code);
 				String post_result = HttpClientUtil.post(Constant.rwd_url + "rwd/def/funcid?projectId=" + RepositoryContainer.RepositoryBase.projectId
@@ -207,4 +207,146 @@ public class RWDDownloadUtil {
 		}
 		log.debug("Download physical world finish " + path);
 	}
+
+	public static boolean Process_zkt_physical_world() throws Exception {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+		String validPath = Constant.getLatestPath(Constant.zkt_physical_world, true);
+		// 存储临时文件
+		File dir1;
+		{
+			String tmpPath = Constant.zkt_physical_world + Constant.getSeperator() + "tmp1";
+			dir1 = new File(tmpPath);
+			RWDDownloadUtil.LoadZKTPhysicalWorld(tmpPath);
+		}
+		File dir2;
+		{
+			String tmpPath = Constant.zkt_physical_world + Constant.getSeperator() + "tmp2";
+			dir2 = new File(tmpPath);
+			RWDDownloadUtil.LoadZKTPhysicalWorld(tmpPath);
+		}
+		// 检查一致性
+		boolean compare = FileUtil.compareRecursive(dir1, dir2);
+		log.debug("Compare tmp1" + (compare ? "==" : "!=") + "tmp2");
+		boolean result;
+		if (compare) {
+			File valid = null;
+			if (validPath != null) {
+				valid = new File(validPath);
+			}
+			if (valid != null && valid.exists()) {
+				boolean compare_valid = FileUtil.compareRecursive(valid, dir2);
+				log.debug("Compare valid" + (compare_valid ? "==" : "!=") + "tmp2");
+				if (compare_valid) {
+					result = false;
+				} else {
+					// 移动tmp2
+					Date currTime = new Date();
+					dir2.renameTo(new File(Constant.zkt_physical_world + Constant.getSeperator() + sdf.format(currTime)));
+					result = true;
+				}
+			} else {
+				// 移动tmp2
+				Date currTime = new Date();
+				dir2.renameTo(new File(Constant.zkt_physical_world + Constant.getSeperator() + sdf.format(currTime)));
+				result = true;
+			}
+		} else {
+			result = false;
+		}
+		Clear(Constant.zkt_physical_world, true);
+		return result;
+	}
+
+	public static void LoadZKTPhysicalWorld(String path) throws Exception {
+		log.debug("Download zkt physical world refresh dir");
+		FileUtil.deleteRecursive(new File(path));
+		{
+			File root = new File(path);
+			if (!root.exists()) {
+				root.mkdir();
+			}
+			File object = new File(path + Constant.getSeperator() + "object");
+			if (!object.exists()) {
+				object.mkdir();
+			}
+		}
+
+		log.debug("Download zkt physical world begin " + path);
+		JSONArray classArray;
+		{
+			JSONObject param = new JSONObject();
+			JSONObject criteria = new JSONObject();
+			criteria.put("ibms", true);
+			param.put("criteria", criteria);
+			String post_result = HttpClientUtil.post(Constant.rwd_url + "rwd/def/class?projectId=" + RepositoryContainer.RepositoryBase.projectId
+					+ "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode, param.toJSONString());
+			JSONObject resultJSON = JSON.parseObject(post_result);
+			classArray = resultJSON.getJSONArray("data");
+			classArray = classArray == null ? new JSONArray() : classArray;
+			FileUtil.Save(path + Constant.getSeperator() + "classArray.json", FastJsonUtil.toFormatString(classArray));
+		}
+		for (int i = 0; i < classArray.size(); i++) {
+			JSONObject item = (JSONObject) classArray.get(i);
+			String ibmsSceneCode = item.getString("ibmsSceneCode");
+			String ibmsClassCode = item.getString("ibmsClassCode");
+			JSONArray infoArray;
+			{
+				JSONObject param = new JSONObject();
+				JSONObject criteria = new JSONObject();
+				criteria.put("ibmsSceneCode", ibmsSceneCode);
+				criteria.put("ibmsClassCode", ibmsClassCode);
+				param.put("criteria", criteria);
+				log.debug("Download object " + ibmsSceneCode + "-" + ibmsClassCode);
+				String post_result = HttpClientUtil.post(Constant.rwd_url + "rwd/instance/object/query?projectId="
+						+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode,
+						param.toJSONString());
+				JSONObject resultJSON = JSON.parseObject(post_result);
+				infoArray = resultJSON.getJSONArray("data");
+			}
+			infoArray = infoArray == null ? new JSONArray() : infoArray;
+			File sceneDir = new File(path + Constant.getSeperator() + "object" + Constant.getSeperator() + ibmsSceneCode);
+			if (!sceneDir.exists()) {
+				sceneDir.mkdir();
+			}
+			FileUtil.Save(path + Constant.getSeperator() + "object" + Constant.getSeperator() + ibmsSceneCode + Constant.getSeperator()
+					+ ibmsClassCode + ".json", FastJsonUtil.toFormatString(infoArray));
+		}
+		Map<String, Map<String, Integer>> relDic = new HashMap<String, Map<String, Integer>>();
+		ExcelRelationUtil.ReadRel(Constant.GetPath() + Constant.getSeperator() + "relation.xlsx", relDic);
+		log.debug("Download zkt physical world finish " + path);
+	}
+
+	public static void Clear(String path, boolean is_dir) throws Exception {
+		if (is_dir) {
+			{
+				String tmpPath = path + Constant.getSeperator() + "tmp1";
+				File dir1 = new File(tmpPath);
+				if (dir1.exists()) {
+					FileUtil.deleteRecursive(dir1);
+				}
+			}
+			{
+				String tmpPath = path + Constant.getSeperator() + "tmp2";
+				File dir2 = new File(tmpPath);
+				if (dir2.exists()) {
+					FileUtil.deleteRecursive(dir2);
+				}
+			}
+		} else {
+			String tmpPath = path + Constant.getSeperator() + "tmp" + ".json";
+			File dir1 = new File(tmpPath);
+			if (dir1.exists()) {
+				FileUtil.deleteRecursive(dir1);
+			}
+		}
+
+		List<String> pathList = Constant.getValidPath(path, is_dir);
+		if (pathList != null && pathList.size() > 3) {
+			for (int i = 3; i < pathList.size(); i++) {
+				String pathInner = pathList.get(i);
+				File file = new File(path + Constant.getSeperator() + pathInner);
+				FileUtil.deleteRecursive(file);
+			}
+		}
+	}
 }

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

@@ -205,12 +205,13 @@ public class RWDLoadUtil {
 			Repository.relCodeDic = relCodeDic;
 		}
 
-		for (String classCode : Repository.objectArrayDic.keySet()) {
-			if (Repository.objTypeMap.containsKey(classCode)) {
+		for (String key : Repository.objectArrayDic.keySet()) {
+			if (Repository.objTypeMap.containsKey(key)) {
 				continue;
 			}
+			String classCode = key.endsWith("-self") ? key.substring(0, key.length() - "-self".length()) : key;
 			SceneDataSet infoArray = Repository.infoArrayDic.get(classCode);
-			SceneDataSet objectArray = Repository.objectArrayDic.get(classCode);
+			SceneDataSet objectArray = Repository.objectArrayDic.get(key);
 			for (int index_object = 0; index_object < objectArray.set.size(); index_object++) {
 				SceneDataObject obj = objectArray.set.get(index_object);
 				String obj_id = (String) obj.get("id").value_prim.value;
@@ -478,6 +479,45 @@ public class RWDLoadUtil {
 		}
 	}
 
+	public static void LoadZKTPhysicalWorld(RepositoryImpl Repository) throws Exception {
+		String validPath = Constant.getLatestPath(Constant.zkt_physical_world, true);
+
+		String objectPath = validPath + Constant.getSeperator() + "object";
+		{
+			Map<String, Map<String, SceneDataSet>> objectArrayDicZKT = new HashMap<String, Map<String, SceneDataSet>>();
+			JSONArray classArray = FastJsonReaderUtil.Instance().ReadJSONArray(new File(validPath + Constant.getSeperator() + "classArray.json"));
+			for (int i = 0; i < classArray.size(); i++) {
+				JSONObject classItem = (JSONObject) classArray.get(i);
+				String ibmsSceneCode = (String) classItem.get("ibmsSceneCode");
+				String ibmsClassCode = (String) classItem.get("ibmsClassCode");
+				String code = (String) classItem.get("code");
+				if (!objectArrayDicZKT.containsKey(ibmsSceneCode)) {
+					objectArrayDicZKT.put(ibmsSceneCode, new HashMap<String, SceneDataSet>());
+				}
+				Map<String, SceneDataSet> mapInner = objectArrayDicZKT.get(ibmsSceneCode);
+				log.info(objectPath + Constant.getSeperator() + ibmsSceneCode + " " + ibmsClassCode);
+				JSONArray array = FastJsonReaderUtil.Instance().ReadJSONArray(
+						new File(objectPath + Constant.getSeperator() + ibmsSceneCode + Constant.getSeperator() + ibmsClassCode + ".json"));
+				SceneDataSet SceneDataSet = new SceneDataSet(false);
+				SceneDataSet infoArray = Repository.infoArrayDic.get(code);
+				for (SceneDataObject infoJSON : infoArray.set) {
+					if (RWDUtil.getInfoType(infoJSON) != 0) {
+						String info_code = (String) infoJSON.get("code").value_prim.value;
+						SceneDataSet.setColChange(info_code);
+					}
+				}
+				for (int ii = 0; ii < array.size(); ii++) {
+					JSONObject arrayItem = array.getJSONObject(ii);
+					String id = (String) arrayItem.get("id");
+					SceneDataObject sdo = Repository.id2sdv.get(id);
+					SceneDataSet.set.add(sdo);
+				}
+				mapInner.put(code, SceneDataSet);
+			}
+			Repository.objectArrayDicZKT = objectArrayDicZKT;
+		}
+	}
+
 	public static void LoadIBMSPhysicalWorld(RepositoryImpl Repository) throws Exception {
 		String validPath = Constant.getLatestPath(Constant.ibms_physical_world, true);
 		File[] dirs = (new File(validPath)).listFiles(new FileFilter() {
@@ -506,7 +546,7 @@ public class RWDLoadUtil {
 			}
 			Repository.IBMSArrayDic.put(product, infoArrayDic);
 
-			if (product.equals("NightscapeLighting") || product.equals("PublicLighting")) {
+			if (product.equals("yjzm") || product.equals("ggzm")) {
 				if (!Repository.IBMSArrayDic.containsKey(product)) {
 					continue;
 				}
@@ -527,7 +567,7 @@ public class RWDLoadUtil {
 						equipment.put("一级编组名称", sdo.get("一级编组名称"));
 						equipment.put("二级编组名称", sdo.get("二级编组名称"));
 						equipment.put("编组类型", sdo.get("编组类型"));
-						if (product.equals("PublicLighting")) {
+						if (product.equals("ggzm")) {
 							equipment.put("楼层名称", sdo.get("楼层名称"));
 						}
 					}

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

@@ -23,6 +23,8 @@ public class RWDRepositoryUtil {
 		if (load_physical_world) {
 			log.warn("LoadPhysicalWorld");
 			RWDLoadUtil.LoadPhysicalWorld(Repository);
+			log.warn("LoadZKTPhysicalWorld");
+			RWDLoadUtil.LoadZKTPhysicalWorld(Repository);
 			log.warn("LoadReference");
 			RWDLoadUtil.LoadReference(Repository);
 			log.warn("LoadAlarm");
@@ -38,6 +40,7 @@ public class RWDRepositoryUtil {
 			Repository.code2objTypeMap = RepositoryContainer.instance.code2objTypeMap;
 			Repository.infoArrayDic = RepositoryContainer.instance.infoArrayDic;
 			Repository.objectArrayDic = RepositoryContainer.instance.objectArrayDic;
+			Repository.objectArrayDicZKT = RepositoryContainer.instance.objectArrayDicZKT;
 			Repository.objectArrayAll = RepositoryContainer.instance.objectArrayAll;
 			Repository.objType2id2Value = RepositoryContainer.instance.objType2id2Value;
 			Repository.relationArrayDic = RepositoryContainer.instance.relationArrayDic;
@@ -75,7 +78,7 @@ public class RWDRepositoryUtil {
 		log.warn("computeAll");
 		ComputeUtil.computeAll(Repository, spListList);
 		try {
-			DeamonUtil.Process(Repository);
+//			DeamonUtil.Process(Repository);
 		} catch (Exception e) {
 			log.error(e.getMessage(), e);
 		}

+ 6 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RepositoryImpl.java

@@ -24,6 +24,8 @@ public class RepositoryImpl extends RepositoryBase {
 	public Map<String, SceneDataSet> infoArrayDic = new HashMap<String, SceneDataSet>();
 	// 对象类型到对象实例清单
 	public Map<String, SceneDataSet> objectArrayDic = new HashMap<String, SceneDataSet>();
+	// 对象类型到对象实例清单
+	public Map<String, Map<String, SceneDataSet>> objectArrayDicZKT = new HashMap<String, Map<String, SceneDataSet>>();
 	// 所有对象实例清单
 	public SceneDataSet objectArrayAll = new SceneDataSet(false);
 	public ConcurrentHashMap<String, ConcurrentHashMap<String, String>> info2point = new ConcurrentHashMap<String, ConcurrentHashMap<String, String>>();
@@ -95,6 +97,10 @@ public class RepositoryImpl extends RepositoryBase {
 				result = new SceneDataSet(false);
 				result.setRowChange(false);
 			}
+		} else if (Source.equals("zkt")) {
+			String ibmsSceneCode = (descSet.get("ibmsSceneCode")).toString();
+			String ibmsClassCode = (descSet.get("ibmsClassCode")).toString();
+			result = this.objectArrayDicZKT.get(ibmsSceneCode).get(ibmsClassCode);
 		} else if (Source.equals("ibms")) {
 			String product = (descSet.get("product")).toString();
 			String type = (descSet.get("type")).toString();

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

@@ -15,9 +15,9 @@ public class ToolUtil {
 		String result = null;
 		JSONObject paramObject = JSON.parseObject(param);
 		String type = (String) paramObject.get("type");
-		if (type.equals("NightscapeLighting")) {
+		if (type.equals("yjzm")) {
 			result = Lighting(false);
-		} else if (type.equals("PublicLighting")) {
+		} else if (type.equals("ggzm")) {
 			result = Lighting(true);
 		}
 		return result;

+ 16 - 13
ibms-data-sdk/src/main/resources/config.xml

@@ -1,24 +1,27 @@
 <?xml version="1.0" encoding="utf-8"?>
 <root>
-	<groupCode>XG</groupCode>
-	<projectId>Pj5001120003</projectId>
-	<sdk_version>SDK-L</sdk_version>
+	<groupCode>WD</groupCode>
+	<projectId>Pj4403070003</projectId>
+	<sdk_version>SDK-D</sdk_version>
 	<!-- rwd的服务地址 -->
-	<rwd url="http://39.102.54.110:8082/" />
-	<physical_world path="L-physical_world" download_enable="false" />
+	<!-- <rwd url="http://192.168.100.33:9909/dmp-rwd/" /> -->
+	<rwd url="http://192.168.0.30:7707/" />
+	<physical_world path="D-physical_world" download_enable="true" />
+	<zkt_physical_world path="D-zkt_physical_world" download_enable="true" />
+	<ibms_physical_world path="D-ibms_physical_world" download_enable="false" />
 	<!-- zkt-monitor的服务地址 -->
-	<zkt_monitor url="http://39.102.43.179:9982/" />
-	<config path="L-config" download_enable="false" />
+	<zkt_monitor url="http://192.168.100.33:9909/zkt-monitor/" />
+	<config path="D-config" download_enable="true" />
 	<!-- iot的websocket地址 -->
-	<iot_websocket url="ws://39.102.43.179:9994/websocket" />
+	<!-- <iot_websocket url="ws://192.168.0.30:8868/websocket" /> -->
+	<iot_websocket url="ws://192.168.100.33:8858/websocket" />
 	<!-- iot-collect的服务地址 -->
-<!--	<iot_collect url="http://39.102.43.179:9982/" />-->
-	<iot_collect url="http://39.102.43.179:9991/" />
+	<iot_collect url="http://192.168.100.33:9909/iot-collect/" />
 	<!-- iot-project的服务地址 -->
-<!--	<iot_project url="http://39.102.43.179:9993/" />-->
-	<iot_project url="http://39.96.55.242:9993/" />
+	<!-- <iot_project url="http://192.168.0.30:8862/" /> -->
+	<iot_project url="http://192.168.100.33:9909/iot-project/" />
 	<!-- 报警的websocket地址和服务地址 -->
-	<alarm enable="true" websocket="ws://39.102.43.179:9983/webSocketServer" rest="http://39.102.40.239:9970/zkt-alarm/"/>
+	<alarm enable="true" websocket="ws://192.168.100.33:8825/webSocketServer" rest="http://192.168.100.33:9909/zkt-alarm/" />
 
 	<ConfigRelation graphCode="ArchSubset" relCode="Bd2Fl" objFrom="building" objTo="floor" nameInTo="所属建筑" multiplicityTo="1" />
 	<ConfigRelation graphCode="ArchSubset" relCode="Bd2Sp" objFrom="building" objTo="space" nameInTo="所属建筑" multiplicityTo="1" />