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 86f51dd..b2f7bee 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 @@ -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 saveHardWareAlarm(@RequestBody Map map) { String hardwareId = MapUtils.getString(map, "hardwareId"); // 确认报警类型 - List algorithmList = algorithmService.list(); - List 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 queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(Algorithm::getRemark,type); + List algorithmList = algorithmService.list(queryWrapper); +// List 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(); diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/controller/DeviceAlarmController.java b/src/main/java/com/xmgl/recognition/modules/enterprise/controller/DeviceAlarmController.java index 8480599..4c0a73f 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/controller/DeviceAlarmController.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/controller/DeviceAlarmController.java @@ -128,7 +128,7 @@ public class DeviceAlarmController { .between(DeviceAlarm::getReportTime, DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()))); List algorithms = algorithmService.list(); deviceAlarmList.stream().forEach(d -> { - List algorithmList = algorithms.stream().filter(a -> a.getSortIndex().equals(d.getType())).collect(Collectors.toList()); + List 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 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 -> { diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/controller/MonitorDevController.java b/src/main/java/com/xmgl/recognition/modules/enterprise/controller/MonitorDevController.java index f5cb341..5b3d6fe 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/controller/MonitorDevController.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/controller/MonitorDevController.java @@ -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> queryTreeList() { + List tree = monitorDevService.tree(); + return Result.success(tree); + } + /** * 添加 diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/dto/MonitorDevTreeDto.java b/src/main/java/com/xmgl/recognition/modules/enterprise/dto/MonitorDevTreeDto.java new file mode 100644 index 0000000..d2280ef --- /dev/null +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/dto/MonitorDevTreeDto.java @@ -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 children; +} diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/mapper/MonitorDevMapper.java b/src/main/java/com/xmgl/recognition/modules/enterprise/mapper/MonitorDevMapper.java index 81ca871..ce390b7 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/mapper/MonitorDevMapper.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/mapper/MonitorDevMapper.java @@ -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; diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/service/IMonitorDevService.java b/src/main/java/com/xmgl/recognition/modules/enterprise/service/IMonitorDevService.java index 6675590..6657bdf 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/service/IMonitorDevService.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/service/IMonitorDevService.java @@ -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 { + List tree(); } diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/MonitorDevServiceImpl.java b/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/MonitorDevServiceImpl.java index 4473943..255ebac 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/MonitorDevServiceImpl.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/MonitorDevServiceImpl.java @@ -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 implements IMonitorDevService { + @Autowired + private ISystemDeptService systemDeptService; + + @Autowired + private IDeviceService deviceService; + + @Override + public List tree() { + List list = build(systemDeptService.list(Wrappers.lambdaQuery().eq(SystemDept::getType, 1))); + List treeList = list.stream().filter(d -> d.getParentId().equals(0L)).collect(Collectors.toList()); + return getTreeList(treeList, list); + } + + private List getTreeList(List treeList, List list) { + for (MonitorDevTreeDto monitorDevTreeDto : treeList) { + List children = list.stream().filter(d -> d.getParentId() != null && d.getParentId().equals(monitorDevTreeDto.getId())).collect(Collectors.toList()); + List deviceId = deviceService.list(Wrappers.lambdaQuery().eq(Device::getDeptId, monitorDevTreeDto.getId())).stream().map(d -> d.getId()).collect(Collectors.toList()); + if (deviceId.size() > 0) { + List monitorDevList = this.list(Wrappers.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 build(List list) { + List 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 build1(List list) { + List 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; + } } diff --git a/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/SystemDeptServiceImpl.java b/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/SystemDeptServiceImpl.java index 907d3c8..15518cc 100644 --- a/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/SystemDeptServiceImpl.java +++ b/src/main/java/com/xmgl/recognition/modules/enterprise/service/impl/SystemDeptServiceImpl.java @@ -43,7 +43,6 @@ public class SystemDeptServiceImpl extends ServiceImpl tree(Long deptId, Integer type) { - SecurityUser user = SecurityUtil.getUser(); List list = this.list(Wrappers.lambdaQuery().eq(SystemDept::getType, type)); List treeList = new ArrayList<>(); if (deptId.equals(0L)) { diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 3ec02b2..7395a8f 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -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 # 数据库连接池配置