ソースを参照

适应新旧版本报警信息

menglu 3 年 前
コミット
bc67c2498d

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

@@ -39,6 +39,7 @@ public class Constant {
 	public static boolean alarm_enable;
 	public static String alarm_websocket;
 	public static String alarm_rest;
+	public static boolean alarm_rest_get;
 	public static Map<String, Boolean> objType_hasRelation = new HashMap<String, Boolean>();
 	public static List<ConfigRelation> ConfigRelationList = new ArrayList<ConfigRelation>();
 	public static Map<String, Boolean> keyWordMap = new HashMap<String, Boolean>();
@@ -143,6 +144,7 @@ public class Constant {
 						alarm_enable = Boolean.parseBoolean(element.attribute("enable").getValue());
 						alarm_websocket = element.attribute("websocket").getValue();
 						alarm_rest = element.attribute("rest").getValue();
+						alarm_rest_get = Boolean.parseBoolean(element.attribute("rest_get").getValue());
 					}
 
 					iter = document.selectNodes("/root/ConfigRelation").iterator();

+ 56 - 12
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDAlarmUtil.java

@@ -1,6 +1,8 @@
 package com.persagy.ibms.data.sdk.util;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import com.alibaba.fastjson.JSON;
@@ -82,6 +84,7 @@ public class RWDAlarmUtil {
 	}
 
 	public static synchronized int refresh() throws Exception {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
 		RepositoryContainer.RepositoryBase.alarmArray.set.clear();
 		String[] objIds = RepositoryContainer.RepositoryBase.id2alarmList.keySet().toArray(new String[0]);
 		for (String objId : objIds) {
@@ -89,18 +92,59 @@ public class RWDAlarmUtil {
 			RepositoryContainer.RepositoryBase.id2alarmCount.get(objId).value_prim.value = 0;
 		}
 
-		String post_url = Constant.alarm_rest + "/alarm/queryAlarmList";
-		JSONObject postParam = new JSONObject();
-		postParam.put("userId", "systemId");
-		postParam.put("groupCode", RepositoryContainer.RepositoryBase.groupCode);
-		postParam.put("projectId", RepositoryContainer.RepositoryBase.projectId);
-		JSONArray treatState = new JSONArray();
-		treatState.add(1);
-		treatState.add(2);
-		postParam.put("treatState", treatState);
-		String postResultString = HttpClientUtil.post(post_url, postParam.toJSONString());
-		JSONObject postResult = JSON.parseObject(postResultString);
-		JSONArray Content = (JSONArray) postResult.get("Content");
+		JSONArray Content;
+		if (Constant.alarm_rest_get) {
+			String get_url = Constant.alarm_rest + "/alarm-config/list?projectId=" + RepositoryContainer.RepositoryBase.projectId + "&groupCode="
+					+ RepositoryContainer.RepositoryBase.groupCode;
+			String getResultString = HttpClientUtil.get(get_url, null);
+			JSONObject getResult = JSON.parseObject(getResultString);
+			Content = (JSONArray) getResult.get("Item");
+			// triggerInfo
+			// triggerTime
+			for (int i = 0; i < Content.size(); i++) {
+				JSONObject ContentItem = Content.getJSONObject(i);
+				if (ContentItem.containsKey("triggerInfo")) {
+					String triggerInfoString = ContentItem.getString("triggerInfo");
+					JSONObject triggerInfo = JSON.parseObject(triggerInfoString);
+					ContentItem.put("triggerInfo", triggerInfo);
+				}
+
+				if (ContentItem.containsKey("triggerTime")) {
+					String triggerTimeString = ContentItem.getString("triggerTime");
+					Date triggerTime = sdf.parse(triggerTimeString);
+					ContentItem.put("triggerTime", triggerTime.getTime());
+				}
+				if (ContentItem.containsKey("endTime")) {
+					String endTimeString = ContentItem.getString("endTime");
+					Date endTime = sdf.parse(endTimeString);
+					ContentItem.put("endTime", endTime.getTime());
+				}
+				if (ContentItem.containsKey("createTime")) {
+					String createTimeString = ContentItem.getString("createTime");
+					Date createTime = sdf.parse(createTimeString);
+					ContentItem.put("createTime", createTime.getTime());
+				}
+				if (ContentItem.containsKey("updateTime")) {
+					String updateTimeString = ContentItem.getString("updateTime");
+					Date updateTime = sdf.parse(updateTimeString);
+					ContentItem.put("updateTime", updateTime.getTime());
+				}
+			}
+
+		} else {
+			String post_url = Constant.alarm_rest + "/alarm/queryAlarmList";
+			JSONObject postParam = new JSONObject();
+			postParam.put("userId", "systemId");
+			postParam.put("groupCode", RepositoryContainer.RepositoryBase.groupCode);
+			postParam.put("projectId", RepositoryContainer.RepositoryBase.projectId);
+			JSONArray treatState = new JSONArray();
+			treatState.add(1);
+			treatState.add(2);
+			postParam.put("treatState", treatState);
+			String postResultString = HttpClientUtil.post(post_url, postParam.toJSONString());
+			JSONObject postResult = JSON.parseObject(postResultString);
+			Content = (JSONArray) postResult.get("Content");
+		}
 		for (int i = 0; i < Content.size(); i++) {
 			RWDAlarmUtil.ProcessAlarm(Content.getJSONObject(i));
 		}

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

@@ -5,7 +5,7 @@
 	<sdk_version>SDK-D</sdk_version>
 	<!-- rwd的服务地址 -->
 	<!-- <rwd url="http://192.168.100.33:9909/dmp-rwd/" /> -->
-	<rwd url="http://192.168.0.30:7707/" />
+	<rwd url="http://192.168.100.33:9976/" />
 	<physical_world path="D-physical_world" refresh_enable="true" />
 	<zkt_physical_world path="D-zkt_physical_world" enable="true" refresh_enable="true" />
 	<ibms_physical_world path="D-ibms_physical_world" enable="true" refresh_enable="false" />
@@ -21,7 +21,7 @@
 	<!-- <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://192.168.100.33:8825/webSocketServer" rest="http://192.168.100.33:9909/zkt-alarm/" />
+	<alarm enable="true" websocket="ws://192.168.100.33:9909/webSocketServer" rest="http://192.168.100.33:9909/zkt-alarm/" rest_get="true" />
 
 	<ConfigRelation graphCode="ArchSubset" relCode="Bd2Fl" objFrom="building" objTo="floor" nameInTo="所属建筑" multiplicityTo="1" />
 	<ConfigRelation graphCode="ArchSubset" relCode="Bd2Sp" objFrom="building" objTo="space" nameInTo="所属建筑" multiplicityTo="1" />