|
@@ -0,0 +1,789 @@
|
|
|
+package com.gyee.monitor.util.realtimesource;
|
|
|
+
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.gyee.common.model.DNAStatVal;
|
|
|
+import com.gyee.common.model.DNAVal;
|
|
|
+import com.gyee.common.model.PointData;
|
|
|
+import com.gyee.common.model.StringUtils;
|
|
|
+import com.gyee.common.util.HttpClientUtil;
|
|
|
+import com.gyee.monitor.model.auto.Windpowerstationpointnew;
|
|
|
+import com.gyee.monitor.model.auto.Windturbinetestingpointnew;
|
|
|
+import com.gyee.monitor.util.realtimesource.timeseries.ErrorRequest;
|
|
|
+import com.gyee.monitor.util.realtimesource.timeseries.JsonObjectHelper;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.web.client.HttpClientErrorException;
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class MongoEdosUtil implements IEdosUtil {
|
|
|
+
|
|
|
+ private RestTemplate restTemplate =new RestTemplate();
|
|
|
+ private static String baseURL = "http://10.83.68.97:8090/mogodb";
|
|
|
+ @Override
|
|
|
+ public PointData getRealData(Windpowerstationpointnew point) throws Exception {
|
|
|
+ try {
|
|
|
+ Optional<String> keys = Optional.ofNullable(point.getCode());
|
|
|
+
|
|
|
+
|
|
|
+ String url = baseURL + "/getRealData.action?";
|
|
|
+ if (keys.isPresent())
|
|
|
+ url = url + "point=" + keys.get();
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ JSONObject jsonObject=JSONObject.parseObject(s);
|
|
|
+ PointData pointData = JSONObject.toJavaObject(jsonObject, PointData.class);
|
|
|
+ return pointData;
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestError(point.getCode());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistoryDatasSnap(Windpowerstationpointnew point, Long beginDate, Long endDate, Long count, Long pried) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point.getCode());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> uniformCode = Optional.ofNullable(point.getUniformcode());
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate);
|
|
|
+ Optional<Long> counts = Optional.ofNullable(count);
|
|
|
+ Optional<Long> prieds = Optional.ofNullable(pried);
|
|
|
+ //通过时间区间和时间间隔获取点数
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistoryDatasSnap.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+ if (counts.isPresent())
|
|
|
+ url = url + "&count=" + counts.get();
|
|
|
+ if (prieds.isPresent())
|
|
|
+ url = url + "&pried=" + prieds.get();
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+
|
|
|
+ return pointDatas;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(point.getCode());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistoryDatasRaw(Windpowerstationpointnew point, Long beginDate, Long endDate) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point.getCode());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> uniformCode = Optional.ofNullable(point.getUniformcode());
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate);
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistoryDatasRaw.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+
|
|
|
+
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(point.getCode());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PointData getRealData(Windturbinetestingpointnew point) throws Exception {
|
|
|
+ Optional<String> keys = Optional.ofNullable(point.getCode());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> uniformCodes = Optional.ofNullable(point.getUniformcode());
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getRealData.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (keys.isPresent())
|
|
|
+ url = url + "point=" + keys.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ JSONObject jsonObject=JSONObject.parseObject(s);
|
|
|
+ PointData pointData = JSONObject.toJavaObject(jsonObject, PointData.class);
|
|
|
+ return pointData;
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestError(point.getId());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistoryDatasSnap(Windturbinetestingpointnew point, Long beginDate, Long endDate, Long count, Long pried) throws Exception {
|
|
|
+
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point.getCode());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> uniformCode = Optional.ofNullable(point.getUniformcode());
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate);
|
|
|
+ Optional<Long> counts = Optional.ofNullable(count);
|
|
|
+ Optional<Long> prieds = Optional.ofNullable(pried);
|
|
|
+ //通过时间区间和时间间隔获取点数
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistoryDatasSnap.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+ if (counts.isPresent())
|
|
|
+ url = url + "&count=" + counts.get();
|
|
|
+ if (prieds.isPresent())
|
|
|
+ url = url + "&pried=" + prieds.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(point.getId());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistoryDatasRaw(Windturbinetestingpointnew point, Long beginDate, Long endDate) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point.getId());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> uniformCode = Optional.ofNullable(point.getUniformcode());
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate);
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistoryDatasRaw.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(point.getId());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PointData getRealData(String pointid) throws Exception {
|
|
|
+ Optional<String> keys = Optional.ofNullable(pointid);
|
|
|
+ String url = baseURL + "/getRealData.action?";
|
|
|
+ try {
|
|
|
+ if (keys.isPresent())
|
|
|
+ url = url + "point=" + keys.get();
|
|
|
+ else
|
|
|
+ return null;
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ JSONObject jsonObject=JSONObject.parseObject(s);
|
|
|
+ PointData pointData = JSONObject.toJavaObject(jsonObject, PointData.class);
|
|
|
+ return pointData;
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestError(pointid);
|
|
|
+ } else {
|
|
|
+ return ErrorRequest.RequestError(pointid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getRealData(String... pointids) throws Exception {
|
|
|
+ String pointIdString = StringUtil.join(pointids, ",");
|
|
|
+ Optional<String> keys = Optional.ofNullable(pointIdString);
|
|
|
+ String url = baseURL + "/getRealData.action?1=1";
|
|
|
+ try {
|
|
|
+ if (keys.isPresent())
|
|
|
+ url = url + "&point=" + keys.get();
|
|
|
+ else {
|
|
|
+ return ErrorRequest.RequestListError(pointids);
|
|
|
+ }
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(pointids);
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getRealData(List<String> pointids) throws Exception {
|
|
|
+ String pointIdString = StringUtil.join(pointids.toArray(), ",");
|
|
|
+ Optional<String> keys = Optional.ofNullable(pointIdString);
|
|
|
+ String url = baseURL + "/getRealDatas.action?";
|
|
|
+ Map<String,Object> paramMap = new HashMap<>();
|
|
|
+ paramMap.put("points",pointIdString);
|
|
|
+ try {
|
|
|
+// if (keys.isPresent())
|
|
|
+// url = url + "points=" + keys.get();
|
|
|
+// else {
|
|
|
+// String[] arr = new String[pointids.size()];
|
|
|
+// return ErrorRequest.RequestListError(pointids.toArray(arr));
|
|
|
+// }
|
|
|
+ String s = HttpClientUtil.doPost(url,paramMap);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ String[] arr = new String[pointids.size()];
|
|
|
+ return ErrorRequest.RequestListError(pointids.toArray(arr));
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Double> getRealDataMap(String... pointids) throws Exception {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistoryDatasSnap(String pointid, Long beginDate, Long endDate, Long count, Long pried) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(pointid);
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate);
|
|
|
+ Optional<Long> counts = Optional.ofNullable(count);
|
|
|
+ Optional<Long> prieds = Optional.ofNullable(pried);
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistoryDatasSnap.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+ if (counts.isPresent())
|
|
|
+ url = url + "&count=" + counts.get();
|
|
|
+ if (prieds.isPresent())
|
|
|
+ url = url + "&pried=" + prieds.get();
|
|
|
+
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(pointid);
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistoryDatasRaw(String pointid, Long beginDate, Long endDate) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(pointid);
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate * 1000);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate * 1000);
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/history/raw?null=0";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "&tagName=" + tagName.get();
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&startTs=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&endTs=" + endTs.get();
|
|
|
+
|
|
|
+ ResponseEntity<JSONArray> resp = restTemplate.getForEntity(url, JSONArray.class);
|
|
|
+
|
|
|
+ JSONArray jsonArray = resp.getBody();
|
|
|
+ if (jsonArray != null)
|
|
|
+ return JsonObjectHelper.phrasePointData(jsonArray, pointid);
|
|
|
+ else {
|
|
|
+ return ErrorRequest.RequestListError(pointid);
|
|
|
+ }
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(pointid);
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistStat(Windturbinetestingpointnew point, Long beginDate, Long endDate, Long count, Long pried, int type) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point.getCode());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> uniformCode = Optional.ofNullable(point.getUniformcode());
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate);
|
|
|
+ Optional<Long> counts = Optional.ofNullable(count);
|
|
|
+ Optional<Long> prieds = Optional.ofNullable(pried);
|
|
|
+ Optional<Integer> types = Optional.ofNullable(type);
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistStat.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+ if (counts.isPresent())
|
|
|
+ url = url + "&count=" + counts.get();
|
|
|
+ if (prieds.isPresent())
|
|
|
+ url = url + "&pried=" + prieds.get();
|
|
|
+ if (types.isPresent())
|
|
|
+ url = url + "&type=" + types.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(point.getId());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistStat(Windpowerstationpointnew point, Long beginDate, Long endDate, Long count, Long pried, int type) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point.getCode());
|
|
|
+ Optional<String> thingId = Optional.ofNullable(point.getWindpowerstationid());
|
|
|
+ Optional<String> thingType = Optional.ofNullable(point.getModelid());
|
|
|
+ Optional<String> uniformCode = Optional.ofNullable(point.getUniformcode());
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate * 1000);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate * 1000);
|
|
|
+ Optional<Long> counts = Optional.ofNullable(count);
|
|
|
+ Optional<Long> prieds = Optional.ofNullable(pried);
|
|
|
+ Optional<Integer> types = Optional.ofNullable(type);
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistStat.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+ if (counts.isPresent())
|
|
|
+ url = url + "&count=" + counts.get();
|
|
|
+ if (prieds.isPresent())
|
|
|
+ url = url + "&pried=" + prieds.get();
|
|
|
+ if (types.isPresent())
|
|
|
+ url = url + "&type=" + types.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(point.getCode());
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> getHistStat(String pointid, Long beginDate, Long endDate, Long count, Long pried, int type) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(pointid);
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate * 1000);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate * 1000);
|
|
|
+ Optional<Long> counts = Optional.ofNullable(count);
|
|
|
+ Optional<Long> prieds = Optional.ofNullable(pried);
|
|
|
+ Optional<Integer> types = Optional.ofNullable(type);
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/getHistStat.action?";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "point=" + tagName.get();
|
|
|
+
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&begin=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&end=" + endTs.get();
|
|
|
+ if (counts.isPresent())
|
|
|
+ url = url + "&count=" + counts.get();
|
|
|
+ if (prieds.isPresent())
|
|
|
+ url = url + "&pried=" + prieds.get();
|
|
|
+ if (types.isPresent())
|
|
|
+ url = url + "&type=" + types.get();
|
|
|
+
|
|
|
+ String s = HttpClientUtil.doGet(url);
|
|
|
+ List<PointData> pointDatas = JSONArray.parseArray(s, PointData.class);
|
|
|
+ return pointDatas;
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ return ErrorRequest.RequestListError(pointid);
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public DNAStatVal[] getHistStat(String point, Long beginDate, Long endDate, Integer pried) throws Exception {
|
|
|
+ Optional<String> tagName = Optional.ofNullable(point);
|
|
|
+ Optional<Long> startTs = Optional.ofNullable(beginDate * 1000);
|
|
|
+ Optional<Long> endTs = Optional.ofNullable(endDate * 1000);
|
|
|
+ //通过时间区间和时间间隔获取点数
|
|
|
+ Optional<Integer> interval = Optional.ofNullable(pried);
|
|
|
+
|
|
|
+ try {
|
|
|
+ String url = baseURL + "/history/stat?null=0";
|
|
|
+ //tagName 或thingType,thingId,uniformCode可以确定一个标签点
|
|
|
+ if (tagName.isPresent())
|
|
|
+ url = url + "&tagName=" + tagName.get();
|
|
|
+ if (startTs.isPresent())
|
|
|
+ url = url + "&startTs=" + startTs.get();
|
|
|
+ if (endTs.isPresent())
|
|
|
+ url = url + "&endTs=" + endTs.get();
|
|
|
+ if (interval.isPresent())
|
|
|
+ url = url + "&interval=" + interval.get();
|
|
|
+
|
|
|
+ //System.out.println(restTemplate.getForEntity(url, JSONArray.class));
|
|
|
+ ResponseEntity<JSONArray> resp = restTemplate.getForEntity(url, JSONArray.class);
|
|
|
+ if (resp != null) {
|
|
|
+ JSONArray jsonArray = resp.getBody();
|
|
|
+ if (jsonArray == null || jsonArray.size() <= 0) {
|
|
|
+ DNAStatVal[] dnaVal = new DNAStatVal[1];
|
|
|
+ DNAVal errorData = new DNAVal();
|
|
|
+ errorData.Status = 0;
|
|
|
+
|
|
|
+ DNAStatVal val = new DNAStatVal();
|
|
|
+ val.avg = errorData;
|
|
|
+ val.max = errorData;
|
|
|
+ val.min = errorData;
|
|
|
+ dnaVal[0] = val;
|
|
|
+ return dnaVal;
|
|
|
+ } else {
|
|
|
+ return JsonObjectHelper.phraseDNAVal(jsonArray);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ DNAStatVal val = new DNAStatVal();
|
|
|
+ DNAStatVal[] dnaVal = new DNAStatVal[1];
|
|
|
+ DNAVal errorData = new DNAVal();
|
|
|
+ errorData.Status = 0;
|
|
|
+ val.avg = errorData;
|
|
|
+ val.max = errorData;
|
|
|
+ val.min = errorData;
|
|
|
+ dnaVal[0] = val;
|
|
|
+ return dnaVal;
|
|
|
+
|
|
|
+ } else {
|
|
|
+ DNAStatVal val = new DNAStatVal();
|
|
|
+ DNAStatVal[] dnaVal = new DNAStatVal[1];
|
|
|
+ DNAVal errorData = new DNAVal();
|
|
|
+ errorData.Status = 0;
|
|
|
+ val.avg = errorData;
|
|
|
+ val.max = errorData;
|
|
|
+ val.min = errorData;
|
|
|
+ dnaVal[0] = val;
|
|
|
+ return dnaVal;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private JSONObject convertPointData(PointData pd) {
|
|
|
+ JSONObject jo = new JSONObject();
|
|
|
+ jo.put("tagName", pd.getEdnaId());
|
|
|
+ JSONObject joo = new JSONObject();
|
|
|
+ joo.put("ts", pd.getPointTime()*1000);
|
|
|
+ joo.put("status", 0);
|
|
|
+ joo.put("doubleValue", pd.getPointValueInDouble());
|
|
|
+ jo.put("tsData", joo);
|
|
|
+ return jo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updatePoint(PointData point) throws Exception {
|
|
|
+ String url = baseURL + "/history";
|
|
|
+ try {
|
|
|
+ String result = restTemplate.postForObject(url, convertPointData(point), String.class);
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public DNAVal[] getRealtimeTagValues(String... tagNames) throws Exception {
|
|
|
+ String pointIdString = StringUtil.join(tagNames, ",");
|
|
|
+ Optional<String> keys = Optional.ofNullable(pointIdString);
|
|
|
+ String url = baseURL + "/latest?null=0";
|
|
|
+ try {
|
|
|
+ if (keys.isPresent())
|
|
|
+ url = url + "&keys=" + keys.get();
|
|
|
+ else
|
|
|
+ return null;
|
|
|
+
|
|
|
+ ResponseEntity<JSONObject> resp = restTemplate.getForEntity(url, JSONObject.class);
|
|
|
+ JSONObject jsonObject = resp.getBody();
|
|
|
+ if (StringUtils.isNotEmpty(jsonObject) && !jsonObject.isEmpty()){
|
|
|
+ return JsonObjectHelper.phraseDNAVal(jsonObject,tagNames);
|
|
|
+ } else {
|
|
|
+ DNAVal[] errorResult = new DNAVal[tagNames.length];
|
|
|
+ for(int i=0;i<tagNames.length;i++)
|
|
|
+ {
|
|
|
+ DNAVal val = new DNAVal();
|
|
|
+ val.Status = 0;
|
|
|
+ errorResult[i] = val;
|
|
|
+ }
|
|
|
+ return errorResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ DNAVal[] errorResult = new DNAVal[tagNames.length];
|
|
|
+ for(int i=0;i<tagNames.length;i++)
|
|
|
+ {
|
|
|
+ DNAVal val = new DNAVal();
|
|
|
+ val.Status = 0;
|
|
|
+ errorResult[i] = val;
|
|
|
+ }
|
|
|
+ return errorResult;
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updatePoint(List<PointData> pointls) throws Exception {
|
|
|
+ String url = baseURL + "/history/batch";
|
|
|
+ List<JSONObject> writeList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (PointData entity : pointls) {
|
|
|
+ writeList.add(convertPointData(entity));
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ String result = restTemplate.postForObject(url, writeList, String.class);
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void sendSinglePoint(PointData point) throws Exception {
|
|
|
+ String url = baseURL + "/latest";
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ String result = restTemplate.postForObject(url, convertPointData(point), String.class);
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void sendMultiPoint(List<PointData> pointls) throws Exception {
|
|
|
+
|
|
|
+ String url = baseURL + "/latest/batch";
|
|
|
+ List<JSONObject> writeList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (PointData entity : pointls) {
|
|
|
+ writeList.add(convertPointData(entity));
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ String result = restTemplate.postForObject(url, writeList, String.class);
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void sendMultiPoint(String[] realvalue, DNAVal[] pointls) throws Exception {
|
|
|
+ String url = baseURL + "/latest/batch";
|
|
|
+
|
|
|
+ List<JSONObject> writeDataList = new ArrayList<>();
|
|
|
+ if (realvalue != null && pointls != null & realvalue.length == pointls.length) {
|
|
|
+ for (int i = 0; i < realvalue.length; i++) {
|
|
|
+ PointData writeData = new PointData();
|
|
|
+ writeData.setEdnaId(realvalue[i]);
|
|
|
+ writeData.setPointValueInDouble(pointls[i].DValue);
|
|
|
+ writeData.setPointTime((long)pointls[i].Time);
|
|
|
+ JSONObject jsonObject=convertPointData(writeData);
|
|
|
+ writeDataList.add(jsonObject);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ String result = restTemplate.postForObject(url, writeDataList, String.class);
|
|
|
+ } catch (HttpClientErrorException exception) {
|
|
|
+ if (exception.getStatusCode() == HttpStatus.NOT_FOUND) {
|
|
|
+ System.out.println("404请求错误");
|
|
|
+ } else {
|
|
|
+ throw exception;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //多点切面数据
|
|
|
+ @Override
|
|
|
+ public DNAVal[] getHistMatrix(String[] nameList, int tTime) throws Exception {
|
|
|
+ String tagNameString = StringUtil.join(nameList, ",");
|
|
|
+ Long time = Long.valueOf(tTime);
|
|
|
+ Optional<String> tagName = Optional.ofNullable(tagNameString);
|
|
|
+ Optional<Long> ts = Optional.ofNullable(time * 1000);
|
|
|
+ String url = baseURL + "/history/section?tagNames=" + tagName.get() + "&ts=" + ts.get();
|
|
|
+ try {
|
|
|
+ ResponseEntity<JSONObject> resp = restTemplate.getForEntity(url, JSONObject.class);
|
|
|
+ JSONObject jsonObject = resp.getBody();
|
|
|
+ if (StringUtils.isNotEmpty(jsonObject) && !jsonObject.isEmpty())
|
|
|
+ {
|
|
|
+ return JsonObjectHelper.phraseDNAVal(jsonObject,nameList);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DNAVal[] errorResult = new DNAVal[nameList.length];
|
|
|
+ for(int i=0;i<nameList.length;i++)
|
|
|
+ {
|
|
|
+ DNAVal val = new DNAVal();
|
|
|
+ val.Status = 0;
|
|
|
+ errorResult[i] = val;
|
|
|
+ }
|
|
|
+ return errorResult;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ DNAVal[] errorResult = new DNAVal[nameList.length];
|
|
|
+ for(int i=0;i<nameList.length;i++)
|
|
|
+ {
|
|
|
+ DNAVal val = new DNAVal();
|
|
|
+ val.Status = 0;
|
|
|
+ errorResult[i] = val;
|
|
|
+ }
|
|
|
+ return errorResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|