From 48af67d016ceca5d8bd598c478b70c54ed099bf0 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 12 三月 2024 11:25:07 +0800
Subject: [PATCH] 大华设备增加getPTZ

---
 ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
index 897dcd2..cb74bd9 100644
--- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
+++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
@@ -107,6 +107,7 @@
             <!-- 鏁版嵁鑼冨洿杩囨护 -->
             ${params.dataScope}
         </where>
+        order  by c.name
     </select>
     <select id="selectArdCamerasListNoDataScope" parameterType="ArdCameras" resultMap="ArdCamerasResult">
         <include refid="selectArdCamerasVo"/>
@@ -287,4 +288,40 @@
         where ip = #{ip}
           and port = #{port} limit 1
     </select>
+    <select id="getCamerasByDeptId" resultType="java.util.Map" parameterType="java.lang.Long">
+        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",
+                   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&amp;subtype=1')
+                       end as rtsp
+            from sys_dept sd
+                     inner join ard_cameras ac on sd.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 sd.dept_id = #{deptId}
+              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&amp;subtype=1')
+                       end as rtsp
+            from sys_dept csd
+                     inner join rsd on rsd."deptId" = csd.parent_id
+                     inner join ard_cameras ac on csd.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
+                and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�')
+                and sdt0.dict_type = 'factory'
+        )
+        select distinct * from rsd order by "dictLabel"
+    </select>
 </mapper>

--
Gitblit v1.9.3