Jelajahi Sumber

Merge remote-tracking branch 'origin/20210223' into 20210223

wangyangyang 4 tahun lalu
induk
melakukan
1e98547a5a

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

@@ -140,7 +140,7 @@ public class CameraManageController {
     /**
      * 获取单个摄像头信息
      *
-     * @param   主键id
+     * @param
      * @param
      * @return Response对象
      */
@@ -150,5 +150,18 @@ public class CameraManageController {
         List<CameraDto> cameraManages =cameraManageService.getCameraTree(0l);
         return new AjaxMessage<>(ResultStatus.OK, cameraManages);
     }
+    /**
+     * 获取单个摄像头信息
+     *
+     * @param  id 主键id
+     * @param
+     * @return Response对象
+     */
+    @RequestMapping(value = "getAllCameras", method = RequestMethod.POST)
+    @ApiOperation(value = "查询摄像头列表")
+    public AjaxMessage<List<CameraManage>> getAllCameras(Integer id) {
+        List<CameraManage> cameraManages =cameraManageService.getAllCameras(id);
+        return new AjaxMessage<>(ResultStatus.OK, cameraManages);
+    }
 
 }

+ 5 - 0
sms_water/src/main/java/com/huaxu/dao/CameraManageMapper.java

@@ -82,4 +82,9 @@ public interface CameraManageMapper {
     IPage<CameraManage> selectPage(IPage<CameraManage> page, CameraManage cameraManage);
 
     int deleteAll(List<Integer> ids);
+
+    List<CameraManage> getAllCameras(Integer id);
+
+    List<CameraManage> selectAllCameras(CameraManage searchCameraManage);
+
 }

+ 1 - 0
sms_water/src/main/java/com/huaxu/entity/CameraManage.java

@@ -151,6 +151,7 @@ public class CameraManage implements Serializable {
     @ApiModelProperty(value = "权限类型",hidden = true)
     @TableField(exist = false)
     private Integer permissonType;
+    private String parentSceneIds;
 
 
 }

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

@@ -82,4 +82,6 @@ public interface CameraManageService {
     int deleteAll(List<Integer> ids);
 
     List<CameraDto> getCameraTree(Long typeId);
+
+    List<CameraManage> getAllCameras(Integer id);
 }

+ 49 - 19
sms_water/src/main/java/com/huaxu/service/impl/CameraManageServiceImpl.java

@@ -311,34 +311,64 @@ public class CameraManageServiceImpl implements CameraManageService {
         searchSceneEntity.setUserType(currentUser.getType());
         //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
         searchSceneEntity.setPermissonType(currentUser.getPermissonType());
+        searchSceneEntity.setParentSceneId(0l);
         List<SceneEntity> sceneEntities = sceneMapper.findList(searchSceneEntity);
         CameraManage searchCameraManage=new CameraManage();
         searchCameraManage.setStatus(1);
-        List<CameraManage> cameraManages = cameraManageMapper.selectList(searchCameraManage);
+        searchCameraManage.setTenantId(currentUser.getTenantId());
+        List<CameraManage> cameraManages = cameraManageMapper.selectAllCameras(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.setId(sceneEntity.getId());
+                cameraDto.setKey(sceneEntity.getId()+"_senceType");
+                cameraDto.setParentKey(sceneEntity.getParentSceneId()+"_senceType");
                 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);
+                //cameraDto.setPid(sceneEntity.getParentSceneId());
+                cameraDto.setSceneName(sceneEntity.getSceneName());
                 cameraDtos.add(cameraDto);
-            }
         });
-        return cameraDtos;
+        cameraManages.forEach(cameraManage ->{
+            CameraDto cameraDto=new CameraDto();
+
+            cameraDto.setId(Long.valueOf(cameraManage.getId()) );
+            cameraDto.setKey(cameraManage.getId()+"_cameraType");
+            String[] parentIds = cameraManage.getParentSceneIds().split(",");
+            if(parentIds.length>1){
+                cameraDto.setParentKey(parentIds[1]+"_senceType");
+            }
+            cameraDto.setSceneName(cameraManage.getName());
+            cameraDtos.add(cameraDto);
+        } );
+        List<CameraDto>cameraTree=getCameraTree(cameraDtos,0+"_senceType",1);
+        return cameraTree;
+    }
+
+    @Override
+    public List<CameraManage> getAllCameras(Integer id) {
+         ;
+        return cameraManageMapper.getAllCameras(id);
+    }
+
+    public  List<CameraDto> getCameraTree(List<CameraDto> list, String key, Integer leve) {
+        List<CameraDto> temList = newArrayList();
+        if (list != null) {
+            for (CameraDto cameraDto : list) {
+                if (key.equals(cameraDto.getParentKey())) {
+                    List<CameraDto> chidren = getCameraTree(list, cameraDto.getKey(), ++leve);
+                    CameraDto temMeanu = new CameraDto();
+                    BeanUtils.copyProperties(cameraDto, temMeanu);
+                    temMeanu.setChildren(chidren);
+                    temList.add(temMeanu);
+                    leve--;
+                }
+            }
+        }
+        if (temList.size() > 0) {
+            return temList;
+        } else {
+            return null;
+        }
     }
 
 }

+ 34 - 0
sms_water/src/main/resources/mapper/CameraManageMapper.xml

@@ -330,6 +330,40 @@
             </if>
         </where>
     </select>
+    <select id="getAllCameras" resultType="com.huaxu.entity.CameraManage">
+        SELECT
+            *
+        FROM
+            sms_camera_manage
+        WHERE
+            status=1 and    SCENE_ID IN (
+                SELECT DATA
+                           .id
+                FROM
+                    (
+                        SELECT
+                            @ids AS _ids,
+                            ( SELECT @ids := GROUP_CONCAT( id ) FROM sms_scene WHERE
+                        FIND_IN_SET( PARENT_SCENE_ID, @ids ) AND STATUS = 1 ) AS cids,
+                            @l := @l + 1 AS LEVEL
+                        FROM
+                            sms_scene,
+                            ( SELECT @ids := #{id}, @l := 0 ) b
+                        WHERE
+                            @ids IS NOT NULL
+                    ) id,
+                    sms_scene DATA
+                WHERE
+                    FIND_IN_SET( DATA.id, ID._ids )
+            )
+    </select>
+    <select id="selectAllCameras" resultType="com.huaxu.entity.CameraManage">
+        select
+        <include refid="Base_Column_List"/> ,b.SCENE_NAME,b.PARENT_SCENE_IDS
+        from sms_camera_manage a join sms_scene b on a.SCENE_ID=b.ID
+        where a.status=1  and a.TENANT_ID = #{tenantId}
+    </select>
+
     <update id="deleteAll">
         update sms_camera_manage set STATUS=0 where STATUS=1 and ID in
         <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">