aijinhui
2024-03-23 a70d0dfe221e06381b6e290d1dab85c9ab4fdc31
Merge remote-tracking branch 'origin/dev' into dev
已修改10个文件
145 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmRadarPumpMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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);
    }
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);
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);
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;
    }
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);
                }
            }
        }
    }
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());
        }
    }
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, "设备操作失败");
    /**
     * 枚举码
     */
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 &gt;= #{start} and  alarm_time &lt;= #{end}  group by date order by date
    </select>
</mapper>
</mapper>
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&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 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&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 * 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&amp;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