2023年11月2日15:10:40

main
litao 2 years ago
parent c74c2be7ae
commit 7ebbbbf331
  1. 2
      src/main/java/org/springblade/hospital/agent/utils/QueueUtils.java
  2. 12
      src/main/java/org/springblade/hospital/controller/AlarmInformationController.java
  3. 25
      src/main/java/org/springblade/hospital/controller/AppDataController.java
  4. 20
      src/main/java/org/springblade/hospital/hik/alarm/Alarm.java
  5. 41
      src/main/java/org/springblade/hospital/newalarm/communicationCom/HTTPClientUtil.java
  6. 6
      src/main/java/org/springblade/hospital/utils/CornJobUtil.java
  7. 242
      src/main/java/org/springblade/hospital/utils/ExternalUtils.java
  8. 8
      src/main/java/org/springblade/hospital/websocket/WebSocketServer.java

@ -56,7 +56,7 @@ public class QueueUtils {
public boolean saveQueueDataStatus(Point point) {
//存放数据
System.out.println("队列数据数量:"+blockingQueue_status.size());
// System.out.println("队列数据数量:"+blockingQueue_status.size());
return blockingQueue_status.offer(point);
}

@ -66,7 +66,7 @@ public class AlarmInformationController extends BladeController {
@PostMapping("/hikRemote")
public R hikRemote(@RequestBody Map<String, Object> params) {
System.out.println("-------params:" + params);
// System.out.println("-------params:" + params);
// String data = params.get("data");
// System.out.println("-------data:" + data);
// Point point = new Gson().fromJson(JSON.toJSONString(params), Point.class);
@ -82,13 +82,13 @@ public class AlarmInformationController extends BladeController {
// .setPntTypeValue(Integer.parseInt(String.valueOf(params.get("pntTypeValue_"))))
.build();
System.out.println("-------point:" + point);
// System.out.println("-------point:" + point);
if (point == null) {
return R.success("请求参数不能为空");
}
// 上报海信iot平台
System.out.println(point);
// System.out.println(point);
boolean b = queueUtils.saveQueueDataStatus(point);
return R.status(b);
}
@ -161,7 +161,7 @@ public class AlarmInformationController extends BladeController {
@GetMapping("/playback")
public R playback(String cameraIndexCode, String beginTime, String endTime) throws Exception {
String result = ArtemisPostTest.callPostApiGetRegions(cameraIndexCode, beginTime, endTime);
System.out.println("res:" + result);
// System.out.println("res:" + result);
Map map = JSON.parseObject(result, Map.class);
if ("0".equals(map.get("code"))) {
Map url = (Map) map.get("data");
@ -182,13 +182,13 @@ public class AlarmInformationController extends BladeController {
if (map2.get("type") != null && "device_event".equals(map2.get("type").toString())) {
Map map3 = JSON.parseObject(map2.get("data").toString(), Map.class);
System.out.println("map3:" + map3);
// System.out.println("map3:" + map3);
// 报警信息数据过滤
if (map3.get("eventList") != null) {
List eventList = JSON.parseObject(map3.get("eventList").toString(), List.class);
if ("manualAlarm".equals(eventList.get(0))) {
System.out.println("ruku:--------------");
// System.out.println("ruku:--------------");
AlarmInformation alarmInformation = new AlarmInformation();
alarmInformation.setType("device_event");
alarmInformation.setReportTime(new Date(Long.parseLong(map.get("time").toString())));

@ -118,8 +118,8 @@ public class AppDataController extends BladeController {
String url = paramService.getValue("url");
// 设置请求Header
String appKey = "aS6T6X0u";
String appSecret = "F5pFaRzKdUA7jBzQWlg4UV36Hvej5AdntqjqkWRigio=";
String appKey = "BLjfCFWB";
String appSecret = "V/VznZDAm7v+8NF2f53p9SYpTZQvaS5lyntQOqQFV6Q=";
String zfcAll = "1234567890";
char[] zfc = zfcAll.toCharArray();
@ -408,18 +408,19 @@ public class AppDataController extends BladeController {
//
public static void main(String[] args) {
try {
RestTemplate restTemplate = new RestTemplate();
String url = "http://171.16.8.58:8080/prod-api/api/safeCare/callBack/getDeviceCamera?sn=1918FC32532E";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
HttpEntity request = new HttpEntity(headers);
// 发送get请求,并输出结果
ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
// 返回数据
Map cameraMap = JSONObject.parseObject(exchange.getBody(), Map.class);
// RestTemplate restTemplate = new RestTemplate();
// String url = "http://171.16.8.58:8080/prod-api/api/safeCare/callBack/getDeviceCamera?sn=1918FC32532E";
// HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
// HttpEntity request = new HttpEntity(headers);
// // 发送get请求,并输出结果
// ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
// // 返回数据
// Map cameraMap = JSONObject.parseObject(exchange.getBody(), Map.class);
// String rzUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/System/deviceInfo";
// String renzheng = HTTPClientUtil.renzheng(rzUrl, HTTPClientUtil.client);
String rzUrl = "http://171.16.206.140:80/ISAPI/System/deviceInfo";
String renzheng = HTTPClientUtil.renzheng(rzUrl, HTTPClientUtil.client);
// System.out.println(renzheng.contains("DS-PWA32-H20230524AACHQ25788522WU1"));
// System.out.println("shuchu:" + HTTPClientUtil.renzheng(rzUrl, HTTPClientUtil.client));

@ -29,7 +29,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.stream.Collectors;
/**
@ -47,7 +46,7 @@ public class Alarm implements CommandLineRunner {
static FMSGCallBack_V31 fMSFCallBack_V31 = null;
static FMSGCallBack fMSFCallBack;
static Map<String, Integer> numMap;
static Map<String, HttpClient> clientMap = new HashMap<>();
// static Map<String, HttpClient> clientMap = new HashMap<>();
public static Map<String, String> ipMap;
public static Map<String, String> portMap;
public static Map<String, String> macMap;
@ -521,9 +520,6 @@ public class Alarm implements CommandLineRunner {
@Override
public void run(String... args) {
try {
if (clientMap == null) {
clientMap = new HashMap<>();
}
if (ipMap == null) {
ipMap = new HashMap<>();
}
@ -538,23 +534,23 @@ public class Alarm implements CommandLineRunner {
AtomicInteger size = new AtomicInteger(0);
List<Thread> threadList = new ArrayList<>();
ScheduledFuture<?> scheduledFuture = scheduled.scheduleAtFixedRate(() -> {
log.info("我执行了1");
List<Map> list = externalUtils.getList(0, 0, null, null, "105", null);
log.info("获取报警主机列表数量为:" + list.size());
if(list.size() != size.get()){
if (list.size() != size.get()) {
size.set(list.size());
if(threadList.size() > 0){
for(Thread thread : threadList){
if (threadList.size() > 0) {
for (Thread thread : threadList) {
thread.interrupt();
}
}
threadList.clear();
// 物联网平台获取的报警主机列表
getList(list,threadList);
getList(list, threadList);
}
}, 0, 1, TimeUnit.DAYS);
} catch (Exception e) {
e.printStackTrace();
}
@ -656,7 +652,7 @@ public class Alarm implements CommandLineRunner {
// hCNetSDK.NET_DVR_Cleanup();
}
public void getList(List<Map> list,List<Thread> threadList){
public void getList(List<Map> list, List<Thread> threadList) {
if (CollectionUtils.isNotEmpty(list)) {
HTTPClientUtil clientUtil = new HTTPClientUtil();
for (Map map : list) {
@ -672,7 +668,7 @@ public class Alarm implements CommandLineRunner {
String mac = tagsMap.get("mac").toString();
HttpClient client = new HttpClient();
clientMap.put(number, client);
// clientMap.put(number, client);
ipMap.put(number, ip);
portMap.put(number, port);
macMap.put(mac, number);

@ -34,6 +34,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Slf4j
public class HTTPClientUtil {
@ -57,7 +58,7 @@ public class HTTPClientUtil {
byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
strResponseData = new String(responseData, "utf-8");
} catch (IOException e) {
log.error("url:"+rzUrl+",通讯出现错误,错误信息是:" + e.toString());
log.error("url:" + rzUrl + ",通讯出现错误,错误信息是:" + e.toString());
//出现错误,每隔1s,重新尝试调用
try {
Thread.sleep(1000);
@ -72,7 +73,21 @@ public class HTTPClientUtil {
return strResponseData;
}
public static String doGet(String url, HttpClient client){
public static String statusRz(String rzUrl, HttpClient client) throws IOException {
// 设置用户名和密码
UsernamePasswordCredentials creds = new UsernamePasswordCredentials("admin", "hao12345");
client.getState().setCredentials(AuthScope.ANY, creds);
GetMethod method = new GetMethod(rzUrl);
method.setDoAuthentication(true);
int statusCode = client.executeMethod(method);
byte[] responseData = method.getResponseBodyAsString().getBytes(method.getResponseCharSet());
String strResponseData = new String(responseData, "utf-8");
method.releaseConnection();
// 输出接收的消息
return strResponseData;
}
public static String doGet(String url, HttpClient client) {
GetMethod method = new GetMethod(url);
method.setDoAuthentication(true);
@ -85,7 +100,7 @@ public class HTTPClientUtil {
// Use encoding in the Return response message (utf-8 or gb2312)
response = new String(responseBody, "utf-8");
} catch (IOException e) {
log.error("url:"+url+",通讯出现错误,错误信息是:" + e.toString());
log.error("url:" + url + ",通讯出现错误,错误信息是:" + e.toString());
//出现错误,每隔1s,重新尝试调用
try {
Thread.sleep(1000);
@ -136,10 +151,12 @@ public class HTTPClientUtil {
List<Map> list = new ArrayList<>();
while ((str = br.readLine()) != null && !Thread.currentThread().isInterrupted()) {
// log.info("读取导数据,开始解析" + str);
try {
Thread.sleep(1000);
// 检查线程是否打断
Thread.sleep(10);
} catch (Exception e) {
System.out.println("Thread 停止!");
log.info("Thread 停止!");
break;
}
if (str.contains("--boundary")) {
@ -148,7 +165,7 @@ public class HTTPClientUtil {
if (resMap.get("CIDEvent") != null) {
// 报警信息
Map cidMap = JSON.parseObject(resMap.get("CIDEvent").toString(), Map.class);
System.out.println("报警信息:" + cidMap);
log.info("报警信息:" + cidMap);
if (externalUtils == null) {
externalUtils = SpringUtil.getBean(ExternalUtils.class);
@ -179,7 +196,9 @@ public class HTTPClientUtil {
alarmInformation.setReportTime(new Date());
alarmInformation.setType(sCIDCode);
alarmInformation.setContent(DictBizCache.getValue("alarm_message_type", sCIDCode));
alarmInformation.setSystemNum(Integer.parseInt(cidMap.get("system").toString()));
if (cidMap.get("system") != null) {
alarmInformation.setSystemNum(Integer.parseInt(cidMap.get("system").toString()));
}
alarmInformation.setHostSerialNumber(sSerialNumber);
alarmInformation.setHostIp(resMap.get("ipAddress").toString());
alarmInformation.setAlarmType(1);
@ -270,12 +289,12 @@ public class HTTPClientUtil {
}
// System.out.println("接收到的数据:" + resMap);
}
// System.out.println(sSerialNumber + "接收到的数据:" + str);
// log.info("开始下次循环读数据。");
}
log.info("读数据结束,释放连接");
method.releaseConnection();
} catch (IOException e) {
log.error("url:"+url+",通讯出现错误,错误信息是:" + e.toString());
} catch (Exception e) {
log.error("url:" + url + ",通讯出现错误,错误信息是:" + e.toString());
//出现错误,每隔1s,重新尝试调用
try {
Thread.sleep(1000);

@ -51,7 +51,7 @@ public class CornJobUtil {
* 定时更新设备状态每1分钟执行一次
*/
@Async
// @Scheduled(initialDelay = 5000, fixedRate = 60000)
@Scheduled(initialDelay = 5000, fixedRate = 60000)
public void updateStatus() {
System.out.println("定时1分钟获取1次设备状态");
externalUtils.updateStatus();
@ -63,7 +63,7 @@ public class CornJobUtil {
@Async
// @Scheduled(initialDelay = 6000, fixedRate = 180000)
public void task() {
System.out.println("定时任务执行了2");
// System.out.println("定时任务执行了2");
List<CornJob> jobs = cornJobService.list(Wrappers.<CornJob>lambdaQuery().eq(CornJob::getStatus, 1).eq(CornJob::getIsRegular, 1));
if (CollectionUtils.isNotEmpty(jobs)) {
List<CornJob> jobList = new ArrayList<>();
@ -72,7 +72,7 @@ public class CornJobUtil {
if (new Date().compareTo(nextExecuteTime) < 0) {
continue;
}
System.out.println("-----------------====================");
// System.out.println("-----------------====================");
try {
if (StringUtils.isNotBlank(job.getDeviceId())) {
String[] ids = job.getDeviceId().split(",");

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.google.protobuf.ByteString;
import com.hisense.device.agent.grpc.Point;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.cache.ParamCache;
import org.springblade.core.cache.utils.CacheUtil;
@ -22,6 +23,7 @@ import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -32,6 +34,7 @@ import static org.springblade.common.constant.CommonConstant.IOT_PLATFORM_URL;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@Component
@Slf4j
public class ExternalUtils {
@Autowired
@ -63,7 +66,7 @@ public class ExternalUtils {
String data = JSON.toJSONString(r.getData());
Map<String, String> map = JSONObject.parseObject(data, Map.class);
String token = map.get("token");
System.out.println("token" + token);
// System.out.println("token" + token);
return token;
}
@ -138,145 +141,154 @@ public class ExternalUtils {
* 更新设备状态
*/
public void updateStatus() {
// 报警主机信息
List<Map> hosts = getList(0, 0, null, null, "105", null);
List<Map> hosts = null;
List<Map> mapList = null;
try {
// 报警主机信息
hosts = getList(0, 0, null, null, "105", null);
// 子系统、防区信息
List<Map> mapList = getList(0, 0, null, null, "100", null);
// 子系统、防区信息
mapList = getList(0, 0, null, null, "100", null);
} catch (Exception e) {
log.info("获取设备信息失败!");
}
// 遍历设备列表更新设备状态信息
if (CollectionUtils.isNotEmpty(hosts)) {
try {
for (Map hostMap : hosts) {
String tags = JSON.toJSONString(hostMap.get("tags")).replace("\\", "");
tags = tags.substring(1, tags.length() - 1);
Map tagMap = JSONObject.parseObject(tags, Map.class);
String number = tagMap.get("hostNumber").toString(); // 序列号
String mac = tagMap.get("mac").toString(); // 自定义mac
// 认证
for (Map hostMap : hosts) {
String tags = JSON.toJSONString(hostMap.get("tags")).replace("\\", "");
tags = tags.substring(1, tags.length() - 1);
Map tagMap = JSONObject.parseObject(tags, Map.class);
String number = tagMap.get("hostNumber").toString(); // 序列号
String mac = tagMap.get("mac").toString(); // 自定义mac
// 认证
String renzheng = null;
try {
String rzUrl = "http://" + Alarm.ipMap.get(number) + ":" + Alarm.portMap.get(number) + "/ISAPI/System/deviceInfo";
String renzheng = HTTPClientUtil.renzheng(rzUrl, HTTPClientUtil.client);
renzheng = HTTPClientUtil.statusRz(rzUrl, HTTPClientUtil.client);
} catch (IOException e) {
log.info("该设备连接失败!");
continue;
}
if (renzheng.contains(number)) {
// 获取该报警主机的所有状态
String status = "http://" + Alarm.ipMap.get(number) + ":" + Alarm.portMap.get(number) + "/ISAPI/SecurityCP/status/host?format=json";
String statusData = HTTPClientUtil.doGet(status, HTTPClientUtil.client);
if (renzheng.contains(number)) {
// 获取该报警主机的所有状态
String status = "http://" + Alarm.ipMap.get(number) + ":" + Alarm.portMap.get(number) + "/ISAPI/SecurityCP/status/host?format=json";
String statusData = HTTPClientUtil.doGet(status, HTTPClientUtil.client);
Map statusMap = JSONObject.parseObject(statusData, Map.class);
Map alarmHostStatus = JSONObject.parseObject(statusMap.get("AlarmHostStatus").toString(), Map.class);
Map communiStatus = JSONObject.parseObject(alarmHostStatus.get("CommuniStatus").toString(), Map.class);
System.out.println("CommuniStatus" + communiStatus);
Map statusMap = JSONObject.parseObject(statusData, Map.class);
Map alarmHostStatus = JSONObject.parseObject(statusMap.get("AlarmHostStatus").toString(), Map.class);
Map communiStatus = JSONObject.parseObject(alarmHostStatus.get("CommuniStatus").toString(), Map.class);
// System.out.println("CommuniStatus" + communiStatus);
// 如果通讯断开跳过
if (!"normal".equals(communiStatus.get("wired"))) {
continue;
}
// 如果通讯断开跳过
if (!"normal".equals(communiStatus.get("wired"))) {
continue;
}
// 防区状态
List<Map> zoneList = JSONObject.parseObject(alarmHostStatus.get("ZoneList").toString(), List.class);
System.out.println("ZoneList" + zoneList);
// 子系统状态
List<Map> subSysList = JSONObject.parseObject(alarmHostStatus.get("SubSysList").toString(), List.class);
System.out.println("SubSysList" + subSysList);
// 过滤只有该报警主机下的子系统、防区
List<Map> list = mapList.stream().filter(map -> JSON.toJSONString(map.get("tags")).contains(number)).collect(Collectors.toList());
for (Map map : list) {
// 物联网设备状态
int state = Integer.parseInt(String.valueOf(map.get("status")));
String s = JSON.toJSONString(map.get("tags")).replace("\\", "");
s = s.substring(1, s.length() - 1);
Map tagsMap = JSONObject.parseObject(s, Map.class);
String id = tagsMap.get("pmac").toString();
String type = tagsMap.get("type").toString();
// 防区号/子系统号
int sCIDCode = Integer.parseInt(tagsMap.get("buildingNo").toString());
// 设备真实状态
int fqStatus = 0;
int presence = 0;
if ("2".equals(type)) {
presence = 1;
List<Map> zones = zoneList.stream().filter(zone -> Integer.parseInt(JSONObject.parseObject(zone.get("Zone").toString(), Map.class).get("id").toString()) == sCIDCode - 1).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(zones)) {
Map zoneMap = zones.get(0);
Map zone = JSONObject.parseObject(zoneMap.get("Zone").toString(), Map.class);
// 防区布防状态 0-对应防区处于撤防状态,1-对应防区处于布防状态
int bySetupAlarmStatus = 0;
if ((boolean) zone.get("isArming")) {
bySetupAlarmStatus = 1;
}
// 防区状态
List<Map> zoneList = JSONObject.parseObject(alarmHostStatus.get("ZoneList").toString(), List.class);
// System.out.println("ZoneList" + zoneList);
// 子系统状态
List<Map> subSysList = JSONObject.parseObject(alarmHostStatus.get("SubSysList").toString(), List.class);
// System.out.println("SubSysList" + subSysList);
// 过滤只有该报警主机下的子系统、防区
List<Map> list = mapList.stream().filter(map -> JSON.toJSONString(map.get("tags")).contains(number)).collect(Collectors.toList());
for (Map map : list) {
// 物联网设备状态
int state = Integer.parseInt(String.valueOf(map.get("status")));
String s = JSON.toJSONString(map.get("tags")).replace("\\", "");
s = s.substring(1, s.length() - 1);
Map tagsMap = JSONObject.parseObject(s, Map.class);
String id = tagsMap.get("pmac").toString();
String type = tagsMap.get("type").toString();
// 防区号/子系统号
int sCIDCode = Integer.parseInt(tagsMap.get("buildingNo").toString());
// 设备真实状态
int fqStatus = 0;
int presence = 0;
if ("2".equals(type)) {
presence = 1;
List<Map> zones = zoneList.stream().filter(zone -> Integer.parseInt(JSONObject.parseObject(zone.get("Zone").toString(), Map.class).get("id").toString()) == sCIDCode - 1).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(zones)) {
Map zoneMap = zones.get(0);
Map zone = JSONObject.parseObject(zoneMap.get("Zone").toString(), Map.class);
// 防区布防状态 0-对应防区处于撤防状态,1-对应防区处于布防状态
int bySetupAlarmStatus = 0;
if ((boolean) zone.get("isArming")) {
bySetupAlarmStatus = 1;
}
// 防区旁路状态 0-表示防区没有旁路 1-表示防区旁路
int byBypassStatus = 0;
if ((boolean) zone.get("bypassed")) {
byBypassStatus = 1;
}
// 防区旁路状态 0-表示防区没有旁路 1-表示防区旁路
int byBypassStatus = 0;
if ((boolean) zone.get("bypassed")) {
byBypassStatus = 1;
}
// 防区故障状态,0-对应防区处于正常状态,1-对应防区处于故障状态
int byAlarmInFaultStatus = 0;
if ("breakDown".equals(zone.get("status"))) {
byAlarmInFaultStatus = 1;
}
// 防区故障状态,0-对应防区处于正常状态,1-对应防区处于故障状态
int byAlarmInFaultStatus = 0;
if ("breakDown".equals(zone.get("status"))) {
byAlarmInFaultStatus = 1;
}
// 防区报警状态,0-对应防区当前无报警,1-对应防区当前有报警
int byAlarmInStatus = 0;
if ((boolean) zone.get("alarm")) {
byAlarmInStatus = 1;
}
// 防区报警状态,0-对应防区当前无报警,1-对应防区当前有报警
int byAlarmInStatus = 0;
if ((boolean) zone.get("alarm")) {
byAlarmInStatus = 1;
}
// 上报防区报警状态
// 上报防区报警状态
// updateById(id, 7, byAlarmInStatus, type);
// test1(id, 7, byAlarmInStatus, 2);
// test1(id, 7, 1, 2);
// 撤防-6 布防-5 旁路-7
if (byAlarmInFaultStatus == 0) {
if (bySetupAlarmStatus == 1) {
fqStatus = 5;
} else if (bySetupAlarmStatus == 0 && byBypassStatus == 0) {
fqStatus = 6;
} else if (byBypassStatus == 1) {
fqStatus = 7;
}
} else {
fqStatus = 4;
}
}
} else if ("3".equals(type)) {
presence = 2;
List<Map> subSyss = subSysList.stream().filter(sys -> Integer.parseInt(JSONObject.parseObject(sys.get("SubSys").toString(), Map.class).get("id").toString()) == sCIDCode).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(subSyss)) {
Map sysMap = subSyss.get(0);
Map subSys = JSONObject.parseObject(sysMap.get("SubSys").toString(), Map.class);
//子系统布防状态,0-对应子系统处于撤防状态,1-对应子系统处于布防状态
fqStatus = 6;
if (!"disarm".equals(subSys.get("arming"))) {
// 撤防-6 布防-5 旁路-7
if (byAlarmInFaultStatus == 0) {
if (bySetupAlarmStatus == 1) {
fqStatus = 5;
} else if (bySetupAlarmStatus == 0 && byBypassStatus == 0) {
fqStatus = 6;
} else if (byBypassStatus == 1) {
fqStatus = 7;
}
} else {
fqStatus = 4;
}
}
} else if ("3".equals(type)) {
presence = 2;
List<Map> subSyss = subSysList.stream().filter(sys -> Integer.parseInt(JSONObject.parseObject(sys.get("SubSys").toString(), Map.class).get("id").toString()) == sCIDCode).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(subSyss)) {
Map sysMap = subSyss.get(0);
Map subSys = JSONObject.parseObject(sysMap.get("SubSys").toString(), Map.class);
//子系统布防状态,0-对应子系统处于撤防状态,1-对应子系统处于布防状态
fqStatus = 6;
if (!"disarm".equals(subSys.get("arming"))) {
fqStatus = 5;
}
}
}
// 海信iot
updateById(id, fqStatus, presence, type);
// 海信iot
updateById(id, fqStatus, presence, type);
// test(id, fqStatus, presence, type);
if (fqStatus == state) {
continue;
}
// 物联网平台
bizDevice(Integer.parseInt(String.valueOf(map.get("id"))), fqStatus);
if (fqStatus == state) {
continue;
}
// 物联网平台
bizDevice(Integer.parseInt(String.valueOf(map.get("id"))), fqStatus);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
@ -371,7 +383,7 @@ public class ExternalUtils {
CacheUtil.put(SYS_CACHE, "token:id:", "wlwtoken", token);
respon = device(token, id, status);
}
System.out.println(respon);
// System.out.println(respon);
}
private Map device(String token, int id, int status) {
@ -464,6 +476,6 @@ public class ExternalUtils {
// 发送post请求,并输出结果
R r = restTemplate.postForObject(url, httpEntity, R.class);
System.out.println("调用远程服务器接口成功!!:" + r);
// System.out.println("调用远程服务器接口成功!!:" + r);
}
}

@ -50,7 +50,7 @@ public class WebSocketServer {
// 如果有重复sid连接,拒绝
for (WebSocketServer webSocketServer : webSocketSet) {
if (sid.equals(webSocketServer.sid)) {
System.out.println(sid + "已存在,拒绝连接!");
// System.out.println(sid + "已存在,拒绝连接!");
// try {
// session.getBasicRemote().sendText(sid + "已存在,拒绝连接!");
// System.out.println("当前连接:" + session);
@ -98,7 +98,7 @@ public class WebSocketServer {
*/
@OnMessage
public void onMessage(String message, Session session) {
log.info("收到来自实例:{},的信息:{}", sid, message);
// log.info("收到来自实例:{},的信息:{}", sid, message);
//群发消息
for (WebSocketServer webSocketServer : webSocketSet) {
try {
@ -140,7 +140,7 @@ public class WebSocketServer {
System.out.println("webSocketSet连接数量:" + webSocketSet.size());
for (WebSocketServer item : webSocketSet) {
try {
System.out.println(item.sid + "===" + item.session);
// System.out.println(item.sid + "===" + item.session);
item.sendMessage(message);
} catch (Exception e) {
continue;
@ -149,7 +149,7 @@ public class WebSocketServer {
}
public static void test() {
System.out.println("webSocketSet连接数量:" + webSocketSet.size());
// System.out.println("webSocketSet连接数量:" + webSocketSet.size());
for (WebSocketServer item : webSocketSet) {
System.out.println(item.sid + "===" + item.session);
}

Loading…
Cancel
Save