package com.ruoyi.dataInterchange.util.haikang;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
|
import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
import com.ruoyi.dataInterchange.util.haikang.model.*;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 事件订阅工具类
|
* @author zhibing.pu
|
* @Date 2025/5/20 16:17
|
*/
|
@Slf4j
|
public class Artemis {
|
|
/**
|
* STEP2:设置OpenAPI接口的上下文
|
*/
|
private static final String ARTEMIS_PATH = "/artemis";
|
/**
|
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
|
*
|
* ip:port : 平台门户/nginx的IP和端口(必须使用https协议,https端口默认为443)
|
* appKey : 请填入appKey
|
* appSecret : 请填入appSecret
|
*/
|
private static ArtemisConfig artemisConfig = new ArtemisConfig("112.18.106.230:443", "27273246", "vjvZA7X4hHUc0SbONht9");
|
|
//按事件类型取消订阅
|
public static String eventUnSubscriptionByEventTypes(EventUnSubscriptionByEventTypesRequest eventUnSubscriptionByEventTypesRequest) throws Exception {
|
String eventUnSubscriptionByEventTypesDataApi = ARTEMIS_PATH +"/api/eventService/v1/eventUnSubscriptionByEventTypes";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",eventUnSubscriptionByEventTypesDataApi);
|
}
|
};
|
String body= JSON.toJSONString(eventUnSubscriptionByEventTypesRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
//查询事件订阅信息
|
public static String eventSubscriptionView(EventSubscriptionViewRequest eventSubscriptionViewRequest) throws Exception {
|
String eventSubscriptionViewDataApi = ARTEMIS_PATH +"/api/eventService/v1/eventSubscriptionView";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",eventSubscriptionViewDataApi);
|
}
|
};
|
String body=JSON.toJSONString(eventSubscriptionViewRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
//按事件类型订阅事件
|
public static String eventSubscriptionByEventTypes(EventSubscriptionByEventTypesRequest eventSubscriptionByEventTypesRequest) throws Exception {
|
String eventSubscriptionByEventTypesDataApi = ARTEMIS_PATH +"/api/eventService/v1/eventSubscriptionByEventTypes";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",eventSubscriptionByEventTypesDataApi);
|
}
|
};
|
String body=JSON.toJSONString(eventSubscriptionByEventTypesRequest);
|
String result = ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
|
//根据车牌号码获取车辆信息(含设备)
|
public static String findVehicleByLicensePlate(FindVehicleByLicensePlateRequest findVehicleByLicensePlateRequest)throws Exception{
|
String findVehicleByLicensePlateDataApi = ARTEMIS_PATH +"/api/rtsm/v1/resource/findVehicleByLicensePlate";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",findVehicleByLicensePlateDataApi);
|
}
|
};
|
String body=JSON.toJSONString(findVehicleByLicensePlateRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
//根据车辆编号与设备编号获取监控点信息列表
|
public static String findCameraPage(FindCameraPageRequest findCameraPageRequest)throws Exception{
|
String findCameraPageDataApi = ARTEMIS_PATH +"/api/rtsm/v1/vehicle/findCameraPage";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",findCameraPageDataApi);
|
}
|
};
|
String body=JSON.toJSONString(findCameraPageRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
//获取监控点预览取流URL
|
public static String previewURLs(PreviewURLsRequest previewURLsRequest)throws Exception{
|
String previewURLsDataApi = ARTEMIS_PATH +"/api/video/v1/cameras/previewURLs";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",previewURLsDataApi);
|
}
|
};
|
String body=JSON.toJSONString(previewURLsRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
//分页查询车辆信息
|
public static String findVehiclePage(FindVehiclePageRequest findVehiclePageRequest)throws Exception{
|
String findVehiclePageDataApi = ARTEMIS_PATH +"/api/rtsm/v1/resource/findVehiclePage";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",findVehiclePageDataApi);
|
}
|
};
|
String body=JSON.toJSONString(findVehiclePageRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
public static void run() {
|
try {
|
//先查询是否订阅事件
|
GetTopicInfoRequest getTopicInfoRequest = new GetTopicInfoRequest();
|
getTopicInfoRequest.setEventTypes(new ArrayList<Long>(){{
|
add(5201154049L);
|
add(5201301505L);
|
}});
|
String eventSubscriptionView = Artemis.getTopicInfo(getTopicInfoRequest);
|
JSONObject jsonObject = JSON.parseObject(eventSubscriptionView);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
//按事件类型获取事件订阅信息
|
public static String getTopicInfo(GetTopicInfoRequest getTopicInfoRequest)throws Exception {
|
String getTopicInfoDataApi = ARTEMIS_PATH +"/api/common/v1/event/getTopicInfo";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",getTopicInfoDataApi);
|
}
|
};
|
String body=JSON.toJSONString(getTopicInfoRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
|
|
//根据报警ID获取关联图片信息
|
public static String findPicturesByAlarmId(FindPicturesByAlarmIdRequest findPicturesByAlarmIdRequest) throws Exception {
|
String findPicturesByAlarmIdDataApi = ARTEMIS_PATH +"/api/rtsm/v1/multimedia/findPicturesByAlarmId";
|
Map<String,String> path = new HashMap<String,String>(2){
|
{
|
put("https://",findPicturesByAlarmIdDataApi);
|
}
|
};
|
String body=JSON.toJSONString(findPicturesByAlarmIdRequest);
|
String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
|
return result;
|
}
|
}
|