From 55bfebcee6b804faaa65d41105d4333a4117aab5 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期五, 19 七月 2024 16:39:18 +0800
Subject: [PATCH] 雷达查询加入自定义权限修改提交

---
 ard-work/src/main/java/com/ruoyi/device/radar/service/IArdEquipRadarService.java         |    2 +
 ard-work/src/main/java/com/ruoyi/device/radar/controller/ArdEquipRadarController.java    |   14 ++++++
 ard-work/src/main/java/com/ruoyi/device/radar/service/impl/ArdEquipRadarServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 102 insertions(+), 5 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/radar/controller/ArdEquipRadarController.java b/ard-work/src/main/java/com/ruoyi/device/radar/controller/ArdEquipRadarController.java
index 3d561ff..e196402 100644
--- a/ard-work/src/main/java/com/ruoyi/device/radar/controller/ArdEquipRadarController.java
+++ b/ard-work/src/main/java/com/ruoyi/device/radar/controller/ArdEquipRadarController.java
@@ -140,10 +140,22 @@
     /**
      * 鑾峰彇閮ㄩ棬鍜岄浄杈�
      */
-    @GetMapping("/getDeptAndRadar")
+    /*@GetMapping("/getDeptAndRadar")
     @ApiOperation("鑾峰彇閮ㄩ棬鍜岄浄杈�")
     public AjaxResult getDeptAndCamera() {
         Map deptAndCamera = ardEquipRadarService.getChildDeptAndRadar(true);
         return AjaxResult.success(deptAndCamera);
+    }*/
+
+    /**
+     * 鑾峰彇閮ㄩ棬鍜岄浄杈�
+     * zns
+     */
+    @GetMapping("/getDeptAndRadar")
+    @ApiOperation("鑾峰彇閮ㄩ棬鍜岄浄杈�")
+    public AjaxResult getDeptAndRadar() {
+        //Map deptAndCamera = ardEquipRadarService.getChildDeptAndRadar(true);
+        List<Map<String, Object>> deptAndRadar = ardEquipRadarService.getChildDeptAndRadarOwn(false);
+        return AjaxResult.success(deptAndRadar);
     }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/device/radar/service/IArdEquipRadarService.java b/ard-work/src/main/java/com/ruoyi/device/radar/service/IArdEquipRadarService.java
index 5fdb180..e29d617 100644
--- a/ard-work/src/main/java/com/ruoyi/device/radar/service/IArdEquipRadarService.java
+++ b/ard-work/src/main/java/com/ruoyi/device/radar/service/IArdEquipRadarService.java
@@ -69,4 +69,6 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     public Map getChildDeptAndRadar(Boolean disabled);
+
+    public List<Map<String, Object>> getChildDeptAndRadarOwn(Boolean disabled);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/device/radar/service/impl/ArdEquipRadarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/radar/service/impl/ArdEquipRadarServiceImpl.java
index 250264f..165eb7d 100644
--- a/ard-work/src/main/java/com/ruoyi/device/radar/service/impl/ArdEquipRadarServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/radar/service/impl/ArdEquipRadarServiceImpl.java
@@ -1,9 +1,6 @@
 package com.ruoyi.device.radar.service.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.core.domain.entity.SysDept;
@@ -132,6 +129,28 @@
         return map;
     }
 
+    @Override
+    public List<Map<String, Object>> getChildDeptAndRadarOwn(Boolean disabled) {
+        Long deptId = SecurityUtils.getDeptId();
+        SysDept sysDept = sysDeptMapper.selectDeptById(deptId);
+        List<Long> ownDeptIdList = sysDeptMapper.selectRoleDeptIdByUsersId(SecurityUtils.getUserId());//鑷畾涔夋潈闄愪富閿煡璇�
+        ownDeptIdList.remove(SecurityUtils.getDeptId());//鑻ヨ嚜瀹氫箟鏉冮檺鍖呭惈鏈骇鏉冮檺锛屽垯绉婚櫎
+        Map<String, Object> map = fetchChildDepartments(sysDept, disabled, ownDeptIdList);//鏌ヨ鏈潈闄愬強涓嬪睘鏉冮檺璁惧骞跺湪鑷畾涔夋潈闄愪腑绉婚櫎涓嬪睘閮ㄩ棬涓婚敭
+        Set<Long> pIdSet = new HashSet();//鑷畾涔夋潈闄愪富閿殑鏈�楂樻潈闄�
+        for(Long deptIdn : ownDeptIdList){
+            List<SysDept> pSysDeptList = sysDeptMapper.getParentsDeptListByDeptId(deptIdn);
+            pIdSet.add(pSysDeptList.get(pSysDeptList.size() - 1).getDeptId());//鑾峰彇
+        }
+        List<Map<String, Object>> result = new ArrayList();
+        result.add(map);
+        for(Long pId : pIdSet){
+            SysDept pSysDept = sysDeptMapper.selectDeptById(pId);
+            Map<String, Object> mapO = fetchChildDepartments(ownDeptIdList, pSysDept, disabled);
+            result.add(mapO);
+        }
+        return result;
+    }
+
     /**
      * @鎻忚堪 閫掑綊鏌ヨ
      * @鍙傛暟 [sysDept]
@@ -168,4 +187,68 @@
 
     }
 
+    /**
+     * zns
+     *
+     * */
+    public Map<String, Object> fetchChildDepartments(SysDept sysDept, Boolean disabled, List<Long> ownDeptIdList) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("name", sysDept.getDeptName());
+        map.put("deptId", sysDept.getDeptId());
+        map.put("disabled", disabled);
+        List<SysDept> sysDepts = sysDeptMapper.selectNextChildrenDeptById(sysDept.getDeptId());
+        for(SysDept sysDeptC : sysDepts){//鑻ヨ嚜瀹氫箟鏉冮檺鍖呭惈涓嬬骇鏉冮檺锛屽垯绉婚櫎
+            if(ownDeptIdList.contains(sysDeptC.getDeptId())){
+                ownDeptIdList.remove(sysDeptC.getDeptId());
+            }
+        }
+        List<ArdEquipRadar> ardRadars = ardEquipRadarMapper.selectArdRadarsByDeptId(sysDept.getDeptId());
+        List<Object> childList = new ArrayList<>();
+        for (SysDept childDept : sysDepts) {
+            Map<String, Object> childMap = new HashMap<>();
+            childMap.put("name", childDept.getDeptName());
+            childMap.put("deptId", childDept.getDeptId());
+            childMap.put("disabled", disabled);
+            Map<String, Object> map1 = fetchChildDepartments(childDept, disabled);
+            childMap.putAll(map1);
+            childList.add(childMap);
+        }
+        if (ardRadars.size() > 0) {
+            for (ArdEquipRadar radar : ardRadars) {
+                Map<String, Object> cameraMap = ArdTool.convertEntityToMap(radar);
+                childList.add(cameraMap);
+            }
+        }
+        map.put("children", childList);
+        return map;
+    }
+
+    public Map<String, Object> fetchChildDepartments(List<Long> ownDeptIdList, SysDept sysDept, Boolean disabled) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("name", sysDept.getDeptName());
+        map.put("deptId", sysDept.getDeptId());
+        map.put("disabled", disabled);
+        List<SysDept> sysDepts = sysDeptMapper.selectNextChildrenDeptByIdAndInList(sysDept.getDeptId(),ownDeptIdList);
+        List<ArdEquipRadar> ardRadars = ardEquipRadarMapper.selectArdRadarsByDeptId(sysDept.getDeptId());
+        List<Object> childList = new ArrayList<>();
+        for (SysDept childDept : sysDepts) {
+            Map<String, Object> childMap = new HashMap<>();
+            childMap.put("name", childDept.getDeptName());
+            childMap.put("deptId", childDept.getDeptId());
+            childMap.put("disabled", disabled);
+            //Map<String, Object> map1 = fetchChildDepartments(childDept, disabled);
+            Map<String, Object> map1 = fetchChildDepartments(ownDeptIdList,childDept, disabled);
+            childMap.putAll(map1);
+            childList.add(childMap);
+        }
+        if (ardRadars.size() > 0) {
+            for (ArdEquipRadar radar : ardRadars) {
+                Map<String, Object> cameraMap = ArdTool.convertEntityToMap(radar);
+                childList.add(cameraMap);
+            }
+        }
+        map.put("children", childList);
+        return map;
+    }
+
 }

--
Gitblit v1.9.3