2024年2月4日11:22:10

main
litao 2 years ago
parent 444f6000e9
commit d26912cff0
  1. 18
      src/main/java/org/springblade/hospital/controller/AlarmInformationController.java
  2. 5
      src/main/java/org/springblade/hospital/entity/AlarmInformation.java
  3. 10
      src/main/java/org/springblade/hospital/newalarm/communicationCom/HTTPClientUtil.java
  4. 15
      src/main/java/org/springblade/hospital/utils/CornJobUtil.java
  5. 1
      src/main/java/org/springblade/hospital/utils/ExternalUtils.java
  6. 2
      src/main/java/org/springblade/hospital/websocket/WebSocketServer.java

@ -21,14 +21,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.gson.Gson;
import com.google.protobuf.ByteString; import com.google.protobuf.ByteString;
import com.google.protobuf.ServiceException;
import com.hisense.device.agent.grpc.Point; import com.hisense.device.agent.grpc.Point;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.json.JSONException;
import org.springblade.common.cache.DictBizCache;
import org.springblade.common.cache.UserCache; import org.springblade.common.cache.UserCache;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.excel.util.ExcelUtil;
@ -36,9 +32,8 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.DigestUtil;
import org.springblade.hospital.agent.utils.DataTrans; import org.springblade.hospital.agent.utils.DataTrans;
import org.springblade.hospital.agent.utils.QueueUtils; import org.springblade.hospital.agent.utils.QueueUtils;
import org.springblade.hospital.entity.AlarmInformation; import org.springblade.hospital.entity.AlarmInformation;
@ -54,11 +49,6 @@ import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.sql.rowset.serial.SerialException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*; import java.util.*;
/** /**
@ -192,20 +182,17 @@ public class AlarmInformationController extends BladeController {
*/ */
@PostMapping("/alarm") @PostMapping("/alarm")
public void alarm(@RequestBody JSONObject json) { public void alarm(@RequestBody JSONObject json) {
// System.out.println("接收到的数据:" + json);
Map map = JSON.parseObject(json.toString(), Map.class); Map map = JSON.parseObject(json.toString(), Map.class);
Map map2 = JSON.parseObject(map.get("data").toString(), Map.class); Map map2 = JSON.parseObject(map.get("data").toString(), Map.class);
if (map2.get("type") != null && "device_event".equals(map2.get("type").toString())) { if (map2.get("type") != null && "device_event".equals(map2.get("type").toString())) {
Map map3 = JSON.parseObject(map2.get("data").toString(), Map.class); Map map3 = JSON.parseObject(map2.get("data").toString(), Map.class);
// System.out.println("map3:" + map3);
// 报警信息数据过滤 // 报警信息数据过滤
if (map3.get("eventList") != null) { if (map3.get("eventList") != null) {
List eventList = JSON.parseObject(map3.get("eventList").toString(), List.class); List eventList = JSON.parseObject(map3.get("eventList").toString(), List.class);
if ("manualAlarm".equals(eventList.get(0))) { if (CollectionUtil.isNotEmpty(eventList) && "manualAlarm".equals(eventList.get(0))) {
// System.out.println("ruku:--------------");
AlarmInformation alarmInformation = new AlarmInformation(); AlarmInformation alarmInformation = new AlarmInformation();
alarmInformation.setType("device_event"); alarmInformation.setType("device_event");
alarmInformation.setReportTime(new Date(Long.parseLong(map.get("time").toString()))); alarmInformation.setReportTime(new Date(Long.parseLong(map.get("time").toString())));
@ -250,6 +237,7 @@ public class AlarmInformationController extends BladeController {
/** /**
* 获取用户加密后密码 * 获取用户加密后密码
*
* @param token * @param token
* @return * @return
*/ */

@ -65,6 +65,11 @@ public class AlarmInformation extends BaseEntity {
*/ */
private String floorNo; private String floorNo;
/**
* 位置
*/
private String address;
/** /**
* 经度 * 经度
*/ */

@ -28,6 +28,7 @@ import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -55,7 +56,7 @@ public class HTTPClientUtil {
int statusCode = client.executeMethod(method); int statusCode = client.executeMethod(method);
log.info("认证状态码:" + statusCode); log.info("认证状态码:" + statusCode);
byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet()); byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
strResponseData = new String(responseData, "utf-8"); strResponseData = new String(responseData, StandardCharsets.UTF_8);
} catch (IOException e) { } catch (IOException e) {
log.error("url:" + rzUrl + ",通讯出现错误,错误信息是:" + e.toString()); log.error("url:" + rzUrl + ",通讯出现错误,错误信息是:" + e.toString());
//出现错误,每隔30s,重新尝试调用 //出现错误,每隔30s,重新尝试调用
@ -80,7 +81,7 @@ public class HTTPClientUtil {
method.setDoAuthentication(true); method.setDoAuthentication(true);
int statusCode = client.executeMethod(method); int statusCode = client.executeMethod(method);
byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet()); byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
String strResponseData = new String(responseData, "utf-8"); String strResponseData = new String(responseData, StandardCharsets.UTF_8);
method.releaseConnection(); method.releaseConnection();
// 输出接收的消息 // 输出接收的消息
return strResponseData; return strResponseData;
@ -97,7 +98,7 @@ public class HTTPClientUtil {
// Return response message // Return response message
byte[] responseBody = method.getResponseBodyAsString().getBytes(method.getResponseCharSet()); byte[] responseBody = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
// Use encoding in the Return response message (utf-8 or gb2312) // Use encoding in the Return response message (utf-8 or gb2312)
response = new String(responseBody, "utf-8"); response = new String(responseBody, StandardCharsets.UTF_8);
} catch (IOException e) { } catch (IOException e) {
log.error("url:" + url + ",通讯出现错误,错误信息是:" + e.toString()); log.error("url:" + url + ",通讯出现错误,错误信息是:" + e.toString());
//出现错误,每隔1s,重新尝试调用 //出现错误,每隔1s,重新尝试调用
@ -125,7 +126,7 @@ public class HTTPClientUtil {
// Return response message // Return response message
byte[] responseBody = method.getResponseBodyAsString().getBytes(method.getResponseCharSet()); byte[] responseBody = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
// // Use encoding in the Return response message (utf-8 or gb2312) // // Use encoding in the Return response message (utf-8 or gb2312)
String response = new String(responseBody, "utf-8"); String response = new String(responseBody, StandardCharsets.UTF_8);
// // Release the connection // // Release the connection
method.releaseConnection(); method.releaseConnection();
return response; return response;
@ -216,6 +217,7 @@ public class HTTPClientUtil {
Map tagsMap = JSONObject.parseObject(s, Map.class); Map tagsMap = JSONObject.parseObject(s, Map.class);
alarmInformation.setFloorNo(tagsMap.get("floorNo").toString()); alarmInformation.setFloorNo(tagsMap.get("floorNo").toString());
alarmInformation.setBuildId(tagsMap.get("buildingNo").toString()); alarmInformation.setBuildId(tagsMap.get("buildingNo").toString());
alarmInformation.setAddress(tagsMap.get("address").toString());
if (tagsMap.get("coordinate") != null) { if (tagsMap.get("coordinate") != null) {
String coordinate = tagsMap.get("coordinate").toString(); String coordinate = tagsMap.get("coordinate").toString();
alarmInformation.setLatidute(coordinate.split("-")[0]); alarmInformation.setLatidute(coordinate.split("-")[0]);

@ -40,7 +40,6 @@ public class CornJobUtil {
@Async @Async
@Scheduled(initialDelay = 5000, fixedRate = 60000) @Scheduled(initialDelay = 5000, fixedRate = 60000)
public void updateStatus() { public void updateStatus() {
log.info("定时1分钟获取1次设备状态");
externalUtils.updateStatus(); externalUtils.updateStatus();
} }
@ -102,18 +101,4 @@ public class CornJobUtil {
cornJobService.updateBatchById(jobList); cornJobService.updateBatchById(jobList);
} }
} }
// @Async
// @Scheduled(initialDelay = 7000, fixedRate = 3600000)
public void testWebSocket() {
// System.out.println("定时任务执行了3");
// AlarmInformation alarmInformation = new AlarmInformation();
// alarmInformation.setReportTime(new Date());
// alarmInformation.setBuildId("2");
// alarmInformation.setFloorNo("2");
// alarmInformation.setContent("测试报警信息");
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("message", JSONObject.toJSONString(alarmInformation));
// WebSocketServer.sendInfo(jsonObject);
}
} }

@ -176,6 +176,7 @@ public class ExternalUtils {
// log.info("statusData" + status + "===" + statusData); // log.info("statusData" + status + "===" + statusData);
Map statusMap = JSONObject.parseObject(statusData, Map.class); Map statusMap = JSONObject.parseObject(statusData, Map.class);
log.info(statusMap.toString());
Map alarmHostStatus = JSONObject.parseObject(statusMap.get("AlarmHostStatus").toString(), Map.class); Map alarmHostStatus = JSONObject.parseObject(statusMap.get("AlarmHostStatus").toString(), Map.class);
Map communiStatus = JSONObject.parseObject(alarmHostStatus.get("CommuniStatus").toString(), Map.class); Map communiStatus = JSONObject.parseObject(alarmHostStatus.get("CommuniStatus").toString(), Map.class);
// System.out.println("CommuniStatus" + communiStatus); // System.out.println("CommuniStatus" + communiStatus);

@ -71,7 +71,7 @@ public class WebSocketServer {
webSocketSet.add(this); webSocketSet.add(this);
//在线数加1 //在线数加1
addOnlineCount(); addOnlineCount();
log.info("有新实例开始监听:{},,当前在线人数为:{}", sid, getOnlineCount()); log.info("有新实例开始监听:{},当前在线人数为:{}", sid, getOnlineCount());
this.sid = sid; this.sid = sid;
try { try {
sendMessage("连接成功"); sendMessage("连接成功");

Loading…
Cancel
Save