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