menglu před 3 roky
rodič
revize
9338dea62d

+ 20 - 16
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RedirectApi.java

@@ -1,5 +1,7 @@
 package com.persagy.ibms.data.sdk.service.rest;
 
+import java.net.URLEncoder;
+
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
@@ -34,25 +36,27 @@ public class RedirectApi {
 			resultJSON.put("ResultCode", 250);
 			return JSONObject.toJSONString(resultJSON, SerializerFeature.WriteMapNullValue);
 		}
-		String url = ConfigRedirect.url;
-		JSONObject urlParams = sql_json.getJSONObject("urlParams");
-		if (urlParams != null) {
-			StringBuffer sb = new StringBuffer();
-			for (String key : urlParams.keySet()) {
+		try {
+			String url = ConfigRedirect.url;
+			JSONObject urlParams = sql_json.getJSONObject("urlParams");
+			if (urlParams != null) {
+				StringBuffer sb = new StringBuffer();
+				for (String key : urlParams.keySet()) {
+					if (sb.length() > 0) {
+						sb.append("&");
+					}
+					sb.append(key + "=" + URLEncoder.encode(urlParams.get(key).toString(), "UTF-8"));
+				}
 				if (sb.length() > 0) {
-					sb.append("&");
+					url = url + "?" + sb.toString();
 				}
-				sb.append(key + "=" + urlParams.get(key));
 			}
-			url = url + "?" + sb.toString();
-		}
-		String urlSuffix = sql_json.getString("urlSuffix");
-		if (urlSuffix != null) {
-			url = url + urlSuffix;
-		}
-		try {
+			String urlSuffix = sql_json.getString("urlSuffix");
+			if (urlSuffix != null) {
+				url = url + urlSuffix;
+			}
 			if (ConfigRedirect.http_request_type.equals("get")) {
-				result = HttpClientUtil.get(url);
+				result = HttpClientUtil.get(url, null, ConfigRedirect.headerMap);
 			} else {
 				Object postBody = sql_json.get("postBody");
 				String postString;
@@ -63,7 +67,7 @@ public class RedirectApi {
 				} else {
 					postString = postBody.toString();
 				}
-				result = HttpClientUtil.post(url, postString);
+				result = HttpClientUtil.post(url, postString, null, ConfigRedirect.headerMap);
 			}
 		} catch (Exception e) {
 			log.error(e.getMessage(), e);

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

@@ -665,7 +665,7 @@ public class RestUtil {
 			// http://39.102.40.239:28888/labsl/graph/pub/query
 			// String post_url ="http://39.102.40.239:28888"+ "/labsl/graph/pub/query";
 			String post_url = Constant.adm_project_url + "/labsl/graph/pub/query";
-			String post_result = HttpClientUtil.post(post_url, postJSON.toJSONString(), head);
+			String post_result = HttpClientUtil.post(post_url, postJSON.toJSONString(), null, head);
 			// 4.解析返回结果
 			JSONObject resultJSON = JSON.parseObject(post_result);
 			Map<String, String> map = new HashMap<>();

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

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

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

@@ -201,6 +201,13 @@ public class Constant {
 					ConfigRedirect.http_request_type = element.attribute("http_request_type").getValue();
 					ConfigRedirect.url = element.attribute("url").getValue();
 					ConfigRedirectMap.put(ConfigRedirect.code, ConfigRedirect);
+					Iterator iterInner = element.selectNodes("header").iterator();
+					while (iterInner.hasNext()) {
+						Element elementInner = (Element) iterInner.next();
+						String key = elementInner.attribute("key").getValue();
+						String value = elementInner.attribute("value").getValue();
+						ConfigRedirect.headerMap.put(key, value);
+					}
 				}
 			}
 		} catch (Exception e) {

+ 30 - 39
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/HttpClientUtil.java

@@ -18,41 +18,20 @@ public class HttpClientUtil {
 	private static final HttpClient client = HttpClients.createDefault();
 
 	public synchronized static String put(String url, String content) throws Exception {
-		String result = put(url, content, 300000);
+		String result = put(url, content, 300000, null);
 		return result;
 	}
 
-	public synchronized static String put(String url, String content, Integer timeout) throws Exception {
+	public synchronized static String put(String url, String content, Integer timeout, Map<String, String> headerMap) throws Exception {
 		HttpPut httpost = new HttpPut(url);
-		if (timeout != null) {
-			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout)
-					.setSocketTimeout(timeout).build();
-			httpost.setConfig(requestConfig);
+		if (headerMap != null) {
+			for (String key : headerMap.keySet()) {
+				httpost.setHeader(key, headerMap.get(key));
+			}
 		}
-		StringEntity entity = new StringEntity(content, "UTF-8");
-		httpost.setEntity(entity);
-		entity.setContentType("application/json");
-		HttpResponse httpResponse = client.execute(httpost);
-		InputStream is = httpResponse.getEntity().getContent();
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		int b = -1;
-		while ((b = is.read()) != -1) {
-			baos.write(b);
+		if (timeout == null) {
+			timeout = 300000;
 		}
-		baos.close();
-		is.close();
-
-		String result = baos.toString("UTF-8");
-		return result;
-	}
-
-	public synchronized static String post(String url, String content) throws Exception {
-		String result = post(url, content, 300000);
-		return result;
-	}
-
-	public synchronized static String post(String url, String content, Integer timeout) throws Exception {
-		HttpPost httpost = new HttpPost(url);
 		if (timeout != null) {
 			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout)
 					.setSocketTimeout(timeout).build();
@@ -76,12 +55,20 @@ public class HttpClientUtil {
 	}
 
 	public synchronized static String get(String url) throws Exception {
-		String result = get(url, 300000);
+		String result = get(url, 300000, null);
 		return result;
 	}
 
-	public synchronized static String get(String url, Integer timeout) throws Exception {
+	public synchronized static String get(String url, Integer timeout, Map<String, String> headerMap) throws Exception {
 		HttpGet httpget = new HttpGet(url);
+		if (headerMap != null) {
+			for (String key : headerMap.keySet()) {
+				httpget.setHeader(key, headerMap.get(key));
+			}
+		}
+		if (timeout == null) {
+			timeout = 300000;
+		}
 		if (timeout != null) {
 			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout)
 					.setSocketTimeout(timeout).build();
@@ -103,23 +90,27 @@ public class HttpClientUtil {
 		return result;
 	}
 
-	public synchronized static String post(String url, String content, Map<String, String> headParam) throws Exception {
-		return post(url, content, headParam, 300000);
+	public synchronized static String post(String url, String content) throws Exception {
+		String result = post(url, content, 300000, null);
+		return result;
 	}
 
-	public synchronized static String post(String url, String content, Map<String, String> headParam, Integer timeout) throws Exception {
+	public synchronized static String post(String url, String content, Integer timeout, Map<String, String> headerMap) throws Exception {
 		HttpPost httpost = new HttpPost(url);
+		if (headerMap != null) {
+			for (String key : headerMap.keySet()) {
+				httpost.setHeader(key, headerMap.get(key));
+			}
+		}
+		if (timeout == null) {
+			timeout = 300000;
+		}
 		if (timeout != null) {
 			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout)
 					.setSocketTimeout(timeout).build();
 			httpost.setConfig(requestConfig);
 		}
 		StringEntity entity = new StringEntity(content, "UTF-8");
-		if (headParam != null && headParam.size() > 0) {
-			headParam.forEach((key, value) -> {
-				httpost.addHeader(key, value);
-			});
-		}
 		httpost.setEntity(entity);
 		entity.setContentType("application/json");
 		HttpResponse httpResponse = client.execute(httpost);

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

@@ -64,7 +64,7 @@ public class RWDAlarmUtil {
 		try {
 			if (Constant.alarm_rest_get) {
 				String get_url = Constant.alarm_rest_url + "/alarm-record/query";
-				String getResultString = HttpClientUtil.get(get_url + "/" + alarmId, null);
+				String getResultString = HttpClientUtil.get(get_url + "/" + alarmId);
 				JSONObject getResult = JSON.parseObject(getResultString);
 				JSONObject Item = getResult.getJSONObject("Item");
 				modify_alarm(Item);
@@ -147,7 +147,7 @@ public class RWDAlarmUtil {
 					sb.append("&objId=" + params.get("objId"));
 				}
 
-				String getResultString = HttpClientUtil.get(get_url + sb.toString(), null);
+				String getResultString = HttpClientUtil.get(get_url + sb.toString());
 				JSONObject getResult = JSON.parseObject(getResultString);
 				Content = getResult.getJSONArray("Content");
 				result.put("count", getResult.get("Count"));
@@ -539,7 +539,7 @@ public class RWDAlarmUtil {
 				String get_url = Constant.alarm_rest_url + "/alarm-record/page" + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
 						+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode
 						+ "&size=65535&current=1&treatState=" + treatState;
-				String getResultString = HttpClientUtil.get(get_url, null);
+				String getResultString = HttpClientUtil.get(get_url);
 				JSONObject getResult = JSON.parseObject(getResultString);
 				JSONArray ContentInner = (JSONArray) getResult.get("Content");
 				JSONArray ids = new JSONArray();

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

@@ -342,8 +342,7 @@ public class RWDDownloadUtil {
 				if (use_group) {
 					String post_result = HttpClientUtil.get(
 							Constant.alarm_rest_url + "/alarm-record/selectItemGroupCode" + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
-									+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode,
-							null);
+									+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode);
 					JSONObject resultJSON = JSON.parseObject(post_result);
 					JSONArray Content = resultJSON.getJSONArray("Item");
 					for (int ii = 0; ii < Content.size(); ii++) {
@@ -359,7 +358,7 @@ public class RWDDownloadUtil {
 						String ibmsClassCode = classItem.getString("ibmsClassCode");
 						String post_result = HttpClientUtil.get(Constant.alarm_rest_url + "/alarm-config/itemList/" + ibmsSceneCode + "/"
 								+ ibmsClassCode + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
-								+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode, null);
+								+ 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++) {
@@ -407,7 +406,7 @@ public class RWDDownloadUtil {
 					String ibmsSceneCode = classItem.getString("ibmsSceneCode");
 					String ibmsClassCode = classItem.getString("ibmsClassCode");
 					String itemListResultString = HttpClientUtil
-							.get(Constant.alarm_rest_url + "/alarm-config/itemList/" + ibmsSceneCode + "/" + ibmsClassCode, null);
+							.get(Constant.alarm_rest_url + "/alarm-config/itemList/" + ibmsSceneCode + "/" + ibmsClassCode);
 					JSONObject itemListResultJSON = JSON.parseObject(itemListResultString);
 					JSONArray itemListResultContent = itemListResultJSON.getJSONArray("Content");
 					for (int ii = 0; ii < itemListResultContent.size(); ii++) {
@@ -416,7 +415,7 @@ public class RWDDownloadUtil {
 						String alarmDefineListString = HttpClientUtil
 								.get(Constant.alarm_rest_url + "/alarm-config/configPage" + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
 										+ RepositoryContainer.RepositoryBase.projectId + "&groupCode=" + RepositoryContainer.RepositoryBase.groupCode
-										+ "&ibmsSceneCode=" + ibmsSceneCode + "&ibmsClassCode=" + ibmsClassCode + "&itemId=" + itemId, null);
+										+ "&ibmsSceneCode=" + ibmsSceneCode + "&ibmsClassCode=" + ibmsClassCode + "&itemId=" + itemId);
 						JSONObject alarmDefineListJSON = JSON.parseObject(alarmDefineListString);
 						JSONArray alarmDefineListContent = alarmDefineListJSON.getJSONArray("Content");
 						for (int iii = 0; iii < alarmDefineListContent.size(); iii++) {

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

@@ -578,6 +578,9 @@ public class RWDLoadUtil {
 					JSONObject arrayItem = array.getJSONObject(ii);
 					String id = (String) arrayItem.get("id");
 					SceneDataObject sdo = Repository.id2sdv.get(id);
+					if (sdo == null) {
+						continue;
+					}
 					if (flag != null && flag.equals("reference")) {
 
 					} else {

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

@@ -41,13 +41,27 @@
 	<ConfigRelation graphCode="ValveRelationship" relCode="Vv2Eq" objFrom="equipment" objTo="equipment" nameInFrom="限制设备" multiplicityFrom="n" nameInTo="被设备限制" multiplicityTo="n" />
 	<ConfigRelation graphCode="ArchForArch" relCode="Sp2Sp" objFrom="space" objTo="space" nameInFrom="服务于空间" multiplicityFrom="n" nameInTo="被空间服务" multiplicityTo="n" />
 
-	<Redirect code="获取报警时长" http_request_type="get" url="http://39.102.43.179:9982/alarmTime/query" />
-	<Redirect code="查询项目概括" http_request_type="get" url="http://39.102.43.179:9982/projectSummary/query" />
-	<Redirect code="获取数据质量总览" http_request_type="get" url="http://39.102.43.179:9982/qualityTotal/query" />
-	<Redirect code="查询温控平台数据" http_request_type="post" url="http://39.102.43.179:9982/temperatureControl/query" />
-	<Redirect code="查询温控平台数据v2" http_request_type="post" url="http://39.102.43.179:9982/temperatureControl/query/v2" />
-	<Redirect code="查询温控平台数据v3" http_request_type="post" url="http://39.102.43.179:9982/temperatureControl/query/v3" />
-	<Redirect code="查询定额管理" http_request_type="get" url="http://39.102.43.179:9982/weekNeedMatter/query" />
+	<Redirect code="获取报警时长" http_request_type="get" url="http://39.102.43.179:9982/alarmTime/query">
+		<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>
+	<Redirect code="获取数据质量总览" http_request_type="get" url="http://39.102.43.179:9982/qualityTotal/query">
+		<header key="Content-Type" value="application/json" />
+	</Redirect>
+	<Redirect code="查询温控平台数据" http_request_type="post" url="http://39.102.43.179:9982/temperatureControl/query">
+		<header key="Content-Type" value="application/json" />
+	</Redirect>
+	<Redirect code="查询温控平台数据v2" http_request_type="post" url="http://39.102.43.179:9982/temperatureControl/query/v2">
+		<header key="Content-Type" value="application/json" />
+	</Redirect>
+	<Redirect code="查询温控平台数据v3" http_request_type="post" url="http://39.102.43.179:9982/temperatureControl/query/v3">
+		<header key="Content-Type" value="application/json" />
+	</Redirect>
+	<Redirect code="查询定额管理" http_request_type="get" url="http://39.102.43.179:9982/weekNeedMatter/query">
+		<header key="Content-Type" value="application/json" />
+	</Redirect>
 
 	<Redirect code="test-get1" http_request_type="get" url="http://39.102.43.179:9993/alarm-record/list" />
 	<Redirect code="test-post1" http_request_type="post" url="http://192.168.4.69:8806/zkt-sdk/post" />