大屏设备监控

This commit is contained in:
pengjie 2023-12-28 14:58:23 +08:00
parent 9c3cd5446d
commit 54ded11edb
9 changed files with 137 additions and 8 deletions

View File

@ -2,6 +2,7 @@ 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xmgl.recognition.jeecg.common.api.vo.Result;
import com.xmgl.recognition.jeecg.common.util.DateUtil;
@ -65,9 +66,12 @@ public class HardWareCallbackController {
public Result<Object> saveHardWareAlarm(@RequestBody Map<String, Object> map) {
String hardwareId = MapUtils.getString(map, "hardwareId");
// 确认报警类型
List<Algorithm> algorithmList = algorithmService.list();
List<Algorithm> algorithm = algorithmList.stream().filter(d -> d.getSortIndex().equals(MapUtils.getInteger(map, "type"))).collect(Collectors.toList());
if (algorithm.size() == 0) {
String type = MapUtils.getInteger(map, "type")+"";
QueryWrapper<Algorithm> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Algorithm::getRemark,type);
List<Algorithm> algorithmList = algorithmService.list(queryWrapper);
// List<Algorithm> algorithm = algorithmList.stream().filter(d -> d.getRemark().equals(MapUtils.getInteger(map, "type"))).collect(Collectors.toList());
if (algorithmList.size() == 0) {
return Result.error("报警类型错误!");
}
// TODO 查询设备相关的项目信息
@ -80,7 +84,7 @@ public class HardWareCallbackController {
deviceAlarm.setDeviceCode(device.getCode());
deviceAlarm.setType(MapUtils.getInteger(map, "type"));
String image = MapUtils.getString(map, "image");
MultipartFile multipartFile = FileUtil.base64toMultipart(image, "text.jpg");
MultipartFile multipartFile = FileUtil.base64toMultipart("data:image/jpeg;base64,"+ image, "text.jpg");
FileInfo upload = fileStorageService.of(multipartFile)
.setPlatform("minio-1")
.upload();

View File

@ -128,7 +128,7 @@ public class DeviceAlarmController {
.between(DeviceAlarm::getReportTime, DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date())));
List<Algorithm> algorithms = algorithmService.list();
deviceAlarmList.stream().forEach(d -> {
List<Algorithm> algorithmList = algorithms.stream().filter(a -> a.getSortIndex().equals(d.getType())).collect(Collectors.toList());
List<Algorithm> algorithmList = algorithms.stream().filter(a -> a.getRemark().equals(d.getType())).collect(Collectors.toList());
d.setTypeName(algorithmList.size() > 0 ? algorithmList.get(0).getTitle() : "");
});
resultMap.put("deviceAlarmList", deviceAlarmList);
@ -163,7 +163,7 @@ public class DeviceAlarmController {
algorithms.stream().forEach(s -> {
Map<String, Object> map1 = new HashMap<>();
map1.put("type", s.getTitle());
map1.put("num", resultMap.get(s.getSortIndex()));
map1.put("num", resultMap.get(s.getRemark()));
resultList.add(map1);
});
/*resultMap.entrySet().stream().forEach(r -> {

View File

@ -2,6 +2,8 @@ package com.xmgl.recognition.modules.enterprise.controller;
import com.xmgl.recognition.annotation.OperLog;
import com.xmgl.recognition.jeecg.common.util.PageUtil;
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
import com.xmgl.recognition.modules.enterprise.entity.SystemDept;
import com.xmgl.recognition.security.SecurityUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -92,6 +94,19 @@ public class MonitorDevController {
return Result.success(list);
}
/**
* 层级查询
*
* @return
*/
@OperLog(operModul = "摄像机管理", operType = "层级查询", operDesc = "层级查询部门摄像机信息")
@ApiOperation(value = " 层级查询部门摄像机信息", notes = "层级查询部门摄像机信息", httpMethod = "GET")
@GetMapping(value = "/tree")
public Result<List<MonitorDevTreeDto>> queryTreeList() {
List<MonitorDevTreeDto> tree = monitorDevService.tree();
return Result.success(tree);
}
/**
* 添加

View File

@ -0,0 +1,38 @@
package com.xmgl.recognition.modules.enterprise.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xmgl.recognition.modules.enterprise.entity.SystemDept;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "部门摄像机树形信息(DTO)", description = "MonitorDevTreeDto")
public class MonitorDevTreeDto {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "父ID")
private Long parentId;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "编码")
private String code;
@ApiModelProperty(value = "url")
private String url;
@ApiModelProperty(value = "ip;")
private String ip;
@ApiModelProperty(value = "类型(1:部门信息;2:摄像机信息)")
private Integer type;
@ApiModelProperty(value = "子级信息")
private List<MonitorDevTreeDto> children;
}

View File

@ -3,6 +3,7 @@ package com.xmgl.recognition.modules.enterprise.mapper;
import java.util.List;
import com.xmgl.recognition.annotation.DataScope;
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.xmgl.recognition.modules.enterprise.entity.MonitorDev;

View File

@ -1,8 +1,11 @@
package com.xmgl.recognition.modules.enterprise.service;
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
import com.xmgl.recognition.modules.enterprise.entity.MonitorDev;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 摄像机
* @author pengj
@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IMonitorDevService extends IService<MonitorDev> {
List<MonitorDevTreeDto> tree();
}

View File

@ -1,12 +1,23 @@
package com.xmgl.recognition.modules.enterprise.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xmgl.recognition.modules.admin.entity.Device;
import com.xmgl.recognition.modules.admin.service.IDeviceService;
import com.xmgl.recognition.modules.enterprise.dto.MonitorDevTreeDto;
import com.xmgl.recognition.modules.enterprise.entity.MonitorDev;
import com.xmgl.recognition.modules.enterprise.entity.SystemDept;
import com.xmgl.recognition.modules.enterprise.mapper.MonitorDevMapper;
import com.xmgl.recognition.modules.enterprise.service.IMonitorDevService;
import com.xmgl.recognition.modules.enterprise.service.ISystemDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 摄像机
* @author pengj
@ -16,4 +27,61 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class MonitorDevServiceImpl extends ServiceImpl<MonitorDevMapper, MonitorDev> implements IMonitorDevService {
@Autowired
private ISystemDeptService systemDeptService;
@Autowired
private IDeviceService deviceService;
@Override
public List<MonitorDevTreeDto> tree() {
List<MonitorDevTreeDto> list = build(systemDeptService.list(Wrappers.<SystemDept>lambdaQuery().eq(SystemDept::getType, 1)));
List<MonitorDevTreeDto> treeList = list.stream().filter(d -> d.getParentId().equals(0L)).collect(Collectors.toList());
return getTreeList(treeList, list);
}
private List<MonitorDevTreeDto> getTreeList(List<MonitorDevTreeDto> treeList, List<MonitorDevTreeDto> list) {
for (MonitorDevTreeDto monitorDevTreeDto : treeList) {
List<MonitorDevTreeDto> children = list.stream().filter(d -> d.getParentId() != null && d.getParentId().equals(monitorDevTreeDto.getId())).collect(Collectors.toList());
List<Long> deviceId = deviceService.list(Wrappers.<Device>lambdaQuery().eq(Device::getDeptId, monitorDevTreeDto.getId())).stream().map(d -> d.getId()).collect(Collectors.toList());
if (deviceId.size() > 0) {
List<MonitorDev> monitorDevList = this.list(Wrappers.<MonitorDev>lambdaQuery().in(MonitorDev::getDeviceId, deviceId));
children.addAll(build1(monitorDevList));
}
getTreeList(children, list);
if (monitorDevTreeDto.getParentId() != null && monitorDevTreeDto.getParentId().equals(0L)) {
monitorDevTreeDto.setParentId(null);
}
monitorDevTreeDto.setChildren(children);
}
return treeList;
}
private List<MonitorDevTreeDto> build(List<SystemDept> list) {
List<MonitorDevTreeDto> monitorDevTrees = new ArrayList<>();
for (SystemDept systemDept : list) {
MonitorDevTreeDto monitorDevTreeDto = new MonitorDevTreeDto();
monitorDevTreeDto.setId(systemDept.getDeptId());
monitorDevTreeDto.setParentId(systemDept.getParentId());
monitorDevTreeDto.setName(systemDept.getDeptName());
monitorDevTreeDto.setType(1);
monitorDevTrees.add(monitorDevTreeDto);
}
return monitorDevTrees;
}
private List<MonitorDevTreeDto> build1(List<MonitorDev> list) {
List<MonitorDevTreeDto> monitorDevTrees = new ArrayList<>();
for (MonitorDev monitorDev : list) {
MonitorDevTreeDto monitorDevTreeDto = new MonitorDevTreeDto();
monitorDevTreeDto.setId(monitorDev.getMonitorId());
monitorDevTreeDto.setName(monitorDev.getName());
monitorDevTreeDto.setCode(monitorDev.getCode());
monitorDevTreeDto.setUrl(monitorDev.getUrl());
monitorDevTreeDto.setIp(monitorDev.getIp());
monitorDevTreeDto.setType(2);
monitorDevTrees.add(monitorDevTreeDto);
}
return monitorDevTrees;
}
}

View File

@ -43,7 +43,6 @@ public class SystemDeptServiceImpl extends ServiceImpl<SystemDeptMapper, SystemD
@Override
public List<SystemDept> tree(Long deptId, Integer type) {
SecurityUser user = SecurityUtil.getUser();
List<SystemDept> list = this.list(Wrappers.<SystemDept>lambdaQuery().eq(SystemDept::getType, type));
List<SystemDept> treeList = new ArrayList<>();
if (deptId.equals(0L)) {

View File

@ -1,7 +1,7 @@
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/airecognition?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=JXJ@admin
spring.datasource.password=root
# 数据库驱动类
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据库连接池配置