From 3ea009d707e256d5b9754e878dc4d870edc5244b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Wed, 27 Jul 2022 20:16:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APIService/pom.xml | 5 + .../controller/TestApiServiceController.java | 17 ++++ .../com/storeroom/service/ApiService.java | 15 +++ .../storeroom/service/dto/GetCurAlarmDto.java | 82 +++++++++++++++++ .../service/dto/RealTimeDataDto.java | 40 ++++++++ .../service/impl/ApiServiceImpl.java | 91 ++++++++++++++++++- .../com/storeroom/utils/FastjsonUtils.java | 2 + .../java/com/storeroom/utils/HttpUtils.java | 19 +++- pom.xml | 3 - .../device/service/impl/DeviceImpl.java | 8 ++ 10 files changed, 273 insertions(+), 9 deletions(-) create mode 100644 APIService/src/main/java/com/storeroom/service/dto/GetCurAlarmDto.java create mode 100644 APIService/src/main/java/com/storeroom/service/dto/RealTimeDataDto.java diff --git a/APIService/pom.xml b/APIService/pom.xml index 84154ef..a5b6355 100644 --- a/APIService/pom.xml +++ b/APIService/pom.xml @@ -23,6 +23,11 @@ common 1.0 + + com.ejlchina + okhttps-fastjson + 3.5.2 + \ No newline at end of file diff --git a/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java b/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java index 7a89a25..b3db7e3 100644 --- a/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java +++ b/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.AnonymousPostMapping; import com.storeroom.service.ApiService; import com.storeroom.utils.ApiResponse; import com.storeroom.utils.MacUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Set; + @RestController @RequestMapping("/api/service/") @Api(tags = "测试第三方接口") @@ -36,4 +40,17 @@ public class TestApiServiceController { public ApiResponse getIp() { return ApiResponse.success(MacUtil.getIpAddress()); } + + + @ApiOperation("获取报警信息") + @AnonymousGetMapping("getcuralarm") + public ApiResponse getInfo() { + return ApiResponse.success(apiService.getAllDeviceAlarm()); + } + + @ApiOperation("获取设备监控参数实时值") + @AnonymousPostMapping("getrealtimedata") + public ApiResponse getrealtimedata(@RequestBody Set deviceIds) { + return ApiResponse.success(apiService.getRealTimeData(deviceIds)); + } } diff --git a/APIService/src/main/java/com/storeroom/service/ApiService.java b/APIService/src/main/java/com/storeroom/service/ApiService.java index 49f1e28..4da64b7 100644 --- a/APIService/src/main/java/com/storeroom/service/ApiService.java +++ b/APIService/src/main/java/com/storeroom/service/ApiService.java @@ -3,6 +3,7 @@ package com.storeroom.service; import com.storeroom.service.dto.DeviceAllDto; import java.util.List; +import java.util.Set; public interface ApiService { @@ -19,4 +20,18 @@ public interface ApiService { */ List getDeviceAll(); + + /** + * 获取所有设备报警信息 + * @return + */ + Object getAllDeviceAlarm(); + + + /** + * 获取设备监控参数实时值 + * @return + */ + Object getRealTimeData(Set deviceIds); + } diff --git a/APIService/src/main/java/com/storeroom/service/dto/GetCurAlarmDto.java b/APIService/src/main/java/com/storeroom/service/dto/GetCurAlarmDto.java new file mode 100644 index 0000000..ef7989e --- /dev/null +++ b/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); + } +} diff --git a/APIService/src/main/java/com/storeroom/service/dto/RealTimeDataDto.java b/APIService/src/main/java/com/storeroom/service/dto/RealTimeDataDto.java new file mode 100644 index 0000000..3757b78 --- /dev/null +++ b/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); + } +} diff --git a/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java b/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java index 8594390..ee0c5b6 100644 --- a/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java +++ b/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java @@ -1,13 +1,18 @@ package com.storeroom.service.impl; + +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.storeroom.exception.BaseException; import com.storeroom.service.ApiService; 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.HttpUtils; import lombok.SneakyThrows; +import okhttp3.*; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; @@ -16,7 +21,6 @@ import org.springframework.util.ObjectUtils; import java.util.*; - @Service("ApiServiceImpl") public class ApiServiceImpl implements ApiService { @@ -87,4 +91,89 @@ public class ApiServiceImpl implements ApiService { return null; } } + + @SneakyThrows + @Override + public Object getAllDeviceAlarm() { + HashMap 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 dataMap = FastjsonUtils.toJavaMap(s); + List 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 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 resultMap; + List 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 toJavaMap(String content) { return JSON.parseObject(content, new TypeReference>(){}); } + + } diff --git a/common/src/main/java/com/storeroom/utils/HttpUtils.java b/common/src/main/java/com/storeroom/utils/HttpUtils.java index 110e281..a31613f 100644 --- a/common/src/main/java/com/storeroom/utils/HttpUtils.java +++ b/common/src/main/java/com/storeroom/utils/HttpUtils.java @@ -1,23 +1,28 @@ package com.storeroom.utils; +import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; 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.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.ByteArrayEntity; 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.HttpClients; +import org.apache.http.message.BasicHeader; 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.NoSuchAlgorithmException; import javax.net.ssl.SSLContext; @@ -27,6 +32,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -123,7 +129,7 @@ public class HttpUtils { if (StringUtils.isNotBlank(body)) { request.setEntity(new StringEntity(body, "utf-8")); } - + System.out.println(request.getEntity()); return httpClient.execute(request); } @@ -313,6 +319,9 @@ public class HttpUtils { throw new RuntimeException(ex); } } + + + } diff --git a/pom.xml b/pom.xml index f213645..8a3ec24 100644 --- a/pom.xml +++ b/pom.xml @@ -235,7 +235,4 @@ 2.2 - - - \ No newline at end of file diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java index 33caf1b..4286e81 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java +++ b/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.setPosition_name(positionName); 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); } } @@ -445,6 +452,7 @@ public class DeviceImpl implements DeviceService { deviceInfoDto.setSumColumnNo(deviceInfo.getSumColumnNo()); deviceInfoDto.setFirstColumnNo(deviceInfo.getFirstColumnNo()); deviceInfoDto.setPartNo(deviceInfo.getPartNo()); + deviceInfoDto.setRowNo(deviceInfo.getRowNo()); deviceInfoDto.setStoreroomCode(deviceInfo.getStoreroomCode());