Browse Source

查询前后续

menglu 3 years ago
parent
commit
173332dc52

+ 3 - 5
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/DaemonThread.java

@@ -79,8 +79,7 @@ public class DaemonThread extends Thread {
 			dir_already = true;
 		}
 
-		// Constant.test = true;
-		if (Constant.test) {
+		if (Constant.check) {
 			try {
 				CheckTest.test(new String[0]);
 			} catch (Exception e) {
@@ -139,10 +138,9 @@ public class DaemonThread extends Thread {
 				log.warn("ibms_physical_world: " + tmp_ibms_physical_world);
 			}
 			try {
-				Constant.debug = false;// 调试模式设为true
 				RepositoryImpl Repository = new RepositoryImpl();
-				Repository.use_thread = !Constant.debug;
-				Repository.enable_factor = true;
+				Repository.use_thread = Constant.use_thread;
+				Repository.enable_factor = Constant.enable_factor;
 				Repository.RepositoryBase = RepositoryContainer.RepositoryBase;
 				RWDRepositoryUtil.DoRepository(Repository, true);
 				RepositoryContainer.instance = Repository;

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

@@ -120,7 +120,8 @@ public class RefreshThread extends Thread {
 				try {
 					log.warn("recompute begin");
 					RepositoryImpl Repository = new RepositoryImpl();
-					Repository.use_thread = !Constant.debug;
+					Repository.use_thread = Constant.use_thread;
+					Repository.enable_factor = Constant.enable_factor;
 					Repository.RepositoryBase = RepositoryContainer.RepositoryBase;
 					RWDRepositoryUtil.DoRepository(Repository, changed_physical_world || changed_zkt_physical_world || changed_ibms_physical_world);
 					RepositoryContainer.instance = Repository;

+ 36 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/DependencyApi.java

@@ -0,0 +1,36 @@
+package com.persagy.ibms.data.sdk.service.rest;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.persagy.ibms.core.util.LogUtil;
+
+@RestController
+public class DependencyApi {
+
+	@PostMapping(path = { "/dependency_before", "/zkt-sdk/dependency_before" }, produces = "application/json;charset=UTF-8")
+	public String dependency_before(@RequestBody String param) {
+		try {
+			JSONObject paramJSON = (JSONObject) JSON.parse(param);
+			JSONObject result = DependencyUtil.dependency_before(paramJSON);
+			return JSONObject.toJSONString(result, SerializerFeature.WriteMapNullValue);
+		} catch (Exception e) {
+			return LogUtil.GetExceptionStackTrace(e);
+		}
+	}
+
+	@PostMapping(path = { "/dependency_after", "/zkt-sdk/dependency_after" }, produces = "application/json;charset=UTF-8")
+	public String dependency_after(@RequestBody String param) {
+		try {
+			JSONObject paramJSON = (JSONObject) JSON.parse(param);
+			JSONObject result = DependencyUtil.dependency_after(paramJSON);
+			return JSONObject.toJSONString(result, SerializerFeature.WriteMapNullValue);
+		} catch (Exception e) {
+			return LogUtil.GetExceptionStackTrace(e);
+		}
+	}
+}

+ 52 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/DependencyUtil.java

@@ -0,0 +1,52 @@
+package com.persagy.ibms.data.sdk.service.rest;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.persagy.ibms.core.data.SceneDataValue;
+import com.persagy.ibms.core.util.ComputeUtil;
+import com.persagy.ibms.data.sdk.util.RepositoryContainer;
+import com.persagy.ibms.data.sdk.util.RepositoryImpl;
+
+public class DependencyUtil {
+	public static JSONObject dependency_before(JSONObject param) throws Exception {
+		RepositoryImpl Repository = RepositoryContainer.instance;
+		JSONObject result = null;
+		String type = (String) param.get("type");
+		if (type.equals("path")) {
+			JSONArray path = (JSONArray) param.get("path");
+			String[] valuePath = new String[path.size()];
+			for (int i = 0; i < path.size(); i++) {
+				valuePath[i] = path.getString(i);
+			}
+			Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
+			if (valueObject instanceof SceneDataValue) {
+				SceneDataValue sdv = (SceneDataValue) valueObject;
+				result = Repository.dependency.get_before(sdv);
+			}
+		}
+		return result;
+	}
+
+	public static JSONObject dependency_after(JSONObject param) throws Exception {
+		RepositoryImpl Repository = RepositoryContainer.instance;
+		JSONObject result = null;
+		String type = (String) param.get("type");
+		if (type.equals("point")) {
+			String point = (String) param.get("point");
+			SceneDataValue sdv = RepositoryContainer.RepositoryBase.point2sdv.get(point);
+			result = Repository.dependency.get_after(Repository, sdv);
+		} else if (type.equals("path")) {
+			JSONArray path = (JSONArray) param.get("path");
+			String[] valuePath = new String[path.size()];
+			for (int i = 0; i < path.size(); i++) {
+				valuePath[i] = path.getString(i);
+			}
+			Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
+			if (valueObject instanceof SceneDataValue) {
+				SceneDataValue sdv = (SceneDataValue) valueObject;
+				result = Repository.dependency.get_after(Repository, sdv);
+			}
+		}
+		return result;
+	}
+}

+ 2 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/test/CheckTest.java

@@ -22,9 +22,9 @@ import lombok.extern.slf4j.Slf4j;
 public class CheckTest {
 
 	public static void test(String[] args) throws Exception {
-		Constant.debug = false;// 调试模式设为true
 		RepositoryImpl Repository = new RepositoryImpl();
-		Repository.use_thread = !Constant.debug;
+		Repository.use_thread = Constant.use_thread;
+		Repository.enable_factor = Constant.enable_factor;
 		Repository.RepositoryBase = RepositoryContainer.RepositoryBase;
 		RWDRepositoryUtil.DoRepository(Repository, true);
 		RepositoryContainer.instance = Repository;

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

@@ -24,8 +24,9 @@ import lombok.extern.slf4j.Slf4j;
 @SuppressWarnings({ "rawtypes" })
 @Slf4j
 public class Constant {
-	public static boolean test = false;
-	public static boolean debug = false;
+	public static boolean check = false;
+	public static boolean use_thread = true;
+	public static boolean enable_factor = true;
 	public static boolean clear_old_dir = true;
 
 	public static String sdk_version;