修改
This commit is contained in:
parent
87ae69a0a5
commit
3a147cfd2e
@ -76,6 +76,7 @@ public class HardWareCallbackController {
|
|||||||
@PostMapping(value = "/saveHardWareAlarm")
|
@PostMapping(value = "/saveHardWareAlarm")
|
||||||
public Result<Object> saveHardWareAlarm(@RequestBody Map<String, Object> map) {
|
public Result<Object> saveHardWareAlarm(@RequestBody Map<String, Object> map) {
|
||||||
String hardwareId = MapUtils.getString(map, "hardwareId");
|
String hardwareId = MapUtils.getString(map, "hardwareId");
|
||||||
|
String chnId = MapUtils.getString(map, "chn_index");
|
||||||
// 确认报警类型
|
// 确认报警类型
|
||||||
String type = MapUtils.getInteger(map, "type")+"";
|
String type = MapUtils.getInteger(map, "type")+"";
|
||||||
QueryWrapper<Algorithm> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Algorithm> queryWrapper = new QueryWrapper<>();
|
||||||
@ -106,6 +107,7 @@ public class HardWareCallbackController {
|
|||||||
deviceAlarm.setSn(device.getSn());
|
deviceAlarm.setSn(device.getSn());
|
||||||
deviceAlarm.setDeptId(device.getDeptId());
|
deviceAlarm.setDeptId(device.getDeptId());
|
||||||
deviceAlarm.setDeptGroup(device.getDeptGroup());
|
deviceAlarm.setDeptGroup(device.getDeptGroup());
|
||||||
|
deviceAlarm.setChannelNo(chnId);
|
||||||
deviceAlarmService.save(deviceAlarm);
|
deviceAlarmService.save(deviceAlarm);
|
||||||
deviceAlarm.setTypeName(algorithmList.get(0).getTitle());
|
deviceAlarm.setTypeName(algorithmList.get(0).getTitle());
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -3,14 +3,20 @@ package com.xmgl.recognition.modules.enterprise.controller;
|
|||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.xmgl.recognition.annotation.OperLog;
|
import com.xmgl.recognition.annotation.OperLog;
|
||||||
import com.xmgl.recognition.jeecg.common.util.PageUtil;
|
import com.xmgl.recognition.jeecg.common.util.PageUtil;
|
||||||
import com.xmgl.recognition.modules.admin.entity.Algorithm;
|
import com.xmgl.recognition.modules.admin.entity.Algorithm;
|
||||||
|
import com.xmgl.recognition.modules.admin.entity.Device;
|
||||||
import com.xmgl.recognition.modules.admin.entity.SystemDictData;
|
import com.xmgl.recognition.modules.admin.entity.SystemDictData;
|
||||||
import com.xmgl.recognition.modules.admin.service.IAlgorithmService;
|
import com.xmgl.recognition.modules.admin.service.IAlgorithmService;
|
||||||
|
import com.xmgl.recognition.modules.admin.service.IDeviceService;
|
||||||
import com.xmgl.recognition.modules.admin.service.ISystemDictDataService;
|
import com.xmgl.recognition.modules.admin.service.ISystemDictDataService;
|
||||||
|
import com.xmgl.recognition.modules.enterprise.entity.MonitorDev;
|
||||||
|
import com.xmgl.recognition.modules.enterprise.service.IMonitorDevService;
|
||||||
import com.xmgl.recognition.redis.Constant.CacheConstants;
|
import com.xmgl.recognition.redis.Constant.CacheConstants;
|
||||||
import com.xmgl.recognition.redis.lock.RedisRepository;
|
import com.xmgl.recognition.redis.lock.RedisRepository;
|
||||||
import com.xmgl.recognition.util.CommonUtil;
|
import com.xmgl.recognition.util.CommonUtil;
|
||||||
@ -48,6 +54,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams;
|
|||||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
@ -68,6 +75,10 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "设备报警管理")
|
@Api(tags = "设备报警管理")
|
||||||
public class DeviceAlarmController {
|
public class DeviceAlarmController {
|
||||||
|
|
||||||
|
@Value("${monitor.alarm.flv}")
|
||||||
|
private String requestUrl;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IDeviceAlarmService deviceAlarmService;
|
private IDeviceAlarmService deviceAlarmService;
|
||||||
|
|
||||||
@ -77,6 +88,12 @@ public class DeviceAlarmController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RedisRepository redisRepository;
|
private RedisRepository redisRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IDeviceService deviceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMonitorDevService monitorDevService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页列表查询
|
* 分页列表查询
|
||||||
*
|
*
|
||||||
@ -308,4 +325,35 @@ public class DeviceAlarmController {
|
|||||||
result.setResult(resultList);
|
result.setResult(resultList);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看预警影像
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@OperLog(operModul = "设备报警管理", operType = "查询", operDesc = "查看预警影像")
|
||||||
|
@ApiOperation(value = "查看预警影像", notes = "查看预警影像", httpMethod = "POST")
|
||||||
|
@ApiImplicitParam(name = "id", value = "设备报警ID", paramType = "query", required = true, dataType = "Integer")
|
||||||
|
@PostMapping(value = "/getFlv")
|
||||||
|
public Result<String> getFlv(@ApiIgnore @RequestBody Map<String, Object> map) {
|
||||||
|
Result<String> result = new Result<String>();
|
||||||
|
DeviceAlarm deviceAlarm = deviceAlarmService.getById(MapUtils.getString(map, "id"));
|
||||||
|
Device device = deviceService.getOne(Wrappers.<Device>lambdaQuery().eq(Device::getCode, deviceAlarm.getDeviceCode()));
|
||||||
|
MonitorDev monitorDev = monitorDevService.getOne(Wrappers.<MonitorDev>lambdaQuery().eq(MonitorDev::getDeviceId, device.getId())
|
||||||
|
.eq(MonitorDev::getChannelNo, deviceAlarm.getChannelNo()));
|
||||||
|
if (monitorDev != null && StringUtils.isNotBlank(monitorDev.getCode())) {
|
||||||
|
Map<String, Object> requestBody = new HashMap<>();
|
||||||
|
requestBody.put("devid", monitorDev.getCode());
|
||||||
|
requestBody.put("start_time", DateUtil.offsetSecond(deviceAlarm.getReportTime(), -30));
|
||||||
|
requestBody.put("end_time", DateUtil.offsetSecond(deviceAlarm.getReportTime(), 30));
|
||||||
|
// requestBody.put("devid", "100");
|
||||||
|
// requestBody.put("start_time", "2024-01-31 08:30:00");
|
||||||
|
// requestBody.put("end_time", "2024-01-31 08:35:00");
|
||||||
|
String post = HttpUtil.post(requestUrl, JSONObject.toJSONString(requestBody));
|
||||||
|
if (StringUtils.isNotBlank(post)) {
|
||||||
|
result.setResult(JSONObject.parseObject(post).getString("webrtc"));
|
||||||
|
}
|
||||||
|
result.setSuccess(true);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.xmgl.recognition.modules.enterprise.controller;
|
package com.xmgl.recognition.modules.enterprise.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.xmgl.recognition.annotation.OperLog;
|
import com.xmgl.recognition.annotation.OperLog;
|
||||||
import com.xmgl.recognition.jeecg.common.util.PageUtil;
|
import com.xmgl.recognition.jeecg.common.util.PageUtil;
|
||||||
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
|
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
|
||||||
@ -118,6 +119,11 @@ public class MonitorDevController {
|
|||||||
@ApiOperation(value = " 添加摄像机信息", notes = "添加摄像机信息", httpMethod = "POST")
|
@ApiOperation(value = " 添加摄像机信息", notes = "添加摄像机信息", httpMethod = "POST")
|
||||||
@PostMapping(value = "/add")
|
@PostMapping(value = "/add")
|
||||||
public Result<Object> add(@RequestBody MonitorDev monitorDev) {
|
public Result<Object> add(@RequestBody MonitorDev monitorDev) {
|
||||||
|
List<MonitorDev> monitorDevList = monitorDevService.list(Wrappers.<MonitorDev>lambdaQuery().eq(MonitorDev::getDeviceId, monitorDev.getDeviceId())
|
||||||
|
.eq(MonitorDev::getChannelNo, monitorDev.getChannelNo()));
|
||||||
|
if (monitorDevList.size() > 0) {
|
||||||
|
return Result.error("设备下已存在该通道号,请重新输入!");
|
||||||
|
}
|
||||||
monitorDev.setSn(SecurityUtil.getUser().getSn());
|
monitorDev.setSn(SecurityUtil.getUser().getSn());
|
||||||
monitorDevService.save(monitorDev);
|
monitorDevService.save(monitorDev);
|
||||||
return Result.success("添加成功!");
|
return Result.success("添加成功!");
|
||||||
@ -137,6 +143,11 @@ public class MonitorDevController {
|
|||||||
MonitorDev monitorDevEntity = monitorDevService.getById(monitorDev.getMonitorId());
|
MonitorDev monitorDevEntity = monitorDevService.getById(monitorDev.getMonitorId());
|
||||||
if (monitorDevEntity == null) {
|
if (monitorDevEntity == null) {
|
||||||
result.error500("未找到对应实体");
|
result.error500("未找到对应实体");
|
||||||
|
} else {
|
||||||
|
List<MonitorDev> monitorDevList = monitorDevService.list(Wrappers.<MonitorDev>lambdaQuery().eq(MonitorDev::getDeviceId, monitorDev.getDeviceId())
|
||||||
|
.eq(MonitorDev::getChannelNo, monitorDev.getChannelNo()));
|
||||||
|
if (monitorDevList.size() > 0 && !monitorDevList.get(0).getMonitorId().equals(monitorDev.getMonitorId())) {
|
||||||
|
result.error500("设备下已存在该通道号,请重新输入!");
|
||||||
} else {
|
} else {
|
||||||
boolean ok = monitorDevService.updateById(monitorDev);
|
boolean ok = monitorDevService.updateById(monitorDev);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
@ -145,7 +156,7 @@ public class MonitorDevController {
|
|||||||
result.success("操作失败!");
|
result.success("操作失败!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,12 @@ public class DeviceAlarm implements Serializable {
|
|||||||
@Excel(name = "设备CODE", width = 15)
|
@Excel(name = "设备CODE", width = 15)
|
||||||
@ApiModelProperty(value = "设备CODE")
|
@ApiModelProperty(value = "设备CODE")
|
||||||
private String deviceCode;
|
private String deviceCode;
|
||||||
|
/**
|
||||||
|
* 摄像机通道号
|
||||||
|
*/
|
||||||
|
@Excel(name = "摄像机通道号", width = 15)
|
||||||
|
@ApiModelProperty(value = "摄像机通道号")
|
||||||
|
private String channelNo;
|
||||||
/**
|
/**
|
||||||
* 隐患类型
|
* 隐患类型
|
||||||
*/
|
*/
|
||||||
@ -109,6 +115,13 @@ public class DeviceAlarm implements Serializable {
|
|||||||
@ApiModelProperty(value = "设备名称")
|
@ApiModelProperty(value = "设备名称")
|
||||||
private String deviceName;
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 摄像机名称
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "摄像机名称")
|
||||||
|
private String monitorName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 类型名称
|
* 类型名称
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -85,4 +85,10 @@ public class MonitorDev implements Serializable {
|
|||||||
@Excel(name = "AI盒子设备ID", width = 15)
|
@Excel(name = "AI盒子设备ID", width = 15)
|
||||||
@ApiModelProperty(value = "AI盒子设备ID")
|
@ApiModelProperty(value = "AI盒子设备ID")
|
||||||
private Long deviceId;
|
private Long deviceId;
|
||||||
|
/**
|
||||||
|
* 摄像机通道号
|
||||||
|
*/
|
||||||
|
@Excel(name = "摄像机通道号", width = 15)
|
||||||
|
@ApiModelProperty(value = "摄像机通道号")
|
||||||
|
private String channelNo;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,8 @@
|
|||||||
<mapper namespace="com.xmgl.recognition.modules.enterprise.mapper.DeviceAlarmMapper">
|
<mapper namespace="com.xmgl.recognition.modules.enterprise.mapper.DeviceAlarmMapper">
|
||||||
|
|
||||||
<select id="pageList" resultType="com.xmgl.recognition.modules.enterprise.entity.DeviceAlarm">
|
<select id="pageList" resultType="com.xmgl.recognition.modules.enterprise.entity.DeviceAlarm">
|
||||||
SELECT a.*, d.code as deviceName FROM device_alarm a LEFT JOIN device d ON a.device_code = d.`code`
|
SELECT a.*, d.code as deviceName, m.name as monitorName FROM device_alarm a LEFT JOIN device d ON a.device_code = d.`code`
|
||||||
|
LEFT JOIN monitor_dev m ON a.channel_no = m.channel_no and d.id = m.device_id
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
@ -86,6 +86,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
.antMatchers("/filetransfer/downloadfile").permitAll()
|
.antMatchers("/filetransfer/downloadfile").permitAll()
|
||||||
.antMatchers("/filetransfer/batchDownloadFile").permitAll()
|
.antMatchers("/filetransfer/batchDownloadFile").permitAll()
|
||||||
.antMatchers("/filetransfer/preview").permitAll()
|
.antMatchers("/filetransfer/preview").permitAll()
|
||||||
|
.antMatchers("/ent/deviceAlarm/getFlv").permitAll()
|
||||||
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
|
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
|
||||||
.anyRequest().authenticated() // 剩下所有的验证都需要验证
|
.anyRequest().authenticated() // 剩下所有的验证都需要验证
|
||||||
.and()
|
.and()
|
||||||
|
|||||||
@ -16,3 +16,6 @@ spring.datasource.hikari.validation-timeout=3000
|
|||||||
#(wait_timeout-30)*1000
|
#(wait_timeout-30)*1000
|
||||||
spring.datasource.hikari.connection-timeout=50000
|
spring.datasource.hikari.connection-timeout=50000
|
||||||
spring.datasource.hikari.connection-test-query=SELECT 1
|
spring.datasource.hikari.connection-test-query=SELECT 1
|
||||||
|
|
||||||
|
|
||||||
|
monitor.alarm.flv=http://zosau.com:9090/get_webrtc
|
||||||
Loading…
x
Reference in New Issue
Block a user