ai预警接口
This commit is contained in:
parent
1dc74e5d86
commit
baab5cbf4a
@ -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) {
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user