From a70d0dfe221e06381b6e290d1dab85c9ab4fdc31 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期六, 23 三月 2024 08:36:05 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java | 3 ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java | 2 ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarPumpMapper.xml | 14 ++-- ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java | 4 + ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java | 21 ++++--- ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java | 2 ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java | 3 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 7 -- ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 4 ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | 85 ++++++++++++++++----------- 10 files changed, 82 insertions(+), 63 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java index f56ed47..39fa506 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java @@ -51,6 +51,7 @@ import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.tube.GeoPoint; import com.ruoyi.utils.tube.TubeTools; +import com.ruoyi.utils.websocket.util.WebSocketUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -1086,6 +1087,9 @@ String alarmpointName = ardAlarmRadar.getName();//鍏磋叮鐐瑰悕绉� ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName); if (well == null) { + Map<String, Object> map = new HashMap<>(); + map.put("80000", alarmpointName); + WebSocketUtils.sendMessageAll(map); String filePath = ARDConfig.getDownloadPath() + "noExistWell.txt"; writeStringToFile(alarmpointName, filePath); continue; 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 268e82b..9eb2008 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 @@ -220,7 +220,8 @@ @ApiOperation("鑾峰彇鏉冮檺鍙婁笅灞炴潈闄愪笅鐨勭浉鏈�") public AjaxResult getCamerasByDeptId() { Long deptId = SecurityUtils.getDeptId(); - List<Map<String,Object>> camerasList = ardCamerasService.getCamerasByDeptId(deptId); + String userId = SecurityUtils.getUserId(); + List<Map<String,Object>> camerasList = ardCamerasService.getCamerasByDeptId(deptId,userId); return AjaxResult.success(camerasList); } 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 9e39104..df9334a 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,7 @@ */ public ArdCameras checkCameraIpAndPortUnique(@Param("ip") String ip, @Param("port")Integer port); - public List<Map<String, Object>> getCamerasByDeptId(Long deptId); + public List<Map<String, Object>> getCamerasByDeptId(@Param("deptId")Long deptId,@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/IArdCamerasService.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java index 05ae7a1..860d96d 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 @@ -132,7 +132,7 @@ */ public String checkCameraIpAndPortUnique(ArdCameras camera); - public List<Map<String,Object>> getCamerasByDeptId(Long deptId); + public List<Map<String,Object>> getCamerasByDeptId(Long deptId,String userId); public Boolean getCameraOperationByCameraId(String id,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 00d2aff..7f7c334 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 @@ -564,8 +564,8 @@ } @Override - public List<Map<String, Object>> getCamerasByDeptId(Long deptId) { - List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptId); + public List<Map<String, Object>> getCamerasByDeptId(Long deptId,String userId) { + List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptId,userId); return result; } diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java index 9312614..097c4fa 100644 --- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java @@ -116,7 +116,7 @@ public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) { ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername()); ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate()); - // ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId()); + ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId()); insertArdVideoInspectTaskStep(ardVideoInspectTask); return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); } @@ -184,14 +184,9 @@ } if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) { for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) { - if (ardVideoInspectTaskStep.getId() == null) { //鏂扮殑姝ラ,娣诲姞 ardVideoInspectTaskStep.setId(IdUtils.simpleUUID()); ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep); - } else { - //宸叉湁姝ラ,鏇存柊 - ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep); - } } } } diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java index 694b3a5..eee6a8b 100644 --- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java @@ -41,11 +41,11 @@ @Value("${mediamtx.host}") String mediamtxHost; + @Override public void run(ApplicationArguments args) throws Exception { mediaNameList = getNameList(); - if(mediaNameList.size()>0) - { + if (mediaNameList.size() > 0) { removePath(mediaNameList.toArray(new String[0])); mediaNameList.clear(); } @@ -76,7 +76,7 @@ //榛樿杞В鐮� String cmd = "ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; if (mode.equals("0")) {//纭В鐮� - cmd = rootPath+"ffmpeg -hwaccel cuvid -c:v hevc_cuvid -rtsp_transport tcp -i " + sourceUrl + " -c:v h264_nvenc -r 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -bf 0 -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; + cmd = rootPath + "ffmpeg -hwaccel cuvid -c:v hevc_cuvid -rtsp_transport tcp -i " + sourceUrl + " -c:v h264_nvenc -r 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -bf 0 -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; } conf.setRunOnDemand(cmd); conf.setRunOnDemandRestart(true); @@ -89,8 +89,8 @@ conf.setSourceProtocol("tcp"); if (!checkNameExist(name)) { - mediaClient.addPath(name, conf); - mediaNameList.add(name); + mediaClient.addPath(name, conf); + mediaNameList.add(name); } map.put("rtspUrl", rtspUrl); @@ -172,11 +172,14 @@ @Override public void removePath(String[] names) { - for (String name : names) { - if (checkNameExist(name)) { - mediaClient.removePath(name); - log.info("鍒犻櫎鎴愬姛"); + try { + for (String name : names) { + if (checkNameExist(name)) { + mediaClient.removePath(name); + } } + } catch (Exception ex) { + log.error("鎵归噺绉婚櫎娴佸獟浣撳紓甯革細" + ex.getMessage()); } } diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java index 4de2ff2..7cad149 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java @@ -14,7 +14,8 @@ NET_DVR_NOINIT(3, "SDK鏈垵濮嬪寲"), NET_DVR_NETWORK_FAIL_CONNECT(7, "杩炴帴璁惧澶辫触銆傝澶囦笉鍦ㄧ嚎鎴栫綉缁滃師鍥犲紩璧风殑杩炴帴瓒呮椂绛�"), NET_DVR_NETWORK_RECV_TIMEOUT(10, "浠庤澶囨帴鏀舵暟鎹秴鏃�"), - NET_DVR_NETWORK_ERRORDATA(11, "浼犻�佺殑鏁版嵁鏈夎銆傚彂閫佺粰璁惧鎴栬�呬粠璁惧鎺ユ敹鍒扮殑鏁版嵁閿欒锛屽杩滅▼鍙傛暟閰嶇疆鏃惰緭鍏ヨ澶囦笉鏀寔鐨勫�笺��"); + NET_DVR_NETWORK_ERRORDATA(11, "浼犻�佺殑鏁版嵁鏈夎銆傚彂閫佺粰璁惧鎴栬�呬粠璁惧鎺ユ敹鍒扮殑鏁版嵁閿欒锛屽杩滅▼鍙傛暟閰嶇疆鏃惰緭鍏ヨ澶囦笉鏀寔鐨勫��"), + NET_DVR_DVROPRATEFAILED(29, "璁惧鎿嶄綔澶辫触"); /** * 鏋氫妇鐮� */ diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarPumpMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarPumpMapper.xml index 10c5e89..4390856 100644 --- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarPumpMapper.xml +++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarPumpMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.alarm.radar.mapper.ArdAlarmRadarPumpMapper"> - + <resultMap type="ArdAlarmRadarPump" id="ArdAlarmRadarPumpResult"> <result property="id" column="id" /> <result property="name" column="name" /> @@ -22,12 +22,12 @@ </resultMap> <sql id="selectArdAlarmRadarPumpVo"> - select id, name, target_id, alarm_type, alarm_time, longitude, latitude, record_url1, view_time, create_by, create_time, user_id, dept_id, guide_time from ard_alarm_radar_pump + select id, name, target_id, alarm_type, alarm_time, longitude, latitude, record_url, view_time, create_by, create_time, user_id, dept_id, guide_time from ard_alarm_radar_pump </sql> <select id="selectArdAlarmRadarPumpList" parameterType="ArdAlarmRadarPump" resultMap="ArdAlarmRadarPumpResult"> <include refid="selectArdAlarmRadarPumpVo"/> - <where> + <where> <if test="name != null and name != ''"> and name like '%'||#{name}||'%'</if> <if test="targetId != null and targetId != ''"> and target_id = #{targetId}</if> <if test="alarmType != null and alarmType != ''"> and alarm_type = #{alarmType}</if> @@ -48,12 +48,12 @@ </where> order by alarm_time desc </select> - + <select id="selectArdAlarmRadarPumpById" parameterType="String" resultMap="ArdAlarmRadarPumpResult"> <include refid="selectArdAlarmRadarPumpVo"/> where id = #{id} </select> - + <insert id="insertArdAlarmRadarPump" parameterType="ArdAlarmRadarPump"> insert into ard_alarm_radar_pump <trim prefix="(" suffix=")" suffixOverrides=","> @@ -118,7 +118,7 @@ </delete> <delete id="deleteArdAlarmRadarPumpByIds" parameterType="String"> - delete from ard_alarm_radar_pump where id in + delete from ard_alarm_radar_pump where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> @@ -172,4 +172,4 @@ from ard_alarm_radar_pump where alarm_time >= #{start} and alarm_time <= #{end} group by date order by date </select> -</mapper> \ No newline at end of file +</mapper> diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml index b084616..0a4d585 100644 --- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml +++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml @@ -288,41 +288,56 @@ 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&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&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 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", + 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_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&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 * from rsd + 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