Explorar el Código

增加照明模式

menglu hace 3 años
padre
commit
8746df354a

+ 97 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/LightingUtil.java

@@ -0,0 +1,97 @@
+package com.persagy.ibms.data.sdk.service.rest;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.persagy.ibms.core.data.SceneDataSet;
+import com.persagy.ibms.core.util.LogUtil;
+import com.persagy.ibms.core.util.QueryAssist;
+import com.persagy.ibms.core.util.QueryUtil;
+import com.persagy.ibms.data.sdk.util.Constant;
+import com.persagy.ibms.data.sdk.util.HttpClientUtil;
+import com.persagy.ibms.data.sdk.util.RepositoryContainer;
+import com.persagy.ibms.data.sdk.util.RepositoryImpl;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class LightingUtil {
+	public static String light_time_table(String param) {
+		RepositoryImpl Repository = RepositoryContainer.instance;
+
+		JSONObject result = new JSONObject();
+		try {
+			JSONObject paramJSON = JSON.parseObject(param);
+			String logicalGroupId = paramJSON.getString("logicalGroupId");
+
+			String ibmsSceneCode;
+			String tabName;
+			{
+				JSONObject sql_json = new JSONObject();
+				sql_json.put("QueryType", "select");
+				JSONObject Target = new JSONObject();
+				Target.put("Source", "ibms-group");
+				sql_json.put("Target", Target);
+				JSONObject Criteria = new JSONObject();
+				sql_json.put("Criteria", Criteria);
+				SceneDataSet SceneDataSet = (SceneDataSet) QueryUtil.query(Repository, null, sql_json, new QueryAssist());
+				JSONArray queryResult = SceneDataSet.toJSON(1);
+				if (queryResult.size() == 0) {
+					result.put("Result", "failure");
+					result.put("ResultMsg", "编组不存在");
+					result.put("ResultCode", 250);
+					return JSONObject.toJSONString(result, SerializerFeature.WriteMapNullValue);
+				}
+				JSONObject item = (JSONObject) queryResult.get(0);
+				ibmsSceneCode = item.getString("ibmsSceneCode");
+				tabName = Constant.SceneCode2TabName.get(ibmsSceneCode);
+				if (tabName == null) {
+					result.put("Result", "failure");
+					result.put("ResultMsg", "SceneCode cant find tabName: " + ibmsSceneCode);
+					result.put("ResultCode", 250);
+					return JSONObject.toJSONString(result, SerializerFeature.WriteMapNullValue);
+				}
+			}
+
+			String modelId;
+			{
+				JSONObject sql_json = new JSONObject();
+				sql_json.put("QueryType", "select");
+				JSONObject Target = new JSONObject();
+				Target.put("Source", "ibms-calendar");
+				sql_json.put("Target", Target);
+				JSONObject Criteria = new JSONObject();
+				Criteria.put("tabName", tabName);
+				sql_json.put("Criteria", Criteria);
+				SceneDataSet SceneDataSet = (SceneDataSet) QueryUtil.query(Repository, null, sql_json, new QueryAssist());
+				JSONArray queryResult = SceneDataSet.toJSON(1);
+				if (queryResult.size() == 0) {
+					result.put("Result", "failure");
+					result.put("ResultMsg", tabName + " 没有绑定模式");
+					result.put("ResultCode", 250);
+					return JSONObject.toJSONString(result, SerializerFeature.WriteMapNullValue);
+				}
+				JSONObject item = (JSONObject) queryResult.get(0);
+				modelId = item.getString("modelId");
+			}
+
+			JSONObject postBody = new JSONObject();
+			postBody.put("projectId", RepositoryContainer.RepositoryBase.projectId);
+			postBody.put("groupCode", RepositoryContainer.RepositoryBase.groupCode);
+			postBody.put("logicalGroupId", logicalGroupId);
+			postBody.put("modelId", modelId);
+
+			String url = Constant.zkt_control_url + "/control/lighting/console/query";
+			String postResult = HttpClientUtil.post(url, JSONObject.toJSONString(postBody, SerializerFeature.WriteMapNullValue));
+			return postResult;
+		} catch (Exception e) {
+			log.error("获取数据失败", e);
+			result.put("Result", "failure");
+			String message = LogUtil.GetExceptionStackTrace(e);
+			result.put("ResultMsg", message);
+			result.put("ResultCode", 250);
+			return JSONObject.toJSONString(result, SerializerFeature.WriteMapNullValue);
+		}
+	}
+}

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

@@ -267,6 +267,12 @@ public class RestApi {
 		return result;
 	}
 
+	@PostMapping(path = { "/light_time_table", "/zkt-sdk/light_time_table" }, produces = "application/json;charset=UTF-8")
+	public String light_time_table(@RequestBody String param, HttpServletRequest request) {
+		String result = LightingUtil.light_time_table(param);
+		return result;
+	}
+
 	@PostMapping(path = { "/getEquipStaticInfo", "/zkt-sdk/getEquipStaticInfo" }, produces = "application/json;charset=UTF-8")
 	public String getEquipStaticInfo(@RequestBody String param, HttpServletRequest request) {
 		String result = RestUtil.getEquipStaticInfo(param).toJSONString();

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

@@ -45,6 +45,8 @@ public class Constant {
 
 	public static String adm_project_url;
 
+	public static Map<String, String> SceneCode2TabName = new HashMap<String, String>();
+
 	public static Map<String, Boolean> objType_hasRelation = new HashMap<String, Boolean>();
 	public static List<ConfigRelation> ConfigRelationList = new ArrayList<ConfigRelation>();
 	public static Map<String, ConfigRedirect> ConfigRedirectMap = new HashMap<String, ConfigRedirect>();
@@ -161,6 +163,14 @@ public class Constant {
 					alarm_service_name = element.attribute("service_name").getValue();
 				}
 
+				iter = document.selectNodes("/root/SceneCode2TabName").iterator();
+				while (iter.hasNext()) {
+					element = (Element) iter.next();
+					String sceneCode = element.attribute("sceneCode").getValue();
+					String tabName = element.attribute("tabName").getValue();
+					SceneCode2TabName.put(sceneCode, tabName);
+				}
+
 				iter = document.selectNodes("/root/ConfigRelation").iterator();
 				while (iter.hasNext()) {
 					element = (Element) iter.next();

+ 4 - 3
ibms-data-sdk/src/main/resources/config.xml

@@ -23,9 +23,12 @@
 	<adm_project url="http://39.102.40.239:28888/" />
 	<!-- 报警的websocket地址、url服务地址、 service_name服务名(旧版本是zkt-alarm;新版本是ibms-alarm) -->
 	<!-- <alarm enable="true" websocket="ws://192.168.100.33:9909/webSocketServer" url="http://192.168.100.33:9909/zkt-alarm/" service_name="zkt-alarm" /> -->
-	<alarm enable="true" websocket="ws://192.168.100.76:8835/webSocketServer" url="http://192.168.100.33:9909/ibms-alarm/" service_name="ibms-alarm" />
+	<alarm enable="true" websocket="ws://192.168.100.76:8870/webSocketServer" url="http://192.168.100.33:9909/ibms-alarm/" service_name="ibms-alarm" />
 	<!-- <alarm enable="true" websocket="http://39.102.43.179:9993/webSocketServer" url="http://39.102.43.179:9993/" service_name="ibms-alarm" /> -->
 
+	<SceneCode2TabName sceneCode="ggzm" tabName="公共照明" />
+	<SceneCode2TabName sceneCode="yjzm" tabName="夜景照明" />
+
 	<!-- 数据中台物理世界对象初始加载的关系,供SDK配置中使用 -->
 	<ConfigRelation graphCode="ArchSubset" relCode="Bd2Fl" objFrom="building" objTo="floor" nameInTo="所属建筑" multiplicityTo="1" />
 	<ConfigRelation graphCode="ArchSubset" relCode="Bd2Sp" objFrom="building" objTo="space" nameInTo="所属建筑" multiplicityTo="1" />
@@ -45,7 +48,6 @@
 		<!-- 中转服务的header,有几项就写几行 -->
 		<header key="Content-Type" value="application/json" />
 	</Redirect>
-	
 	<Redirect code="香港置地最近24小时功率" http_request_type="post" url="http://39.102.43.179:9982/energy/24data/list">
 		<!-- 中转服务的header,有几项就写几行 -->
 		<header key="Content-Type" value="application/json" />
@@ -70,7 +72,6 @@
 		<!-- 中转服务的header,有几项就写几行 -->
 		<header key="Content-Type" value="application/json" />
 	</Redirect>
-	
 	<Redirect code="查询项目概括" http_request_type="get" url="http://39.102.43.179:9982/projectSummary/query">
 		<header key="Content-Type" value="application/json" />
 	</Redirect>