From 3cadca8ab0c0db03f072c5eb55c5703cd6965d9d Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期五, 02 六月 2023 14:39:50 +0800 Subject: [PATCH] 增加获取部门及相机接口 --- ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 4 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java | 7 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 13 ++-- ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java | 9 ++ ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java | 11 +++ ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java | 3 + ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java | 11 +++ ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java | 9 +++ ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java | 38 ++++++++++++ ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 66 ++++++++++++++++++++++ ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | 6 + 11 files changed, 168 insertions(+), 9 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java index 193f73e..eca36f8 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java @@ -8,6 +8,7 @@ import com.ruoyi.device.hiksdk.service.impl.HikClientServiceImpl; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDeptService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -160,5 +161,11 @@ } return options; } - + @GetMapping("/getDeptAndCamera") + @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈�") + public AjaxResult getDeptAndCamera() + { + Map deptAndCamera = ardCamerasService.getChildDeptAndCamera(); + return AjaxResult.success(deptAndCamera); + } } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java b/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java index c14115b..beac34a 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java @@ -3,6 +3,7 @@ import java.util.List; import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.device.camera.domain.ArdCameras; /** @@ -67,4 +68,12 @@ */ public int deleteArdCamerasByIds(String[] ids); public List findOptions(ArdCameras ardCameras); + + /** + * 鏍规嵁閮ㄩ棬ID鏌ヨ鎸傝浇鐨勭浉鏈� + * + * @param deptId 閮ㄩ棬ID + * @return 閮ㄩ棬鍒楄〃 + */ + public List<ArdCameras> selectArdCamerasByDeptId(Long deptId); } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java index 1cd7fe6..0d2dcb5 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java @@ -1,6 +1,8 @@ package com.ruoyi.device.camera.service; +import java.util.HashMap; import java.util.List; +import java.util.Map; import com.ruoyi.device.camera.domain.ArdCameras; @@ -67,4 +69,13 @@ public int deleteArdCamerasById(String id); public List findOptions(ArdCameras ardCameras); + /** + * @鎻忚堪 鑾峰彇鏈儴闂ㄤ互涓嬬殑鎵�鏈夌浉鏈哄拰閮ㄩ棬 + * @鍙傛暟 [] + * @杩斿洖鍊� java.util.Map + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/2 10:58 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + public Map getChildDeptAndCamera(); } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java index 6ebfb97..1b42fc8 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java @@ -1,13 +1,23 @@ package com.ruoyi.device.camera.service.impl; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.bean.BeanUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.common.utils.tools.ArdTool; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.system.mapper.SysDeptMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -22,6 +32,8 @@ public class ArdCamerasServiceImpl implements IArdCamerasService { @Resource private ArdCamerasMapper ardCamerasMapper; + @Resource + private SysDeptMapper sysDeptMapper; /** * 鏌ヨ鐩告満璁惧 @@ -108,4 +120,58 @@ public List findOptions(ArdCameras ardCameras) { return ardCamerasMapper.findOptions(ardCameras); } + + /** + * @鎻忚堪 鑾峰彇鏈儴闂ㄤ互涓嬬殑鎵�鏈夌浉鏈哄拰閮ㄩ棬 + * @鍙傛暟 [] + * @杩斿洖鍊� java.util.Map + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/2 10:58 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + + @Override + public Map getChildDeptAndCamera() { + Long deptId = SecurityUtils.getDeptId(); + SysDept sysDept = sysDeptMapper.selectDeptById(deptId); + Map<String, Object> map = fetchChildDepartments(sysDept); + return map; + } + /** + * @鎻忚堪 閫掑綊鏌ヨ + * @鍙傛暟 [sysDept] + * @杩斿洖鍊� java.util.Map<java.lang.String,java.lang.Object> + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/2 14:38 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + public Map<String, Object> fetchChildDepartments(SysDept sysDept) { + Map<String, Object> map = new HashMap<>(); + map.put("name", sysDept.getDeptName()); + map.put("deptId", sysDept.getDeptId()); + map.put("disabled", true); + List<SysDept> sysDepts = sysDeptMapper.selectNextChildrenDeptById(sysDept.getDeptId()); + List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasByDeptId(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", true); + Map<String, Object> map1 = fetchChildDepartments(childDept); + childMap.putAll(map1); + childList.add(childMap); + } + if (ardCameras.size() > 0) { + for (ArdCameras camera : ardCameras) { + Map<String, Object> cameraMap = ArdTool.convertEntityToMap(camera); + childList.add(cameraMap); + } + } + map.put("children", childList); + return map; + + } + + } diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml index 2b3c5fe..1f6187e 100644 --- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml +++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml @@ -239,7 +239,6 @@ </foreach> </delete> - <select id="findOptions" parameterType="String" resultMap="ArdCamerasResult"> <include refid="selectArdCamerasVo"/> <where> @@ -247,4 +246,9 @@ <if test="name != null and name != ''">and c.name like '%'||#{name}||'%'</if> </where> </select> + <select id="selectArdCamerasByDeptId" parameterType="Long" resultMap="ArdCamerasResult"> + select * + from ard_cameras + where dept_id = #{deptId} + </select> </mapper> \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index fb18c5c..fe8beb2 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -55,6 +55,17 @@ /** 瀛愰儴闂� */ private List<SysDept> children = new ArrayList<SysDept>(); + + private boolean disabled; + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean disabled) { + this.disabled = disabled; + } + public Long getDeptId() { return deptId; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java new file mode 100644 index 0000000..8557f57 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/tools/ArdTool.java @@ -0,0 +1,38 @@ +package com.ruoyi.common.utils.tools; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +/** + * @Description: 宸ュ叿鏂规硶 + * @ClassName: ArdTool + * @Author: 鍒樿嫃涔� + * @Date: 2023骞�06鏈�02鏃�14:37 + * @Version: 1.0 + **/ +public class ArdTool { + + /** + * @鎻忚堪 瀹炰綋瀵硅薄杞琈ap + * @鍙傛暟 [entity] + * @杩斿洖鍊� java.util.Map<java.lang.String,java.lang.Object> + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/6/2 14:35 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + public static Map<String, Object> convertEntityToMap(Object entity) { + Map<String, Object> map = new HashMap<>(); + Field[] fields = entity.getClass().getDeclaredFields(); + for (Field field : fields) { + field.setAccessible(true); + try { + Object value = field.get(entity); + map.put(field.getName(), value); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + return map; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index 384a9b6..94d608d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -43,6 +43,13 @@ * @return 閮ㄩ棬鍒楄〃 */ public List<SysDept> selectChildrenDeptById(Long deptId); + /** + * 鏍规嵁ID鏌ヨ涓嬬骇瀛愰儴闂� + * + * @param deptId 閮ㄩ棬ID + * @return 閮ㄩ棬鍒楄〃 + */ + public List<SysDept> selectNextChildrenDeptById(Long deptId); /** * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 166ba16..7fdbc3e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -1,6 +1,8 @@ package com.ruoyi.system.service; import java.util.List; +import java.util.Map; + import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysDept; @@ -121,4 +123,5 @@ * @return 缁撴灉 */ public int deleteDeptById(Long deptId); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index bdd0df7..c93eaf2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,10 +1,7 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; @@ -21,6 +18,8 @@ import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.service.ISysDeptService; +import javax.annotation.Resource; + /** * 閮ㄩ棬绠$悊 鏈嶅姟瀹炵幇 * @@ -29,10 +28,10 @@ @Service public class SysDeptServiceImpl implements ISysDeptService { - @Autowired + @Resource private SysDeptMapper deptMapper; - @Autowired + @Resource private SysRoleMapper roleMapper; /** @@ -335,4 +334,6 @@ { return getChildList(list, t).size() > 0; } + + } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 0827ecb..5049c2e 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -77,7 +77,9 @@ <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult"> select * from sys_dept where cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) </select> - + <select id="selectNextChildrenDeptById" parameterType="Long" resultMap="SysDeptResult"> + select * from sys_dept where parent_id=#{deptId} and del_flag='0' + </select> <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int"> select count(*) from sys_dept where status = '0' and del_flag = '0' and cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) </select> -- Gitblit v1.9.3