From 1a5583efaca0f3a573c9dde4bd4659df3917138f Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Wed, 20 Dec 2023 16:38:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9AI=E6=8A=A5=E8=AD=A6=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HardWareCallbackController.java | 32 ++++++++++++++++--- .../modules/enterprise/entity/MonitorDev.java | 12 +++++++ 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xmgl/recognition/modules/admin/controller/HardWareCallbackController.java b/src/main/java/com/xmgl/recognition/modules/admin/controller/HardWareCallbackController.java index fee098f..2e52bbd 100644 --- a/src/main/java/com/xmgl/recognition/modules/admin/controller/HardWareCallbackController.java +++ b/src/main/java/com/xmgl/recognition/modules/admin/controller/HardWareCallbackController.java @@ -1,17 +1,23 @@ 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.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.SystemDictData; 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.enterprise.entity.DeviceAlarm; import com.xmgl.recognition.modules.enterprise.service.IDeviceAlarmService; import com.xmgl.recognition.util.CommonUtil; +import com.xmgl.recognition.util.FileUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; 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 java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import com.xmgl.recognition.util.ParamEnum; +import org.springframework.web.multipart.MultipartFile; /** * @Title: Controller @@ -38,6 +46,9 @@ public class HardWareCallbackController { @Autowired private IDeviceService deviceService; + @Autowired + private FileStorageService fileStorageService; + @Autowired private IDeviceAlarmService deviceAlarmService; @@ -46,24 +57,35 @@ public class HardWareCallbackController { /** * AI设备报警信息上报 - * @param deviceAlarm + * @param map * @return */ @ApiOperation(value = " AI设备报警信息上报", notes = "AI设备报警信息上报" , httpMethod="POST") - @PostMapping(value = "/aiDeviceAlarm/add") - public Result addEnvironmentAlarm(@RequestBody DeviceAlarm deviceAlarm) { + @PostMapping(value = "/saveHardWareAlarm") + public Result saveHardWareAlarm(@RequestBody Map map) { // 查询字典类型确认报警类型 List systemDictDataList = systemDictDataService.getByType("ai_alarm_type"); - List dictData = systemDictDataList.stream().filter(d -> d.getDictLabel().equals(deviceAlarm.getType())).collect(Collectors.toList()); + List dictData = systemDictDataList.stream().filter(d -> d.getDictLabel().equals(MapUtils.getInteger(map, "type"))).collect(Collectors.toList()); if (dictData.size() == 0) { return Result.error("报警类型错误!"); } // TODO 查询设备相关的项目信息 Device device = deviceService.getOne(Wrappers.lambdaQuery() - .eq(Device::getCode, deviceAlarm.getDeviceCode())); + .eq(Device::getCode, MapUtils.getString(map, "hardwareId"))); if (device == null) { 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.setSn(device.getSn()); deviceAlarm.setDeptId(device.getDeptId()); diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/entity/MonitorDev.java b/src/main/java/com/xmgl/recognition/modules/enterprise/entity/MonitorDev.java index f0140aa..de18fcf 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/entity/MonitorDev.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/entity/MonitorDev.java @@ -49,6 +49,18 @@ public class MonitorDev implements Serializable { @Excel(name = "设备编码", width = 15) @ApiModelProperty(value = "设备编码") 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:在线;) */