Browse Source

新增获取第三方接口

master
刘力 3 years ago
parent
commit
3ea009d707
  1. 5
      APIService/pom.xml
  2. 17
      APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java
  3. 15
      APIService/src/main/java/com/storeroom/service/ApiService.java
  4. 82
      APIService/src/main/java/com/storeroom/service/dto/GetCurAlarmDto.java
  5. 40
      APIService/src/main/java/com/storeroom/service/dto/RealTimeDataDto.java
  6. 91
      APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java
  7. 2
      common/src/main/java/com/storeroom/utils/FastjsonUtils.java
  8. 19
      common/src/main/java/com/storeroom/utils/HttpUtils.java
  9. 3
      pom.xml
  10. 8
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java

5
APIService/pom.xml

@ -23,6 +23,11 @@
<artifactId>common</artifactId> <artifactId>common</artifactId>
<version>1.0</version> <version>1.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.ejlchina</groupId>
<artifactId>okhttps-fastjson</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

17
APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java

@ -2,15 +2,19 @@ package com.storeroom.controller;
import com.storeroom.annotaion.rest.AnonymousGetMapping; import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.service.ApiService; import com.storeroom.service.ApiService;
import com.storeroom.utils.ApiResponse; import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.MacUtil; import com.storeroom.utils.MacUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Set;
@RestController @RestController
@RequestMapping("/api/service/") @RequestMapping("/api/service/")
@Api(tags = "测试第三方接口") @Api(tags = "测试第三方接口")
@ -36,4 +40,17 @@ public class TestApiServiceController {
public ApiResponse<Object> getIp() { public ApiResponse<Object> getIp() {
return ApiResponse.success(MacUtil.getIpAddress()); return ApiResponse.success(MacUtil.getIpAddress());
} }
@ApiOperation("获取报警信息")
@AnonymousGetMapping("getcuralarm")
public ApiResponse<Object> getInfo() {
return ApiResponse.success(apiService.getAllDeviceAlarm());
}
@ApiOperation("获取设备监控参数实时值")
@AnonymousPostMapping("getrealtimedata")
public ApiResponse<Object> getrealtimedata(@RequestBody Set<String> deviceIds) {
return ApiResponse.success(apiService.getRealTimeData(deviceIds));
}
} }

15
APIService/src/main/java/com/storeroom/service/ApiService.java

@ -3,6 +3,7 @@ package com.storeroom.service;
import com.storeroom.service.dto.DeviceAllDto; import com.storeroom.service.dto.DeviceAllDto;
import java.util.List; import java.util.List;
import java.util.Set;
public interface ApiService { public interface ApiService {
@ -19,4 +20,18 @@ public interface ApiService {
*/ */
List<DeviceAllDto> getDeviceAll(); List<DeviceAllDto> getDeviceAll();
/**
* 获取所有设备报警信息
* @return
*/
Object getAllDeviceAlarm();
/**
* 获取设备监控参数实时值
* @return
*/
Object getRealTimeData(Set<String> deviceIds);
} }

82
APIService/src/main/java/com/storeroom/service/dto/GetCurAlarmDto.java

@ -0,0 +1,82 @@
package com.storeroom.service.dto;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Objects;
@Getter
@Setter
public class GetCurAlarmDto implements Serializable {
/**
* 告警id
*/
private String event_id;
/**
* 告警名称
*/
private String event_name;
/**
* 设备ID
*/
private String device_id;
/**
* 设备名称
*/
private String device_name;
/**
* 分类名称
*/
private String category_name;
/**
* 区域名称
*/
private String area_name;
/**
* 告警等级
*/
private String event_level_name;
/**
* 更新时间
*/
private String alarm_time;
/**
* 告警值
*/
private String alarm_value;
/**
* 告警值描述
*/
private String alarm_value_descript;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GetCurAlarmDto that = (GetCurAlarmDto) o;
return Objects.equals(event_id, that.event_id) && Objects.equals(event_name, that.event_name) && Objects.equals(device_id, that.device_id) && Objects.equals(device_name, that.device_name);
}
@Override
public int hashCode() {
return Objects.hash(event_id, event_name, device_id, device_name);
}
}

40
APIService/src/main/java/com/storeroom/service/dto/RealTimeDataDto.java

@ -0,0 +1,40 @@
package com.storeroom.service.dto;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Objects;
@Getter
@Setter
public class RealTimeDataDto implements Serializable {
private String property_id;
private String property_name;
private String device_id;
private String curvalue;
private String value_descript;
private String unit;
private String curstatus;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RealTimeDataDto that = (RealTimeDataDto) o;
return Objects.equals(property_id, that.property_id) && Objects.equals(property_name, that.property_name) && Objects.equals(device_id, that.device_id) && Objects.equals(curvalue, that.curvalue) && Objects.equals(value_descript, that.value_descript) && Objects.equals(unit, that.unit) && Objects.equals(curstatus, that.curstatus);
}
@Override
public int hashCode() {
return Objects.hash(property_id, property_name, device_id, curvalue, value_descript, unit, curstatus);
}
}

91
APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java

@ -1,13 +1,18 @@
package com.storeroom.service.impl; package com.storeroom.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.storeroom.exception.BaseException; import com.storeroom.exception.BaseException;
import com.storeroom.service.ApiService; import com.storeroom.service.ApiService;
import com.storeroom.service.dto.DeviceAllDto; import com.storeroom.service.dto.DeviceAllDto;
import com.storeroom.service.dto.GetCurAlarmDto;
import com.storeroom.service.dto.RealTimeDataDto;
import com.storeroom.utils.FastjsonUtils; import com.storeroom.utils.FastjsonUtils;
import com.storeroom.utils.HttpUtils; import com.storeroom.utils.HttpUtils;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import okhttp3.*;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,7 +21,6 @@ import org.springframework.util.ObjectUtils;
import java.util.*; import java.util.*;
@Service("ApiServiceImpl") @Service("ApiServiceImpl")
public class ApiServiceImpl implements ApiService { public class ApiServiceImpl implements ApiService {
@ -87,4 +91,89 @@ public class ApiServiceImpl implements ApiService {
return null; return null;
} }
} }
@SneakyThrows
@Override
public Object getAllDeviceAlarm() {
HashMap<String, String> map = new HashMap<>();
String token = getToken();
map.put("Content-type", "application/json");
map.put("Authorization", "Bearer" + token + "");
HttpResponse response = HttpUtils.doGet("http://jiton.8800.org:800", "/Api/Third/GetCurAlarm", "Get", map, null);
if (response.getStatusLine().getStatusCode() == 200) {
String s = EntityUtils.toString(response.getEntity());
Map<String, Object> dataMap = FastjsonUtils.toJavaMap(s);
List<GetCurAlarmDto> list = new ArrayList<>();
dataMap.forEach((k, v) -> {
if (k.equals("Data")) {
if (!ObjectUtils.isEmpty(v)) {
JSONArray jsonArray = (JSONArray) v;
for (int i = 0; i < jsonArray.size(); i++) {
GetCurAlarmDto getCurAlarmDto = new GetCurAlarmDto();
JSONObject jsonObject = jsonArray.getJSONObject(i);
getCurAlarmDto.setDevice_id(jsonObject.get("device_id") == null ? "" : jsonObject.get("device_id").toString());
getCurAlarmDto.setAlarm_value(jsonObject.get("alarm_value") == null ? "" : jsonObject.get("alarm_value").toString());
getCurAlarmDto.setArea_name(jsonObject.get("area_name") == null ? "" : jsonObject.get("area_name").toString());
getCurAlarmDto.setEvent_id(jsonObject.get("event_id") == null ? "" : jsonObject.get("event_id").toString());
getCurAlarmDto.setEvent_level_name(jsonObject.get("event_level_name") == null ? "" : jsonObject.get("event_level_name").toString());
getCurAlarmDto.setAlarm_time(jsonObject.get("alarm_time") == null ? "" : jsonObject.get("alarm_time").toString());
getCurAlarmDto.setCategory_name(jsonObject.get("category_name") == null ? "" : jsonObject.get("category_name").toString());
getCurAlarmDto.setAlarm_value_descript(jsonObject.get("alarm_value_descript") == null ? "" : jsonObject.get("alarm_value_descript").toString());
getCurAlarmDto.setDevice_name(jsonObject.get("device_name") == null ? "" : jsonObject.get("device_name").toString());
getCurAlarmDto.setEvent_name(jsonObject.get("event_name") == null ? "" : jsonObject.get("event_name").toString());
list.add(getCurAlarmDto);
}
}
}
});
return list;
} else {
throw new BaseException("访问失败" + response.getStatusLine().getStatusCode() + "");
}
}
@SneakyThrows
@Override
public Object getRealTimeData(Set<String> deviceIds) {
String token = getToken();
JSONObject json = new JSONObject();
json.put("device_ids", deviceIds);
RequestBody body = RequestBody.create(
MediaType.parse("application/json;charset=utf-8"), String.valueOf(json));
Request request = new Request.Builder().url("http://jiton.8800.org:800/Api/Third/GetRealTimeData")
.addHeader("Authorization", "Bearer" + token + "")
.post(body)
.build();
OkHttpClient client = new OkHttpClient();
Call call = client.newCall(request);
Response response = call.execute();
Map<String, Object> resultMap;
List<RealTimeDataDto> list =new ArrayList<>();
if (!ObjectUtils.isEmpty(response)) {
String strResult = response.body().string();
resultMap = FastjsonUtils.toJavaMap(strResult);
resultMap.forEach((k, v) -> {
if (k.equals("Data") && !ObjectUtils.isEmpty(v)) {
JSONArray jsonArray = (JSONArray) v;
for (int i= 0 ;i<jsonArray.size();i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
RealTimeDataDto realTimeDataDto = new RealTimeDataDto();
realTimeDataDto.setProperty_id(jsonObject.get("property_id") == null ? "" : jsonObject.get("property_id").toString());
realTimeDataDto.setProperty_name(jsonObject.get("property_name") == null ? "" : jsonObject.get("property_name").toString());
realTimeDataDto.setDevice_id(jsonObject.get("device_id") == null ? "" : jsonObject.get("device_id").toString());
realTimeDataDto.setCurvalue(jsonObject.get("curvalue") == null ? "" : jsonObject.get("curvalue").toString());
realTimeDataDto.setValue_descript(jsonObject.get("value_descript") == null ? "" : jsonObject.get("value_descript").toString());
realTimeDataDto.setUnit(jsonObject.get("unit") == null ? "" : jsonObject.get("unit").toString());
realTimeDataDto.setCurstatus(jsonObject.get("curstatus") == null ? "" : jsonObject.get("curstatus").toString());
list.add(realTimeDataDto);
}
}
});
}
return list;
}
} }

2
common/src/main/java/com/storeroom/utils/FastjsonUtils.java

@ -112,4 +112,6 @@ public class FastjsonUtils {
public static Map<String, Object> toJavaMap(String content) { public static Map<String, Object> toJavaMap(String content) {
return JSON.parseObject(content, new TypeReference<Map<String, Object>>(){}); return JSON.parseObject(content, new TypeReference<Map<String, Object>>(){});
} }
} }

19
common/src/main/java/com/storeroom/utils/HttpUtils.java

@ -1,23 +1,28 @@
package com.storeroom.utils; package com.storeroom.utils;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair; import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.*;
import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.StringEntity; import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicNameValuePair; import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.expression.ParseException;
import org.springframework.http.HttpEntity;
import java.io.IOException;
import java.security.KeyManagementException; import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
@ -27,6 +32,7 @@ import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -123,7 +129,7 @@ public class HttpUtils {
if (StringUtils.isNotBlank(body)) { if (StringUtils.isNotBlank(body)) {
request.setEntity(new StringEntity(body, "utf-8")); request.setEntity(new StringEntity(body, "utf-8"));
} }
System.out.println(request.getEntity());
return httpClient.execute(request); return httpClient.execute(request);
} }
@ -313,6 +319,9 @@ public class HttpUtils {
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
} }
} }

3
pom.xml

@ -235,7 +235,4 @@
<version>2.2</version> <version>2.2</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

8
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java

@ -141,6 +141,13 @@ public class DeviceImpl implements DeviceService {
deviceArchivesTag.setDeviceInfoId(deviceInfoDto.getId()); deviceArchivesTag.setDeviceInfoId(deviceInfoDto.getId());
deviceArchivesTag.setPosition_name(positionName); deviceArchivesTag.setPosition_name(positionName);
deviceArchivesTag.setDirection(leftOrRight); deviceArchivesTag.setDirection(leftOrRight);
deviceArchivesTag.setColumnRowNo(i);
deviceArchivesTag.setPartNo(k);
deviceArchivesTag.setRowNo(n);
deviceArchivesTag.setAreaNo(deviceInfoDto.getAreaNo());
deviceArchivesTag.setSumColumnNo(deviceInfoDto.getSumColumnNo());
deviceArchivesTag.setStoreroomCode(deviceInfoDto.getStoreroomCode());
deviceArchivesTagRepository.save(deviceArchivesTag); deviceArchivesTagRepository.save(deviceArchivesTag);
} }
} }
@ -445,6 +452,7 @@ public class DeviceImpl implements DeviceService {
deviceInfoDto.setSumColumnNo(deviceInfo.getSumColumnNo()); deviceInfoDto.setSumColumnNo(deviceInfo.getSumColumnNo());
deviceInfoDto.setFirstColumnNo(deviceInfo.getFirstColumnNo()); deviceInfoDto.setFirstColumnNo(deviceInfo.getFirstColumnNo());
deviceInfoDto.setPartNo(deviceInfo.getPartNo()); deviceInfoDto.setPartNo(deviceInfo.getPartNo());
deviceInfoDto.setRowNo(deviceInfo.getRowNo());
deviceInfoDto.setStoreroomCode(deviceInfo.getStoreroomCode()); deviceInfoDto.setStoreroomCode(deviceInfo.getStoreroomCode());

Loading…
Cancel
Save