ai预警接口

This commit is contained in:
guo 2024-01-11 16:39:13 +08:00
parent 1dc74e5d86
commit baab5cbf4a
6 changed files with 77 additions and 4 deletions

View File

@ -171,6 +171,7 @@ public class PoisonousGasDevCurrentDataController {
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1今天", paramType = "body", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "gasType", value = "气体类型1氧气、2甲烷、3一氧化碳、4硫化氢", paramType = "body", required = true, dataType = "Integer"),
})
@PostMapping(value = "/countPoisonousGasDevCurrentDataGasType")
public Result<List<TrendVo>> countPoisonousGasDevCurrentDataGasType(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {

View File

@ -1,9 +1,11 @@
package com.zhgd.xmgl.modules.rt.service.impl;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -23,6 +25,7 @@ import com.zhgd.xmgl.modules.rt.service.IRtWorkTicketService;
import com.zhgd.xmgl.modules.video.entity.VideoItem;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.modules.video.service.impl.VideoItemServiceImpl;
import com.zhgd.xmgl.util.Base64Util;
import com.zhgd.xmgl.util.HikVideoUtil;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
@ -109,6 +112,19 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
}
}
}
try {
String workTicket = rtWorkTicket.getWorkTicket();
if (StringUtils.isNotBlank(workTicket)) {
JSONArray jsonArray = JSON.parseArray(workTicket);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
jsonObject.put("urlJson", Base64.encode(jsonObject.getString("url")));
}
rtWorkTicket.setWorkTicket(JSON.toJSONString(jsonArray));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
return list;

View File

@ -260,4 +260,11 @@ public class AiAnalyseHardWareAlarmRecordController {
public Result<List<WorkerInfo>> violatorListSort(@RequestBody @ApiIgnore Map<String, Object> map) {
return Result.success(aiAnalyseHardWareAlarmRecordService.violatorListSort(map));
}
@ApiOperation(value = "宁波隧道推送ai报警消息", notes = "宁波隧道推送ai报警消息", httpMethod = "POST")
@PostMapping(value = "/callback")
public Result callback(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
aiAnalyseHardWareAlarmRecordService.callback(paramMap);
return Result.ok();
}
}

View File

@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTotalVo;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -45,4 +46,6 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService<AiAnalyse
void edit(AiAnalyseHardWareAlarmRecord taskProgressMaterialRel);
List<WorkerInfo> violatorListSort(Map<String, Object> map);
void callback(HashMap<String, Object> paramMap);
}

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.video.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.xuyanwu.spring.file.storage.FileInfo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -47,10 +48,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @Description: AI分析硬件设备报警记录
@ -387,4 +385,51 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
public List<WorkerInfo> violatorListSort(Map<String, Object> map) {
return baseMapper.violatorListSort(map);
}
@Override
public void callback(HashMap<String, Object> paramMap) {
String alarmPicData = MapUtils.getString(paramMap, "alarmPicData");
Integer algorithmId = MapUtils.getInteger(paramMap, "algorithmId");
String cameraDeviceName = MapUtils.getString(paramMap, "cameraDeviceName");
Long timestamp = MapUtils.getLong(paramMap, "timestamp");
FileInfo fileInfo = uploadFileService.uploadFileBase64Image(alarmPicData);
AiAnalyseHardWareAlarmRecord alarmRecord = new AiAnalyseHardWareAlarmRecord();
alarmRecord.setProjectSn("230F8CCA4A6A407AB0DC56E294DC35AD");
//alarmRecord.setHardwareName();
//alarmRecord.setHardwareId();
alarmRecord.setImageUrl(fileInfo.getUrl());
alarmRecord.setAlarmType(getAlarmType(algorithmId));
alarmRecord.setLocation(cameraDeviceName);
alarmRecord.setCreateTime(DateUtil.formatDateTime(new Date(timestamp * 1000)));
baseMapper.insert(alarmRecord);
}
private Integer getAlarmType(Integer algorithmId) {
/*
4 行人闯入
9 抽烟
20 烟雾报警
21 火焰报警
28 安全着装报警(安全帽)
34 反光衣R
123 高空安全带识别
*/
switch (algorithmId) {
case 4:
return 14;
case 9:
return 15;
case 20:
return 1;
case 21:
return 2;
case 28:
return 4;
case 34:
return 8;
case 123:
return 16;
}
return null;
}
}

View File

@ -291,6 +291,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/xmgl/taskProgress/queryById").permitAll()
.antMatchers("/xmgl/videoItem/getPlayUrlFromHikvision").permitAll()
.antMatchers("/xmgl/workerInfo/selectProjectWorkerTypeTotalList").permitAll()
.antMatchers("/xmgl/aiAnalyseHardWareAlarmRecord/callback").permitAll()
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
.anyRequest().authenticated() // 剩下所有的验证都需要验证
.and()