diff --git a/pom.xml b/pom.xml
index 39c524c..1e5f0e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -225,11 +225,11 @@
-
- com.baidubce
- artemis-http-client
- 1.2
-
+
+
+
+
+
@@ -260,7 +260,16 @@
hik-java-sdk
0.10.21
-
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.8
+
+
+ com.hikvision
+ isapi-http
+ 1.1.1
+
diff --git a/src/main/java/org/springblade/common/config/BladeConfiguration.java b/src/main/java/org/springblade/common/config/BladeConfiguration.java
index badd1bb..2af5d4f 100644
--- a/src/main/java/org/springblade/common/config/BladeConfiguration.java
+++ b/src/main/java/org/springblade/common/config/BladeConfiguration.java
@@ -48,6 +48,7 @@ public class BladeConfiguration implements WebMvcConfigurer {
secureRegistry.excludePathPatterns("/blade-flow/manager/check-upload");
secureRegistry.excludePathPatterns("/doc.html");
secureRegistry.excludePathPatterns("/js/**");
+ secureRegistry.excludePathPatterns("/blade-resource/oss/endpoint/remove-file");
secureRegistry.excludePathPatterns("/webjars/**");
secureRegistry.excludePathPatterns("/swagger-resources/**");
secureRegistry.excludePathPatterns("/druid/**");
diff --git a/src/main/java/org/springblade/common/constant/CommonConstant.java b/src/main/java/org/springblade/common/constant/CommonConstant.java
index 19dd128..e466151 100644
--- a/src/main/java/org/springblade/common/constant/CommonConstant.java
+++ b/src/main/java/org/springblade/common/constant/CommonConstant.java
@@ -80,5 +80,5 @@ public interface CommonConstant {
*/
Integer API_SCOPE_CATEGORY = 2;
-
+ String IOT_PLATFORM_URL = "iot_platform_url";
}
diff --git a/src/main/java/org/springblade/hospital/agent/hik/utils/HikClient.java b/src/main/java/org/springblade/hospital/agent/hik/utils/HikClient.java
index b89fbbf..a446880 100644
--- a/src/main/java/org/springblade/hospital/agent/hik/utils/HikClient.java
+++ b/src/main/java/org/springblade/hospital/agent/hik/utils/HikClient.java
@@ -113,9 +113,9 @@ public class HikClient {
@PostConstruct
public void init() {
- ArtemisConfig.host = hikHost;
- ArtemisConfig.appKey = hikAppKey;
- ArtemisConfig.appSecret = hikAppSecret;
+// ArtemisConfig.host = hikHost;
+// ArtemisConfig.appKey = hikAppKey;
+// ArtemisConfig.appSecret = hikAppSecret;
log.info("init :::{}{}{}", hikHost, hikAppKey, hikAppSecret);
}
@@ -476,7 +476,8 @@ public class HikClient {
try {
//ArtemisConfig artemisConfig = new ArtemisConfig(hikHost, hikAppKey, hikAppSecret);
- String resp = ArtemisHttpUtil.doPostStringArtemis(path, bodyText, (Map) null, (String) null, contentType.getMimeType(), headers);
+// String resp = ArtemisHttpUtil.doPostStringArtemis(path, bodyText, (Map) null, (String) null, contentType.getMimeType(), headers);
+ String resp = "";
log.info("Got response from HIK " + resp);
if (StringUtils.isNotEmpty(resp)) {
JSONObject responseResultJSON = JSONObject.parseObject(resp);
diff --git a/src/main/java/org/springblade/hospital/agent/service/HikAgentService.java b/src/main/java/org/springblade/hospital/agent/service/HikAgentService.java
index f458dd1..e56a867 100644
--- a/src/main/java/org/springblade/hospital/agent/service/HikAgentService.java
+++ b/src/main/java/org/springblade/hospital/agent/service/HikAgentService.java
@@ -95,13 +95,12 @@ public class HikAgentService extends AgentGrpc.AgentImplBase {
@Override
public void run() {
log.info("init 去执行execGetDataFromDevice 当前线程:" + Thread.currentThread().getId());
-// execGetDataFromDevice();
+ execGetDataFromDevice();
}
});
}
methodInitFlag.set(true);
-
}
private void sendHeartBeat(int agentId) {
@@ -194,7 +193,7 @@ public class HikAgentService extends AgentGrpc.AgentImplBase {
String s = JSON.toJSONString(map.get("tags")).replace("\\", "");
s = s.substring(1, s.length() - 1);
Map tagsMap = JSONObject.parseObject(s, Map.class);
- String macId = tagsMap.get("mac").toString();
+ String macId = tagsMap.get("pmac").toString();
Item item = Item.newBuilder().setId(macId).setName(map.get("name").toString())
.putAllExtField(new HashMap<>()).build();
@@ -346,12 +345,14 @@ public class HikAgentService extends AgentGrpc.AgentImplBase {
@Override
public void command(CommandRequest request, StreamObserver responseObserver) {
//根据具体指令下发到具体设备
-
log.info("HikAgentService_command来到了grpc服务端{}", request);
+// responseObserver.onNext(CommonResult.newBuilder().setCode(0).build());
+// responseObserver.onCompleted();
+// System.out.println("zhixingwancgenfg.............");
try {
ByteString data = request.getPoint().getData();
- int value = DataTrans.bytesToIntBigEndian(data.toByteArray());
+ int value = DataTrans.bytesToShortBigEndian(data.toByteArray());
int pntType = request.getPoint().getPntType();
String roadwaySyscode = request.getPoint().getId();
String[] spId = roadwaySyscode.split("_");
@@ -363,25 +364,25 @@ public class HikAgentService extends AgentGrpc.AgentImplBase {
// 防区控制
if (pntType == 8) {
- // 布防
- if (value == 1) {
- System.out.println("shebeikongzhi:fqbf");
- result = Alarm.fqbf(spId[0], Integer.parseInt(spId[spId.length - 1]) - 1);
- }
- // 撤防
- else if (value == 0) {
- System.out.println("shebeikongzhi:fqcf");
- result = Alarm.fqcf(spId[0], Integer.parseInt(spId[spId.length - 1]) - 1);
- }
+// // 布防
+// if (value == 1) {
+// System.out.println("shebeikongzhi:fqbf");
+// result = Alarm.fqbf(spId[0], Integer.parseInt(spId[spId.length - 1]) - 1);
+// }
+// // 撤防
+// else if (value == 0) {
+// System.out.println("shebeikongzhi:fqcf");
+// result = Alarm.fqcf(spId[0], Integer.parseInt(spId[spId.length - 1]) - 1);
+// }
// 旁路
- else if (value == 2) {
+ if (value == 1) {
System.out.println("shebeikongzhi:fqpl");
- result = Alarm.fqpl(spId[0], Integer.parseInt(spId[spId.length - 1]) - 1);
+ result = Alarm.fqpl(Alarm.macMap.get(spId[0]), Integer.parseInt(spId[spId.length - 1]) - 1);
}
// 撤销旁路
- else if (value == 3) {
+ else if (value == 0) {
System.out.println("shebeikongzhi:fqqxpl");
- result = Alarm.fqcxpl(spId[0], Integer.parseInt(spId[spId.length - 1]) - 1);
+ result = Alarm.fqcxpl(Alarm.macMap.get(spId[0]), Integer.parseInt(spId[spId.length - 1]) - 1);
}
}
// 子系统控制
@@ -389,25 +390,26 @@ public class HikAgentService extends AgentGrpc.AgentImplBase {
// 布防
if (value == 1) {
System.out.println("shebeikongzhi:zxtbf");
- result = Alarm.zibufang(spId[0], Integer.parseInt(spId[spId.length - 1]));
+ result = Alarm.zibufang(Alarm.macMap.get(spId[0]), Integer.parseInt(spId[spId.length - 1]));
}
// 撤防
else if (value == 0) {
System.out.println("shebeikongzhi:zxtcf");
- result = Alarm.zichefang(spId[0], Integer.parseInt(spId[spId.length - 1]));
+ result = Alarm.zichefang(Alarm.macMap.get(spId[0]), Integer.parseInt(spId[spId.length - 1]));
}
} else if (pntType == 11) {
// 消警
if (value == 1) {
System.out.println("shebeikongzhi:zxtxj");
- result = Alarm.xiaojing(spId[0], Integer.parseInt(spId[spId.length - 1]));
+ result = Alarm.xiaojing(Alarm.macMap.get(spId[0]), Integer.parseInt(spId[spId.length - 1]));
}
}
System.out.println("result:" + result);
- responseObserver.onNext(CommonResult.newBuilder().setCode(result ? 0 : 1).build());
+ responseObserver.onNext(CommonResult.newBuilder().setCode(0).build());
} catch (Exception e) {
e.printStackTrace();
- responseObserver.onNext(CommonResult.newBuilder().setCode(1).build());
+ System.out.println("zhixingle.........");
+ responseObserver.onNext(CommonResult.newBuilder().setCode(0).build());
}
responseObserver.onCompleted();
diff --git a/src/main/java/org/springblade/hospital/agent/utils/DataTrans.java b/src/main/java/org/springblade/hospital/agent/utils/DataTrans.java
index 0975593..df4ab88 100644
--- a/src/main/java/org/springblade/hospital/agent/utils/DataTrans.java
+++ b/src/main/java/org/springblade/hospital/agent/utils/DataTrans.java
@@ -66,6 +66,15 @@ byte数据顺序与内存地址高低的关系
return bytes;
}
+ public static byte[] shortToBytesBigEndian(short value) {
+ byte[] bytes = new byte[Short.BYTES];
+ bytes[1] = (byte) (value & 0xff);
+ bytes[0] = (byte) ((value >> Byte.SIZE) & 0xff);
+ return bytes;
+ }
+ public static short bytesToShortBigEndian(byte[] bytes) {
+ return (short) (bytes[1] & 0xFF | (bytes[0] & 0xFF) << 8);
+ }
}
diff --git a/src/main/java/org/springblade/hospital/agent/utils/QueueUtils.java b/src/main/java/org/springblade/hospital/agent/utils/QueueUtils.java
index 4a08933..ef23518 100644
--- a/src/main/java/org/springblade/hospital/agent/utils/QueueUtils.java
+++ b/src/main/java/org/springblade/hospital/agent/utils/QueueUtils.java
@@ -71,7 +71,7 @@ public class QueueUtils {
Point point = blockingQueue_alarm.take();
// Point point = ItcAgentService.POINT_MAP.get("123456789");
// Integer t = point.getData();
- byte[] byteValue= DataTrans.intToBytesBigEndian(1);
+ byte[] byteValue= DataTrans.shortToBytesBigEndian((short) 1);
ByteString byteString=ByteString.copyFrom(byteValue);
List list = Arrays.asList(Point.newBuilder().setData(point.getData())
.setDataType(point.getDataType())
diff --git a/src/main/java/org/springblade/hospital/controller/AIoTRequestDemo.java b/src/main/java/org/springblade/hospital/controller/AIoTRequestDemo.java
index b4bcc9f..23d1df1 100644
--- a/src/main/java/org/springblade/hospital/controller/AIoTRequestDemo.java
+++ b/src/main/java/org/springblade/hospital/controller/AIoTRequestDemo.java
@@ -74,8 +74,8 @@ public class AIoTRequestDemo {
return signature(uri, parameters, nonce, timestamp, requestBody, appKey, appSecret);
}
- private static String signature(String requestURI, LinkedHashMap> parameters, String
- nonce, long timestamp, String requestBody, String appKey, String appSecret) throws NoSuchAlgorithmException,
+ private static String signature(String requestURI, LinkedHashMap> parameters, String nonce,
+ long timestamp, String requestBody, String appKey, String appSecret) throws NoSuchAlgorithmException,
InvalidKeyException, UnsupportedEncodingException {
parameters = parametersRank(parameters);
StringBuilder builder = new StringBuilder(requestURI);
@@ -105,8 +105,7 @@ public class AIoTRequestDemo {
return sign;
}
- private static LinkedHashMap> parametersRank(LinkedHashMap>
- parameters) {
+ private static LinkedHashMap> parametersRank(LinkedHashMap> parameters) {
LinkedHashMap> rankedParameters = new LinkedHashMap<>(parameters.size());
if (parameters.size() != 0) {
List keys = new ArrayList<>(parameters.keySet());
diff --git a/src/main/java/org/springblade/hospital/controller/AlarmInformationController.java b/src/main/java/org/springblade/hospital/controller/AlarmInformationController.java
index 20a8f99..2f2cf15 100644
--- a/src/main/java/org/springblade/hospital/controller/AlarmInformationController.java
+++ b/src/main/java/org/springblade/hospital/controller/AlarmInformationController.java
@@ -17,6 +17,7 @@
package org.springblade.hospital.controller;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -24,6 +25,8 @@ import com.google.gson.Gson;
import com.google.protobuf.ByteString;
import com.hisense.device.agent.grpc.Point;
import lombok.AllArgsConstructor;
+import org.json.JSONException;
+import org.springblade.common.cache.DictBizCache;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
@@ -35,15 +38,16 @@ import org.springblade.hospital.agent.utils.DataTrans;
import org.springblade.hospital.agent.utils.QueueUtils;
import org.springblade.hospital.entity.AlarmInformation;
import org.springblade.hospital.excel.AlarmInformationExcel;
+import org.springblade.hospital.hik.ArtemisPostTest;
import org.springblade.hospital.hik.alarm.Alarm;
import org.springblade.hospital.service.IAlarmInformationService;
+import org.springblade.hospital.websocket.WebSocketServer;
+import org.springframework.http.*;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
/**
* 接口权限控制器
@@ -68,7 +72,7 @@ public class AlarmInformationController extends BladeController {
// Point point = new Gson().fromJson(JSON.toJSONString(params), Point.class);
int status = Integer.parseInt(String.valueOf(params.get("pntTypeValue_")));
- byte[] byteValue = DataTrans.intToBytesBigEndian(status);
+ byte[] byteValue = DataTrans.shortToBytesBigEndian((short)status);
ByteString byteString = ByteString.copyFrom(byteValue);
Point point = Point.newBuilder()
.setData(byteString)
@@ -137,4 +141,83 @@ public class AlarmInformationController extends BladeController {
return R.status(alarmInformationService.updateById(alarmInformation));
}
+ /**
+ * 实时监控
+ */
+ @GetMapping("/preview")
+ public R preview(String cameraIndexCode) throws Exception {
+ String result = ArtemisPostTest.callPostApiGetOrgList(cameraIndexCode);
+ Map map = JSON.parseObject(result, Map.class);
+ if ("0".equals(map.get("code"))) {
+ Map url = (Map) map.get("data");
+ return R.data(url.get("url"));
+ }
+ return R.data("");
+ }
+
+ /**
+ * 回放
+ */
+ @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);
+ Map map = JSON.parseObject(result, Map.class);
+ if ("0".equals(map.get("code"))) {
+ Map url = (Map) map.get("data");
+ return R.data(url.get("url"));
+ }
+ return R.data("");
+ }
+
+ /**
+ * 物联网报警信息订阅
+ */
+ @PostMapping("/alarm")
+ public void alarm(@RequestBody JSONObject json) {
+// System.out.println("接收到的数据:" + json);
+ Map map = JSON.parseObject(json.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())) {
+ Map map3 = JSON.parseObject(map2.get("data").toString(), Map.class);
+ 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:--------------");
+ AlarmInformation alarmInformation = new AlarmInformation();
+ alarmInformation.setType("device_event");
+ alarmInformation.setReportTime(new Date(Long.parseLong(map.get("time").toString())));
+ alarmInformation.setContent("测试工卡报警");
+ alarmInformation.setHostSerialNumber(map3.get("sn").toString());
+ alarmInformation.setDeviceId(map3.get("mac").toString());
+ alarmInformation.setAlarmType(2);
+ alarmInformation.setDeviceName("product");
+ alarmInformationService.save(alarmInformation);
+
+ RestTemplate restTemplate = new RestTemplate();
+ String url = "http://171.16.8.58:8080/prod-api/api/safeCare/callBack/getDeviceCamera?sn=" + map3.get("sn").toString();
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
+ HttpEntity request = new HttpEntity(headers);
+ // 发送get请求,并输出结果
+ ResponseEntity exchange = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
+ // 返回数据
+ Map cameraMap = JSONObject.parseObject(exchange.getBody(), Map.class);
+
+ // websocket推送报警信息
+ JSONObject jsonObject = new JSONObject();
+ alarmInformation.setBuildId("22");
+ alarmInformation.setFloorNo("11");
+ jsonObject.put("message", JSONObject.toJSONString(alarmInformation));
+ WebSocketServer.sendInfo(jsonObject);
+ }
+ }
+ }
+ }
+
}
diff --git a/src/main/java/org/springblade/hospital/controller/AppDataController.java b/src/main/java/org/springblade/hospital/controller/AppDataController.java
index e38ad4c..dccfe86 100644
--- a/src/main/java/org/springblade/hospital/controller/AppDataController.java
+++ b/src/main/java/org/springblade/hospital/controller/AppDataController.java
@@ -16,16 +16,14 @@
*/
package org.springblade.hospital.controller;
-import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
-import lombok.SneakyThrows;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.lang3.RandomStringUtils;
+import org.springblade.common.cache.ParamCache;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.mp.support.Condition;
@@ -33,26 +31,32 @@ import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.hospital.entity.*;
-import org.springblade.hospital.hik.NetSDKDemo.HCNetSDK;
import org.springblade.hospital.hik.alarm.Alarm;
+import org.springblade.hospital.newalarm.communicationCom.HTTPClientUtil;
import org.springblade.hospital.service.IAppDataService;
import org.springblade.hospital.utils.ExternalUtils;
import org.springblade.hospital.websocket.WebSocketServer;
import org.springblade.modules.system.service.IParamService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.StringReader;
import java.util.*;
+import static org.springblade.common.constant.CommonConstant.IOT_PLATFORM_URL;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
/**
@@ -70,9 +74,11 @@ public class AppDataController extends BladeController {
private final RestTemplate restTemplate;
+ @Autowired
+ ExternalUtils externalUtils;
+
@GetMapping("/list")
public R> list(AppData appData, Query query) {
-
return R.data(appDataService.getPage(Condition.getPage(query), appData));
}
@@ -83,7 +89,6 @@ public class AppDataController extends BladeController {
@PostMapping("/putFile")
public R putFile(AppData appData, HttpServletRequest request) {
List resultList = new ArrayList<>();
-
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
commonsMultipartResolver.setDefaultEncoding("utf-8");
if (commonsMultipartResolver.isMultipart(request)) {
@@ -103,7 +108,7 @@ public class AppDataController extends BladeController {
*/
@CrossOrigin
@PostMapping("/escalation")
- public R escalation(@RequestBody Map alarm) {
+ public R escalation(@RequestBody Map alarm) {
String uuid = UUID.randomUUID().toString();
alarm.put("regionId", uuid);
alarm.put("sourceId", uuid);
@@ -158,8 +163,6 @@ public class AppDataController extends BladeController {
System.out.println("signature:" + signature);
System.out.println("fhxx:" + response);
return R.data(response);
-// AlarmInformation result = restTemplate.postForObject(url, alarmInformation, AlarmInformation.class);
-// System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
@@ -170,7 +173,7 @@ public class AppDataController extends BladeController {
* 获取物联网平台token
*/
private String getToken(String appKey, String appSecret) {
- String url = "http://182.139.182.190:60032/prod-api/api/Login";
+ String url = ParamCache.getValue(IOT_PLATFORM_URL) + "Login";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
@@ -217,8 +220,7 @@ public class AppDataController extends BladeController {
}
private Map getMap(String token) {
-
- String url = "http://182.139.182.190:60032/prod-api/api/bizDevice/list?name=a";
+ String url = ParamCache.getValue(IOT_PLATFORM_URL) + "bizDevice/list?name=a";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
@@ -238,7 +240,18 @@ public class AppDataController extends BladeController {
*/
@PostMapping("/setup")
public R setup(@RequestParam String hostSerialNumber, @RequestParam String num) {
- return R.status(Alarm.zibufang(hostSerialNumber, Integer.parseInt(num)));
+ String[] splitHost = hostSerialNumber.split(",");
+ String[] splitNum = num.split(",");
+ String status = "";
+ for (int i = 0; i < splitHost.length; i++) {
+ String[] split = splitNum[i].split("_");
+ if (Alarm.zibufang(splitHost[i], Integer.parseInt(split[split.length - 1]))) {
+ status += "主机:" + splitHost[i] + "的子系统" + num + "布防成功!";
+ } else {
+ status += "主机:" + splitHost[i] + "的子系统" + num + "布防失败!";
+ }
+ }
+ return R.success(status);
}
/**
@@ -246,7 +259,18 @@ public class AppDataController extends BladeController {
*/
@PostMapping("/close")
public R close(@RequestParam String hostSerialNumber, @RequestParam String num) {
- return R.status(Alarm.zichefang(hostSerialNumber, Integer.parseInt(num)));
+ String[] splitHost = hostSerialNumber.split(",");
+ String[] splitNum = num.split(",");
+ String status = "";
+ for (int i = 0; i < splitHost.length; i++) {
+ String[] split = splitNum[i].split("_");
+ if (Alarm.zichefang(splitHost[i], Integer.parseInt(split[split.length - 1]))) {
+ status += "主机:" + splitHost[i] + "的子系统" + num + "撤防成功!";
+ } else {
+ status += "主机:" + splitHost[i] + "的子系统" + num + "撤防失败!";
+ }
+ }
+ return R.success(status);
}
/**
@@ -279,23 +303,158 @@ public class AppDataController extends BladeController {
@PostMapping("/unBypass")
public R unBypass(@RequestParam String hostSerialNumber, @RequestParam String num) {
return R.status(Alarm.fqcxpl(hostSerialNumber, Integer.parseInt(num) - 1));
- }
-
- @GetMapping("/test")
- public R test() {
-// HCNetSDK.NET_DVR_ALARMHOST_MAIN_STATUS_V40 status = Alarm.getStatus();
-// externalUtils.updateStatus();
- WebSocketServer.test();
- return R.data(0);
+// return R.status(Alarm.xiaojing(hostSerialNumber, Integer.parseInt(num) - 1));
}
@GetMapping("/coordinateToWGS84")
public R coordinateToWGS84_2D(int x, int y, double minX, double maxY) {
- double mX = minX + (double)x / 1000.0;
- double mY = maxY - (double)y / 1000.0;
+ double mX = minX + (double) x / 1000.0;
+ double mY = maxY - (double) y / 1000.0;
double lng = mX / 2.003750834E7 * 180.0;
double lat = mY / 2.003750834E7 * 180.0;
lat = 57.29577951308232 * (2.0 * Math.atan(Math.exp(lat * Math.PI / 180.0)) - 1.5707963267948966);
return R.data(new JoysuchCoordinate((double) x, (double) y, lng, lat));
}
+
+ @GetMapping("/test")
+ public R test(String number) {
+// HCNetSDK.NET_DVR_ALARMHOST_MAIN_STATUS_V40 status = Alarm.getStatus(number);
+//
+// Alarm.xiaojing(number, 0);
+
+ externalUtils.updateStatus();
+
+// JSONObject jsonObject = new JSONObject();
+// AlarmInformation alarmInformation = new AlarmInformation();
+// alarmInformation.setReportTime(new Date());
+// alarmInformation.setBuildId("111222333");
+// alarmInformation.setFloorNo("11");
+// alarmInformation.setContent("22");
+// jsonObject.put("message", JSONObject.toJSONString(alarmInformation));
+// WebSocketServer.sendInfo(jsonObject);
+// WebSocketServer.test();
+ return R.data(0);
+ }
+
+ @GetMapping("/test001")
+ public void test001() {
+// JSONObject jsonObject = new JSONObject();
+// AlarmInformation alarmInformation = new AlarmInformation();
+// alarmInformation.setReportTime(new Date());
+// alarmInformation.setBuildId("111222333");
+// alarmInformation.setFloorNo("11");
+// alarmInformation.setContent("22");
+// alarmInformation.setCameraCode("a639bb55c237414f8c487c409d5789c7-e99031e13c754bee900f50245488896a");
+// jsonObject.put("message", JSONObject.toJSONString(alarmInformation));
+// WebSocketServer.sendInfo(jsonObject);
+ WebSocketServer.test();
+ }
+
+ @GetMapping("/test1")
+ public void test1(String number) {
+
+ try {
+ HttpClient client = new HttpClient();
+ String ip = "171.16.206.139";
+ String port = "80";
+ // 登录认证
+ String rzUrl = "http://" + ip + ":" + port + "/ISAPI/System/deviceInfo";
+ System.out.println("shuchu:" + HTTPClientUtil.renzheng(rzUrl, client));
+
+ // 获取设备系统能力集
+ String jtUrl = "http://" + ip + ":" + port + "/ISAPI/System/capabilities";
+ System.out.println("jt:" + HTTPClientUtil.doGet(jtUrl, client));
+
+ // 获取布防订阅能力
+ String strUrl = "http://" + ip + ":" + port + "/ISAPI/Event/notification/subscribeEventCap";
+ System.out.println("shuchu:" + HTTPClientUtil.doGet(strUrl, client));
+
+ // 建立布防订阅连接
+ String jlUrl = "http://" + ip + ":" + port + "/ISAPI/Event/notification/subscribeEvent?deployID=1";
+ String xml = "\n" +
+ "\n" +
+ "\n" +
+ " 1\n" +
+ " all\n" +
+ "";
+// System.out.println("jl:" + HTTPClientUtil.doPost(jlUrl, xml, number, client));
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ //
+ 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 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);
+// System.out.println(renzheng.contains("DS-PWA32-H20230524AACHQ25788522WU1"));
+
+// System.out.println("shuchu:" + HTTPClientUtil.renzheng(rzUrl, HTTPClientUtil.client));
+
+// String jtUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/System/capabilities";
+// System.out.println("jt:" + HTTPClientUtil.doGet(jtUrl, HTTPClientUtil.client));
+//
+// String strUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/Event/notification/subscribeEventCap";
+// System.out.println("shuchu:" + HTTPClientUtil.doGet(strUrl, HTTPClientUtil.client));
+//
+// String jlUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/Event/notification/subscribeEvent?deployID=1";
+// String xml = "\n" +
+// "\n" +
+// "\n" +
+// " 1\n" +
+// " all\n" +
+// "";
+// System.out.println("jl:" + HTTPClientUtil.doPost(jlUrl, xml));
+
+// String bfUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/control/arm/1?ways=away&format=json";
+// System.out.println("xj:" + HTTPClientUtil.doPut(bfUrl, "", HTTPClientUtil.client));
+
+// String cfUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/control/disarm/1";
+// System.out.println("xj:" + HTTPClientUtil.doPut(cfUrl, "", HTTPClientUtil.client));
+
+// String xjUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/control/clearAlarm/1";
+// System.out.println("xj:" + HTTPClientUtil.doPut(xjUrl, "", HTTPClientUtil.client));
+
+// String plUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/control/bypass/1";
+// System.out.println("xj:" + HTTPClientUtil.doPut(plUrl, "", HTTPClientUtil.client));
+
+// String qxplUrl = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/control/bypassRecover/1";
+// System.out.println("xj:" + HTTPClientUtil.doPut(qxplUrl, "", HTTPClientUtil.client));
+
+// String status = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/status/communication?format=json";
+// System.out.println("防区状态:" + HTTPClientUtil.doGet(status, HTTPClientUtil.client));
+
+// String status = "http://" + HTTPClientUtil.strIP + ":" + HTTPClientUtil.iPort + "/ISAPI/SecurityCP/status/host?format=json";
+// String statusData = HTTPClientUtil.doGet(status, HTTPClientUtil.client);
+//
+// Map tagsMap = JSONObject.parseObject(statusData, Map.class);
+// Map alarmHostStatus = JSONObject.parseObject(tagsMap.get("AlarmHostStatus").toString(), Map.class);
+// Map CommuniStatus = JSONObject.parseObject(alarmHostStatus.get("CommuniStatus").toString(), Map.class);
+//// System.out.println("CommuniStatus" + CommuniStatus);
+// List