修改
This commit is contained in:
parent
87ae69a0a5
commit
3a147cfd2e
@ -76,6 +76,7 @@ public class HardWareCallbackController {
|
||||
@PostMapping(value = "/saveHardWareAlarm")
|
||||
public Result<Object> saveHardWareAlarm(@RequestBody Map<String, Object> map) {
|
||||
String hardwareId = MapUtils.getString(map, "hardwareId");
|
||||
String chnId = MapUtils.getString(map, "chn_index");
|
||||
// 确认报警类型
|
||||
String type = MapUtils.getInteger(map, "type")+"";
|
||||
QueryWrapper<Algorithm> queryWrapper = new QueryWrapper<>();
|
||||
@ -106,6 +107,7 @@ public class HardWareCallbackController {
|
||||
deviceAlarm.setSn(device.getSn());
|
||||
deviceAlarm.setDeptId(device.getDeptId());
|
||||
deviceAlarm.setDeptGroup(device.getDeptGroup());
|
||||
deviceAlarm.setChannelNo(chnId);
|
||||
deviceAlarmService.save(deviceAlarm);
|
||||
deviceAlarm.setTypeName(algorithmList.get(0).getTitle());
|
||||
try {
|
||||
|
||||
@ -3,14 +3,20 @@ package com.xmgl.recognition.modules.enterprise.controller;
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
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.Wrappers;
|
||||
import com.xmgl.recognition.annotation.OperLog;
|
||||
import com.xmgl.recognition.jeecg.common.util.PageUtil;
|
||||
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.service.IAlgorithmService;
|
||||
import com.xmgl.recognition.modules.admin.service.IDeviceService;
|
||||
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.lock.RedisRepository;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
@ -68,6 +75,10 @@ import springfox.documentation.annotations.ApiIgnore;
|
||||
@Slf4j
|
||||
@Api(tags = "设备报警管理")
|
||||
public class DeviceAlarmController {
|
||||
|
||||
@Value("${monitor.alarm.flv}")
|
||||
private String requestUrl;
|
||||
|
||||
@Autowired
|
||||
private IDeviceAlarmService deviceAlarmService;
|
||||
|
||||
@ -77,6 +88,12 @@ public class DeviceAlarmController {
|
||||
@Autowired
|
||||
private RedisRepository redisRepository;
|
||||
|
||||
@Autowired
|
||||
private IDeviceService deviceService;
|
||||
|
||||
@Autowired
|
||||
private IMonitorDevService monitorDevService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
@ -308,4 +325,35 @@ public class DeviceAlarmController {
|
||||
result.setResult(resultList);
|
||||
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;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.xmgl.recognition.annotation.OperLog;
|
||||
import com.xmgl.recognition.jeecg.common.util.PageUtil;
|
||||
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
|
||||
@ -118,6 +119,11 @@ public class MonitorDevController {
|
||||
@ApiOperation(value = " 添加摄像机信息", notes = "添加摄像机信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/add")
|
||||
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());
|
||||
monitorDevService.save(monitorDev);
|
||||
return Result.success("添加成功!");
|
||||
@ -138,14 +144,19 @@ public class MonitorDevController {
|
||||
if (monitorDevEntity == null) {
|
||||
result.error500("未找到对应实体");
|
||||
} else {
|
||||
boolean ok = monitorDevService.updateById(monitorDev);
|
||||
if (ok) {
|
||||
result.success("修改成功!");
|
||||
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 {
|
||||
result.success("操作失败!");
|
||||
boolean ok = monitorDevService.updateById(monitorDev);
|
||||
if (ok) {
|
||||
result.success("修改成功!");
|
||||
} else {
|
||||
result.success("操作失败!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -39,6 +39,12 @@ public class DeviceAlarm implements Serializable {
|
||||
@Excel(name = "设备CODE", width = 15)
|
||||
@ApiModelProperty(value = "设备CODE")
|
||||
private String deviceCode;
|
||||
/**
|
||||
* 摄像机通道号
|
||||
*/
|
||||
@Excel(name = "摄像机通道号", width = 15)
|
||||
@ApiModelProperty(value = "摄像机通道号")
|
||||
private String channelNo;
|
||||
/**
|
||||
* 隐患类型
|
||||
*/
|
||||
@ -109,6 +115,13 @@ public class DeviceAlarm implements Serializable {
|
||||
@ApiModelProperty(value = "设备名称")
|
||||
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)
|
||||
@ApiModelProperty(value = "AI盒子设备ID")
|
||||
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">
|
||||
|
||||
<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}
|
||||
</select>
|
||||
|
||||
|
||||
@ -86,6 +86,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
.antMatchers("/filetransfer/downloadfile").permitAll()
|
||||
.antMatchers("/filetransfer/batchDownloadFile").permitAll()
|
||||
.antMatchers("/filetransfer/preview").permitAll()
|
||||
.antMatchers("/ent/deviceAlarm/getFlv").permitAll()
|
||||
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
|
||||
.anyRequest().authenticated() // 剩下所有的验证都需要验证
|
||||
.and()
|
||||
|
||||
@ -15,4 +15,7 @@ spring.datasource.hikari.max-lifetime=1800000
|
||||
spring.datasource.hikari.validation-timeout=3000
|
||||
#(wait_timeout-30)*1000
|
||||
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