Browse Source

摄像头场景树

hym 4 years ago
parent
commit
a6f0c03e71

+ 14 - 0
sms_water/src/main/java/com/huaxu/controller/CameraManageController.java

@@ -2,6 +2,7 @@ package com.huaxu.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.dto.CameraDto;
 import com.huaxu.entity.CameraManage;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
@@ -136,5 +137,18 @@ public class CameraManageController {
         CameraManage cameraManage =cameraManageService.selectById(id);
         return new AjaxMessage<>(ResultStatus.OK, cameraManage);
     }
+    /**
+     * 获取单个摄像头信息
+     *
+     * @param   主键id
+     * @param
+     * @return Response对象
+     */
+    @RequestMapping(value = "getCameraTree", method = RequestMethod.POST)
+    @ApiOperation(value = "查询摄像头列表")
+    public AjaxMessage<List<CameraDto>> getCameraTree() {
+        List<CameraDto> cameraManages =cameraManageService.getCameraTree(0l);
+        return new AjaxMessage<>(ResultStatus.OK, cameraManages);
+    }
 
 }

+ 16 - 0
sms_water/src/main/java/com/huaxu/dto/CameraDto.java

@@ -0,0 +1,16 @@
+package com.huaxu.dto;
+
+import com.huaxu.entity.CameraManage;
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class CameraDto {
+    private String key;
+    private Long id;
+    private String  sceneName;
+    private String sceneTypeName;
+    private String parentKey;
+    private Integer level;
+    List<CameraDto>children;
+}

+ 3 - 0
sms_water/src/main/java/com/huaxu/service/CameraManageService.java

@@ -1,6 +1,7 @@
 package com.huaxu.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.CameraDto;
 import com.huaxu.entity.CameraManage;
 
 import java.util.List;
@@ -79,4 +80,6 @@ public interface CameraManageService {
     IPage<CameraManage> selectPage(CameraManage cameraManage, IPage<CameraManage> page);
 
     int deleteAll(List<Integer> ids);
+
+    List<CameraDto> getCameraTree(Long typeId);
 }

+ 51 - 0
sms_water/src/main/java/com/huaxu/service/impl/CameraManageServiceImpl.java

@@ -3,13 +3,18 @@ package com.huaxu.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.CameraManageMapper;
+import com.huaxu.dao.SceneMapper;
+import com.huaxu.dto.CameraDto;
 import com.huaxu.entity.CameraManage;
+import com.huaxu.entity.SceneEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.model.ProgramItem;
 import com.huaxu.service.CameraManageService;
 import com.huaxu.util.OrgInfoUtil;
 import com.huaxu.util.RedisUtil;
 import com.huaxu.util.UserUtil;
+import javafx.scene.Camera;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -21,6 +26,9 @@ import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.google.common.collect.Lists.newArrayList;
 
 /**
  * (CameraManage表)服务实现类
@@ -38,6 +46,8 @@ public class CameraManageServiceImpl implements CameraManageService {
     private RestTemplate restTemplate;
     @Autowired
     private OrgInfoUtil util;
+    @Autowired
+    private SceneMapper sceneMapper;
 
     /**
      * 通过ID查询单条数据
@@ -290,4 +300,45 @@ public class CameraManageServiceImpl implements CameraManageService {
         cameraManageMapper.deleteAll(ids);
         return 0;
     }
+
+    @Override
+    public List<CameraDto> getCameraTree(Long typeId) {
+
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        SceneEntity searchSceneEntity = new SceneEntity();
+        searchSceneEntity.setTenantId(currentUser.getTenantId());
+        searchSceneEntity.setProgramItems(currentUser.getProgramItemList());
+        searchSceneEntity.setUserType(currentUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        searchSceneEntity.setPermissonType(currentUser.getPermissonType());
+        List<SceneEntity> sceneEntities = sceneMapper.findList(searchSceneEntity);
+        CameraManage searchCameraManage=new CameraManage();
+        searchCameraManage.setStatus(1);
+        List<CameraManage> cameraManages = cameraManageMapper.selectList(searchCameraManage);
+        List<CameraDto>cameraDtos=new ArrayList<>();
+
+        Map<Integer, List<CameraManage>> detailmap = cameraManages.stream()
+                .collect(Collectors.groupingBy(d -> d.getSceneId() ));
+        sceneEntities.forEach(sceneEntity -> {
+            Long id = sceneEntity.getId();
+            if(detailmap.get(Integer.valueOf(id+""))!=null){
+                CameraDto cameraDto=new CameraDto();
+                cameraDto.setId(id);
+                cameraDto.setSceneName(sceneEntity.getSceneName());
+                cameraDto.setSceneTypeName(sceneEntity.getSceneTypeName());
+                List<CameraDto>cameraDtos2=new ArrayList<>();
+                detailmap.get(Integer.valueOf(id+"")).forEach(detail->{
+                    CameraDto cameraDto2=new CameraDto();
+                    cameraDto2.setId(Long.valueOf(detail.getId()));
+                    cameraDto2.setSceneName(detail.getName());
+                    cameraDto2.setSceneTypeName(sceneEntity.getSceneTypeName());
+                    cameraDtos2.add(cameraDto2);
+                });
+                cameraDto.setChildren(cameraDtos2);
+                cameraDtos.add(cameraDto);
+            }
+        });
+        return cameraDtos;
+    }
+
 }