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