diff --git a/src/main/java/com/zhgd/xmgl/modules/poisonous/controller/PoisonousGasDevCurrentDataController.java b/src/main/java/com/zhgd/xmgl/modules/poisonous/controller/PoisonousGasDevCurrentDataController.java index 5114042da..36575d067 100644 --- a/src/main/java/com/zhgd/xmgl/modules/poisonous/controller/PoisonousGasDevCurrentDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/poisonous/controller/PoisonousGasDevCurrentDataController.java @@ -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> countPoisonousGasDevCurrentDataGasType(@ApiIgnore @RequestBody HashMap paramMap) { diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtWorkTicketServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtWorkTicketServiceImpl.java index 96811167d..88b88173b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtWorkTicketServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtWorkTicketServiceImpl.java @@ -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> violatorListSort(@RequestBody @ApiIgnore Map map) { return Result.success(aiAnalyseHardWareAlarmRecordService.violatorListSort(map)); } + + @ApiOperation(value = "宁波隧道推送ai报警消息", notes = "宁波隧道推送ai报警消息", httpMethod = "POST") + @PostMapping(value = "/callback") + public Result callback(@ApiIgnore @RequestBody HashMap paramMap) { + aiAnalyseHardWareAlarmRecordService.callback(paramMap); + return Result.ok(); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java b/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java index 3c4b6982c..a9ca94ebb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java @@ -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 violatorListSort(Map map); + + void callback(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java index 02cf1f320..0ada37eef 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java @@ -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 violatorListSort(Map map) { return baseMapper.violatorListSort(map); } + + @Override + public void callback(HashMap 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; + } } diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index 6b127dad4..3c5df0d13 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -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()