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({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1今天", paramType = "body", required = true, dataType = "Integer"), @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") @PostMapping(value = "/countPoisonousGasDevCurrentDataGasType")
public Result<List<TrendVo>> countPoisonousGasDevCurrentDataGasType(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) { 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; package com.zhgd.xmgl.modules.rt.service.impl;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.entity.VideoItem;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper; import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.modules.video.service.impl.VideoItemServiceImpl; 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.HikVideoUtil;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil; 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; return list;

View File

@ -260,4 +260,11 @@ public class AiAnalyseHardWareAlarmRecordController {
public Result<List<WorkerInfo>> violatorListSort(@RequestBody @ApiIgnore Map<String, Object> map) { public Result<List<WorkerInfo>> violatorListSort(@RequestBody @ApiIgnore Map<String, Object> map) {
return Result.success(aiAnalyseHardWareAlarmRecordService.violatorListSort(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.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -45,4 +46,6 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService<AiAnalyse
void edit(AiAnalyseHardWareAlarmRecord taskProgressMaterialRel); void edit(AiAnalyseHardWareAlarmRecord taskProgressMaterialRel);
List<WorkerInfo> violatorListSort(Map<String, Object> map); 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.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.xuyanwu.spring.file.storage.FileInfo; import cn.xuyanwu.spring.file.storage.FileInfo;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -47,10 +48,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @Description: AI分析硬件设备报警记录 * @Description: AI分析硬件设备报警记录
@ -387,4 +385,51 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
public List<WorkerInfo> violatorListSort(Map<String, Object> map) { public List<WorkerInfo> violatorListSort(Map<String, Object> map) {
return baseMapper.violatorListSort(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/taskProgress/queryById").permitAll()
.antMatchers("/xmgl/videoItem/getPlayUrlFromHikvision").permitAll() .antMatchers("/xmgl/videoItem/getPlayUrlFromHikvision").permitAll()
.antMatchers("/xmgl/workerInfo/selectProjectWorkerTypeTotalList").permitAll() .antMatchers("/xmgl/workerInfo/selectProjectWorkerTypeTotalList").permitAll()
.antMatchers("/xmgl/aiAnalyseHardWareAlarmRecord/callback").permitAll()
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
.anyRequest().authenticated() // 剩下所有的验证都需要验证 .anyRequest().authenticated() // 剩下所有的验证都需要验证
.and() .and()