From 4532b321444257453a86c0f5289a3a5f576db71e Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期六, 23 三月 2024 16:16:33 +0800 Subject: [PATCH] app查询光电修改提交 --- ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java | 3 ++- ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 17 ++++++++++++++++- ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | 37 ++++++++++++++++++++++++++++++++++++- 3 files changed, 54 insertions(+), 3 deletions(-) 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 df9334a..34d793f 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 @@ -90,7 +90,8 @@ */ public ArdCameras checkCameraIpAndPortUnique(@Param("ip") String ip, @Param("port")Integer port); - public List<Map<String, Object>> getCamerasByDeptId(@Param("deptId")Long deptId,@Param("userId")String userId); + //public List<Map<String, Object>> getCamerasByDeptId(@Param("deptId")Long deptId,@Param("userId")String userId); + public List<Map<String, Object>> getCamerasByDeptId(@Param("deptIdList")List<Long> deptIdList,@Param("userId")String userId); public Boolean getCameraOperationByCameraId(@Param("id") String id, @Param("userId") String userId); 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 7f7c334..6149416 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 @@ -565,10 +565,25 @@ @Override public List<Map<String, Object>> getCamerasByDeptId(Long deptId,String userId) { - List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptId,userId); + List<Long> deptIdList = new ArrayList(); + deptIdList.add(deptId); + deptIdList = getOwnAndChildrenDeptIdList(deptIdList,new ArrayList());//閫掑綊鏌ヨ涓嬪睘閮ㄩ棬涓婚敭 + //List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptId,userId); + List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptIdList,userId); return result; } + public List<Long> getOwnAndChildrenDeptIdList(List<Long> deptIdList,List<Long> deptIdListr){ + deptIdListr.addAll(deptIdList); + List<Long> result = sysDeptMapper.getChildrenDeptIdList(deptIdList); + if(result.size() != 0){ + deptIdListr.addAll(result); + result = getOwnAndChildrenDeptIdList(result,deptIdListr); + } + deptIdListr = deptIdListr.stream().distinct().collect(Collectors.toList()); + return deptIdListr; + } + @Override public Boolean getCameraOperationByCameraId(String id, String userId) { Boolean result = ardCamerasMapper.getCameraOperationByCameraId(id,userId); diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml index 0a4d585..38ff325 100644 --- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml +++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml @@ -288,7 +288,7 @@ where ip = #{ip} and port = #{port} limit 1 </select> - <select id="getCamerasByDeptId" resultType="java.util.Map" > + <!--<select id="getCamerasByDeptId" resultType="java.util.Map" > select distinct * from ( with recursive rsd as ( select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", @@ -338,6 +338,41 @@ inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type where sur.user_id = #{userId} and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') and sdt0.dict_type = 'factory' )t order by "dictLabel" + </select>--> + <select id="getCamerasByDeptId" resultType="java.util.Map" > + select distinct * from ( + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp + from ard_cameras ac + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + where ac.dept_id in + <foreach collection="deptIdList" open="(" close=")" separator="," item="deptId"> + #{deptId} + </foreach> + and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') + and sdt0.dict_type = 'factory' + union + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp from sys_user_role sur + inner join sys_role_dept srd on sur.role_id = srd.role_id + inner join ard_cameras ac on srd.dept_id = ac.dept_id + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + where sur.user_id = #{userId} and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') and sdt0.dict_type = 'factory' + )t order by "dictLabel" </select> <select id="getCameraOperationByCameraId" resultType="java.lang.Boolean" parameterType="java.lang.String"> select -- Gitblit v1.9.3