的isc的回调接口的ai预警上传(event_aimms类型)
This commit is contained in:
parent
d3438c520e
commit
047f7834af
@ -122,6 +122,7 @@ public class HikvisionCall {
|
|||||||
public static final String LIST = "list";
|
public static final String LIST = "list";
|
||||||
public static final String EVENT_PMS = "event_pms";
|
public static final String EVENT_PMS = "event_pms";
|
||||||
public static final String EVENT_VSS = "event_vss";
|
public static final String EVENT_VSS = "event_vss";
|
||||||
|
public static final String EVENT_AIMMS = "event_aimms";
|
||||||
private static final String FIXED_CAR_GROUP_NAME = "业主车辆";
|
private static final String FIXED_CAR_GROUP_NAME = "业主车辆";
|
||||||
private static Map<String, DustNoiseData> dustDevSnMap = new ConcurrentHashMap<String, DustNoiseData>();
|
private static Map<String, DustNoiseData> dustDevSnMap = new ConcurrentHashMap<String, DustNoiseData>();
|
||||||
public AsyncHikvision asyncHikvision;
|
public AsyncHikvision asyncHikvision;
|
||||||
@ -402,26 +403,7 @@ public class HikvisionCall {
|
|||||||
ability = eventDetail.getString("ability");
|
ability = eventDetail.getString("ability");
|
||||||
if (Objects.equals(ability, EVENT_VSS)) {
|
if (Objects.equals(ability, EVENT_VSS)) {
|
||||||
log.info("AI识别告警=======" + paramsJo);
|
log.info("AI识别告警=======" + paramsJo);
|
||||||
//摄像机名称
|
addAiAnalyseHardWareRecord(eventDetail, dataEvent.getString("happenTime"));
|
||||||
String srcName = eventDetail.getString("srcName");
|
|
||||||
//422000003
|
|
||||||
String eventType = eventDetail.getString("eventType");
|
|
||||||
JSONObject data = eventDetail.getJSONObject(DATA);
|
|
||||||
//海康AI图片地址
|
|
||||||
String imageUrl = data.getString("url");
|
|
||||||
if (StrUtil.isBlank(imageUrl)) {
|
|
||||||
//区域入侵图片
|
|
||||||
imageUrl = Optional.ofNullable(data.getJSONArray("fielddetection")).map(m -> m.getJSONObject(0).getString("imageUrl")).orElse(null);
|
|
||||||
}
|
|
||||||
//海康AI图片地址
|
|
||||||
String srcIndex = eventDetail.getString("srcIndex");
|
|
||||||
AiAnalyseHardWareRecord dev = aiAnalyseHardWareRecordMapper.selectOne(new LambdaQueryWrapper<AiAnalyseHardWareRecord>()
|
|
||||||
.eq(AiAnalyseHardWareRecord::getHardwareId, srcIndex));
|
|
||||||
if (dev == null) {
|
|
||||||
log.error("未查到AI识别告警设备,设备id:{}", srcIndex);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
hikvisionCall.saveEventCallbackAiAsync(dataEvent, srcName, eventType, imageUrl, srcIndex, dev);
|
|
||||||
} else if (Objects.equals(ability, EVENT_IAS)) {
|
} else if (Objects.equals(ability, EVENT_IAS)) {
|
||||||
log.info("临边防护告警=======" + paramsJo);
|
log.info("临边防护告警=======" + paramsJo);
|
||||||
String srcName = eventDetail.getString("srcName");
|
String srcName = eventDetail.getString("srcName");
|
||||||
@ -505,10 +487,52 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
} else if (Objects.equals(ability1, EVENT_IAS)) {
|
} else if (Objects.equals(ability1, EVENT_IAS)) {
|
||||||
addFrontierProtectionNoNetData(jsonObject);
|
addFrontierProtectionNoNetData(jsonObject);
|
||||||
|
} else if (Objects.equals(ability1, "")) {
|
||||||
|
JSONArray eventsArray = jsonObject.getJSONArray("events");
|
||||||
|
if (eventsArray.size() > 0) {
|
||||||
|
JSONObject dataEvent = eventsArray.getJSONObject(0);
|
||||||
|
JSONArray eventDetails = dataEvent.getJSONArray("eventDetails");
|
||||||
|
JSONObject eventDetail = eventDetails.getJSONObject(0);
|
||||||
|
String ability = eventDetail.getString("ability");
|
||||||
|
JSONObject paramsJo = jsonObject.getJSONObject("params");
|
||||||
|
if (Objects.equals(ability, EVENT_AIMMS)) {
|
||||||
|
log.info("AI识别告警=======" + paramsJo);
|
||||||
|
addAiAnalyseHardWareRecord(eventDetail, dataEvent.getString("happenTime"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Result.ok();
|
return Result.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加AI识别告警记录
|
||||||
|
* @param eventDetail
|
||||||
|
* @param happenTime
|
||||||
|
*/
|
||||||
|
private void addAiAnalyseHardWareRecord(JSONObject eventDetail, String happenTime) {
|
||||||
|
//摄像机名称
|
||||||
|
String srcName = eventDetail.getString("srcName");
|
||||||
|
//422000003
|
||||||
|
String eventType = eventDetail.getString("eventType");
|
||||||
|
JSONObject data = eventDetail.getJSONObject(DATA);
|
||||||
|
//海康AI图片地址
|
||||||
|
String imageUrl = data.getString("url");
|
||||||
|
if (StrUtil.isBlank(imageUrl)) {
|
||||||
|
//区域入侵图片
|
||||||
|
imageUrl = Optional.ofNullable(data.getJSONArray("fielddetection")).map(m -> m.getJSONObject(0).getString("imageUrl")).orElse(null);
|
||||||
|
}
|
||||||
|
//海康AI图片地址
|
||||||
|
String srcIndex = eventDetail.getString("srcIndex");
|
||||||
|
AiAnalyseHardWareRecord dev = aiAnalyseHardWareRecordMapper.selectOne(new LambdaQueryWrapper<AiAnalyseHardWareRecord>()
|
||||||
|
.eq(AiAnalyseHardWareRecord::getHardwareId, srcIndex));
|
||||||
|
if (dev == null) {
|
||||||
|
log.error("未查到AI识别告警设备,设备id:{}", srcIndex);
|
||||||
|
} else {
|
||||||
|
hikvisionCall.saveEventCallbackAiAsync(srcName, eventType, imageUrl, srcIndex, dev, happenTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 延迟组装好扬尘数据再新增
|
* 延迟组装好扬尘数据再新增
|
||||||
*
|
*
|
||||||
@ -603,16 +627,15 @@ public class HikvisionCall {
|
|||||||
/**
|
/**
|
||||||
* 异步添加ai数据
|
* 异步添加ai数据
|
||||||
*
|
*
|
||||||
* @param dataEvent
|
|
||||||
* @param srcName
|
* @param srcName
|
||||||
* @param eventType
|
* @param eventType
|
||||||
* @param imageUrl
|
* @param imageUrl
|
||||||
* @param deviceId
|
* @param deviceId
|
||||||
* @param dev
|
* @param dev
|
||||||
|
* @param happenTime
|
||||||
*/
|
*/
|
||||||
@Async("saveEventCallbackAiAsync")
|
@Async("saveEventCallbackAiAsync")
|
||||||
public void saveEventCallbackAiAsync(JSONObject dataEvent, String srcName, String eventType, String imageUrl, String deviceId, AiAnalyseHardWareRecord dev) {
|
public void saveEventCallbackAiAsync(String srcName, String eventType, String imageUrl, String deviceId, AiAnalyseHardWareRecord dev, String happenTime) {
|
||||||
String happenTime = dataEvent.getString("happenTime");
|
|
||||||
String createTime = DateUtil.formatDateTime(DateUtil.parse(happenTime));
|
String createTime = DateUtil.formatDateTime(DateUtil.parse(happenTime));
|
||||||
Integer count = aiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<AiAnalyseHardWareAlarmRecord>()
|
Integer count = aiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<AiAnalyseHardWareAlarmRecord>()
|
||||||
.eq(AiAnalyseHardWareAlarmRecord::getCreateTime, createTime)
|
.eq(AiAnalyseHardWareAlarmRecord::getCreateTime, createTime)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user