的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 EVENT_PMS = "event_pms";
|
||||
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 Map<String, DustNoiseData> dustDevSnMap = new ConcurrentHashMap<String, DustNoiseData>();
|
||||
public AsyncHikvision asyncHikvision;
|
||||
@ -402,26 +403,7 @@ public class HikvisionCall {
|
||||
ability = eventDetail.getString("ability");
|
||||
if (Objects.equals(ability, EVENT_VSS)) {
|
||||
log.info("AI识别告警=======" + paramsJo);
|
||||
//摄像机名称
|
||||
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);
|
||||
addAiAnalyseHardWareRecord(eventDetail, dataEvent.getString("happenTime"));
|
||||
} else if (Objects.equals(ability, EVENT_IAS)) {
|
||||
log.info("临边防护告警=======" + paramsJo);
|
||||
String srcName = eventDetail.getString("srcName");
|
||||
@ -505,10 +487,52 @@ public class HikvisionCall {
|
||||
}
|
||||
} else if (Objects.equals(ability1, EVENT_IAS)) {
|
||||
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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加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数据
|
||||
*
|
||||
* @param dataEvent
|
||||
* @param srcName
|
||||
* @param eventType
|
||||
* @param imageUrl
|
||||
* @param deviceId
|
||||
* @param dev
|
||||
* @param happenTime
|
||||
*/
|
||||
@Async("saveEventCallbackAiAsync")
|
||||
public void saveEventCallbackAiAsync(JSONObject dataEvent, String srcName, String eventType, String imageUrl, String deviceId, AiAnalyseHardWareRecord dev) {
|
||||
String happenTime = dataEvent.getString("happenTime");
|
||||
public void saveEventCallbackAiAsync(String srcName, String eventType, String imageUrl, String deviceId, AiAnalyseHardWareRecord dev, String happenTime) {
|
||||
String createTime = DateUtil.formatDateTime(DateUtil.parse(happenTime));
|
||||
Integer count = aiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<AiAnalyseHardWareAlarmRecord>()
|
||||
.eq(AiAnalyseHardWareAlarmRecord::getCreateTime, createTime)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user