修改AI报警上报接口

This commit is contained in:
pengjie 2023-12-20 16:38:25 +08:00
parent 1ccddf3c1f
commit 1a5583efac
2 changed files with 39 additions and 5 deletions

View File

@ -1,17 +1,23 @@
package com.xmgl.recognition.modules.admin.controller; package com.xmgl.recognition.modules.admin.controller;
import cn.xuyanwu.spring.file.storage.FileInfo;
import cn.xuyanwu.spring.file.storage.FileStorageService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xmgl.recognition.jeecg.common.api.vo.Result; import com.xmgl.recognition.jeecg.common.api.vo.Result;
import com.xmgl.recognition.jeecg.common.util.DateUtil;
import com.xmgl.recognition.modules.admin.entity.Device; 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.IDeviceService; import com.xmgl.recognition.modules.admin.service.IDeviceService;
import com.xmgl.recognition.modules.admin.service.IFileDetailService;
import com.xmgl.recognition.modules.admin.service.ISystemDictDataService; import com.xmgl.recognition.modules.admin.service.ISystemDictDataService;
import com.xmgl.recognition.modules.enterprise.entity.DeviceAlarm; import com.xmgl.recognition.modules.enterprise.entity.DeviceAlarm;
import com.xmgl.recognition.modules.enterprise.service.IDeviceAlarmService; import com.xmgl.recognition.modules.enterprise.service.IDeviceAlarmService;
import com.xmgl.recognition.util.CommonUtil; import com.xmgl.recognition.util.CommonUtil;
import com.xmgl.recognition.util.FileUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -19,8 +25,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.xmgl.recognition.util.ParamEnum; import com.xmgl.recognition.util.ParamEnum;
import org.springframework.web.multipart.MultipartFile;
/** /**
* @Title: Controller * @Title: Controller
@ -38,6 +46,9 @@ public class HardWareCallbackController {
@Autowired @Autowired
private IDeviceService deviceService; private IDeviceService deviceService;
@Autowired
private FileStorageService fileStorageService;
@Autowired @Autowired
private IDeviceAlarmService deviceAlarmService; private IDeviceAlarmService deviceAlarmService;
@ -46,24 +57,35 @@ public class HardWareCallbackController {
/** /**
* AI设备报警信息上报 * AI设备报警信息上报
* @param deviceAlarm * @param map
* @return * @return
*/ */
@ApiOperation(value = " AI设备报警信息上报", notes = "AI设备报警信息上报" , httpMethod="POST") @ApiOperation(value = " AI设备报警信息上报", notes = "AI设备报警信息上报" , httpMethod="POST")
@PostMapping(value = "/aiDeviceAlarm/add") @PostMapping(value = "/saveHardWareAlarm")
public Result<Object> addEnvironmentAlarm(@RequestBody DeviceAlarm deviceAlarm) { public Result<Object> saveHardWareAlarm(@RequestBody Map<String, Object> map) {
// 查询字典类型确认报警类型 // 查询字典类型确认报警类型
List<SystemDictData> systemDictDataList = systemDictDataService.getByType("ai_alarm_type"); List<SystemDictData> systemDictDataList = systemDictDataService.getByType("ai_alarm_type");
List<SystemDictData> dictData = systemDictDataList.stream().filter(d -> d.getDictLabel().equals(deviceAlarm.getType())).collect(Collectors.toList()); List<SystemDictData> dictData = systemDictDataList.stream().filter(d -> d.getDictLabel().equals(MapUtils.getInteger(map, "type"))).collect(Collectors.toList());
if (dictData.size() == 0) { if (dictData.size() == 0) {
return Result.error("报警类型错误!"); return Result.error("报警类型错误!");
} }
// TODO 查询设备相关的项目信息 // TODO 查询设备相关的项目信息
Device device = deviceService.getOne(Wrappers.<Device>lambdaQuery() Device device = deviceService.getOne(Wrappers.<Device>lambdaQuery()
.eq(Device::getCode, deviceAlarm.getDeviceCode())); .eq(Device::getCode, MapUtils.getString(map, "hardwareId")));
if (device == null) { if (device == null) {
return Result.error("该设备未绑定!"); return Result.error("该设备未绑定!");
} }
DeviceAlarm deviceAlarm = new DeviceAlarm();
deviceAlarm.setDeviceCode(device.getCode());
deviceAlarm.setType(MapUtils.getInteger(map, "type"));
String image = MapUtils.getString(map, "image");
MultipartFile multipartFile = FileUtil.base64toMultipart(image, "text.jpg");
FileInfo upload = fileStorageService.of(multipartFile)
.setPlatform("minio-1")
.upload();
deviceAlarm.setImage(upload.getUrl());
deviceAlarm.setReportTime(DateUtil.parseStringToDate(MapUtils.getString(map, "datetime")));
deviceAlarm.setAddress(MapUtils.getString(map, "location"));
deviceAlarm.setCreateTime(new Date()); deviceAlarm.setCreateTime(new Date());
deviceAlarm.setSn(device.getSn()); deviceAlarm.setSn(device.getSn());
deviceAlarm.setDeptId(device.getDeptId()); deviceAlarm.setDeptId(device.getDeptId());

View File

@ -49,6 +49,18 @@ public class MonitorDev implements Serializable {
@Excel(name = "设备编码", width = 15) @Excel(name = "设备编码", width = 15)
@ApiModelProperty(value = "设备编码") @ApiModelProperty(value = "设备编码")
private String code; private String code;
/**
* 视频播放地址
*/
@Excel(name = "视频播放地址", width = 15)
@ApiModelProperty(value = "视频播放地址")
private String url;
/**
* 设备IP
*/
@Excel(name = "设备IP", width = 15)
@ApiModelProperty(value = "设备IP")
private String ip;
/** /**
* 设备状态(0:离线;1:在线;) * 设备状态(0:离线;1:在线;)
*/ */