Administrator
2023-08-09 67d965cb476bde49109a3773532c33dd9de60518
Merge remote-tracking branch 'origin/master'
已修改16个文件
已删除1个文件
279 ■■■■ 文件已修改
ard-work/pom.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/constant/CamPriority.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/pom.xml
@@ -31,10 +31,6 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <!--        <dependency>-->
        <!--            <groupId>org.projectlombok</groupId>-->
        <!--            <artifactId>lombok</artifactId>-->
        <!--        </dependency>-->
        <!--海康录像机二次开发依赖jar包-->
        <dependency>
@@ -173,6 +169,7 @@
            <version>3.0.3</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -30,8 +30,8 @@
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.constant.CamPriority;
import com.ruoyi.device.external.domain.ArdEquipExternal;
import com.ruoyi.device.external.mapper.ArdEquipExternalMapper;
import com.ruoyi.utils.tools.ArdTool;
@@ -42,16 +42,12 @@
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.utils.tube.GeoPoint;
import com.ruoyi.utils.tube.TubeTools;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.PriorityBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -694,8 +690,13 @@
            //接收时间
            guideTask.setReceiveTime(fmt.format(receiveTime));
            //报警优先级(通过优先级字典)
            Integer priority = CamPriority.priorityMap.get(alarmType);
            guideTask.setPriority(priority);
            String priority = DictUtils.getDictValue("cameras_priority", alarmType);
            if(StringUtils.isEmpty(priority))
            {
                log.debug("未匹配到优先级,请检查优先级字典配置");
                return;
            }
            guideTask.setPriority(Integer.valueOf(priority));
            //报警次数
            guideTask.setNum(num);
            //录像存储位置
ard-work/src/main/java/com/ruoyi/alarmpoints/well/domain/ArdAlarmpointsWell.java
@@ -2,7 +2,9 @@
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import lombok.ToString;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -95,6 +96,7 @@
        {
            throw new RuntimeException("井号已存在");
        }
        ardAlarmpointsWell.setId(IdUtils.simpleUUID());
        ardAlarmpointsWell.setUserId(SecurityUtils.getUserId());
        ardAlarmpointsWell.setCreateBy(SecurityUtils.getUsername());
        ardAlarmpointsWell.setCreateTime(DateUtils.getNowDate());
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -55,7 +55,10 @@
    @Override
    public ArdAppTask selectArdAppTaskById(String id) {
        ArdAppTask ardAppTask = ardAppTaskMapper.selectArdAppTaskById(id);
        if(StringUtils.isNull(ardAppTask))
        {
            return null;
        }
        List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList();
        if(ardAppTaskDetailList.size()>0)
        {
ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
ÎļþÒÑɾ³ý
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -179,7 +179,7 @@
        int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
        if (i < 0) {
            int errorCode = hCNetSDK.NET_DVR_GetLastError();
            log.info("登录异常:" + errorCode);
            log.error("登录异常:" + errorCode);
        }
    }
@@ -328,7 +328,7 @@
        boolean bool = hCNetSDK.NET_DVR_PTZControlWithSpeed_Other(userId, channelNum, dwPTZCommand, dwStop, speed);
        if (!bool) {
            int errorCode = hCNetSDK.NET_DVR_GetLastError();
            log.info("控制失败,请稍后重试" + errorCode);
            log.error("控制失败,请稍后重试" + errorCode);
        }
        return bool;
    }
@@ -356,7 +356,7 @@
        boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置聚焦值失败,请稍后重试" + code);
            log.error("设置聚焦值失败,请稍后重试" + code);
        }
        return bool;
    }
@@ -389,7 +389,7 @@
            return map;
        } else {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("获取聚焦值失败,请稍后重试" + code);
            log.debug("获取聚焦值失败,请稍后重试" + code);
            return new HashMap<>();
        }
    }
@@ -412,7 +412,7 @@
        boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("预置点设置失败,请稍后重试" + code);
            log.error("预置点设置失败,请稍后重试" + code);
        }
        return bool;
    }
@@ -435,7 +435,7 @@
        boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("预置点设置失败,请稍后重试" + code);
            log.error("预置点设置失败,请稍后重试" + code);
        }
        return bool;
    }
@@ -537,7 +537,7 @@
                }
            } else {
                int code = hCNetSDK.NET_DVR_GetLastError();
                System.out.println("控制失败,请稍后重试" + code);
                log.error("控制失败,请稍后重试" + code);
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
@@ -589,7 +589,7 @@
            return ptzMap;
        } else {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("控制失败,请稍后重试" + code);
            log.error("控制失败,请稍后重试" + code);
            return new HashMap<>();
        }
@@ -627,7 +627,7 @@
            boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
            if (!bool) {
                int code = hCNetSDK.NET_DVR_GetLastError();
                log.info("设置ptz失败,请稍后重试" + code);
                log.error("设置ptz失败,请稍后重试" + code);
            }
            return bool;
        } catch (Exception ex) {
@@ -663,7 +663,7 @@
            boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
            if (!bool) {
                int code = hCNetSDK.NET_DVR_GetLastError();
                log.info("设置ptz失败,请稍后重试" + code);
                log.error("设置ptz失败,请稍后重试" + code);
            }
            return bool;
        } catch (Exception ex) {
@@ -739,7 +739,7 @@
        boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZLOCKCFG, channelNum, point, netDvrPtzLockcfg.size(), ibrBytesReturned);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("获取ptz锁定信息失败,请稍后重试" + code);
            log.error("获取ptz锁定信息失败,请稍后重试" + code);
            return -1;
        } else {
            netDvrPtzLockcfg.read();
@@ -803,7 +803,7 @@
        boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZSCOPE, channelNum, point, m_ptzPosCurrent.size(), ibrBytesReturned);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置ptz失败,请稍后重试" + code);
            log.error("设置ptz失败,请稍后重试" + code);
            return new HashMap<>();
        } else {
            m_ptzPosCurrent.read();
@@ -853,7 +853,7 @@
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struCameraParam.read();
        log.info("是否开启透雾:" + struCameraParam.struDefogCfg.byMode);
        log.debug("是否开启透雾:" + struCameraParam.struDefogCfg.byMode);
        NET_DVR_DEFOGCFG defogcfg = new NET_DVR_DEFOGCFG();
        if (enable) {
@@ -867,9 +867,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置透雾失败,请稍后重试" + code);
            log.error("设置透雾失败,请稍后重试" + code);
        }
        log.info("设置透雾成功");
        log.debug("设置透雾成功");
        return bool;
    }
@@ -899,7 +899,7 @@
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struDayNigh.read();
        log.info("是否开启夜视:" + struDayNigh.struDayNight.byDayNightFilterType);
        log.debug("是否开启夜视:" + struDayNigh.struDayNight.byDayNightFilterType);
        NET_DVR_DAYNIGHT daynight = new NET_DVR_DAYNIGHT();
        if (enable) {
@@ -915,9 +915,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struDayNigh.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置夜视失败,请稍后重试" + code);
            log.error("设置夜视失败,请稍后重试" + code);
        }
        log.info("设置夜视成功");
        log.debug("设置夜视成功");
        return bool;
    }
@@ -944,10 +944,10 @@
        IntByReference ibrBytesReturned = new IntByReference(0);
        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned);
        if (!b_GetCameraParam) {
            System.out.println("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struFocusMode.read();
        log.info("当前聚焦模式:" + struFocusMode.byFocusMode);
        log.debug("当前聚焦模式:" + struFocusMode.byFocusMode);
        if (enable) {
            struFocusMode.byFocusMode = 1;//手动聚焦
@@ -961,9 +961,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_FOCUSMODECFG, channelNum, point, struFocusMode.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置聚焦模式失败,请稍后重试" + code);
            log.error("设置聚焦模式失败,请稍后重试" + code);
        }
        log.info("设置聚焦模式成功");
        log.debug("设置聚焦模式成功");
        return bool;
    }
@@ -979,10 +979,10 @@
        IntByReference ibrBytesReturned = new IntByReference(0);
        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned);
        if (!b_GetCameraParam) {
            System.out.println("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struFocusMode.read();
        log.info("当前聚焦模式:" + struFocusMode.byFocusMode);
        log.debug("当前聚焦模式:" + struFocusMode.byFocusMode);
        return String.valueOf(struFocusMode.byFocusMode);
    }
@@ -1013,9 +1013,9 @@
        boolean bool = hCNetSDK.NET_DVR_PTZControl_Other(userId, channelNum, HEATER_PWRON, dwStop);
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置云台加热失败,请稍后重试" + code);
            log.error("设置云台加热失败,请稍后重试" + code);
        }
        log.info("设置云台加热成功");
        log.debug("设置云台加热成功");
        return bool;
    }
@@ -1045,7 +1045,7 @@
            log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
        }
        struDeicing.read();
        log.info("是否开启除冰:" + struDeicing.byEnableDeicing);
        log.debug("是否开启除冰:" + struDeicing.byEnableDeicing);
        if (enable) {
            struDeicing.byEnableDeicing = 1;//开启
@@ -1056,9 +1056,9 @@
        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_DEVSERVER_CFG, channelNum, point, struDeicing.size());
        if (!bool) {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("设置镜头除冰失败,请稍后重试" + code);
            log.error("设置镜头除冰失败,请稍后重试" + code);
        }
        log.info("设置镜头除冰成功");
        log.debug("设置镜头除冰成功");
        return bool;
    }
@@ -1090,13 +1090,13 @@
        ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024);
        // æŠ“图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中
        boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a);
        log.info("-----------这里开始图片存入内存----------" + is);
        log.debug("-----------这里开始图片存入内存----------" + is);
        Base64.Encoder decoder = Base64.getEncoder();
      //  BASE64Encoder encoder = new BASE64Encoder();
        String png_base64 = decoder.encodeToString(jpegBuffer.array());//转换成base64串
        png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n
        log.info("-----------处理完成截图数据----------");
        log.debug("-----------处理完成截图数据----------");
        return png_base64;
    }
@@ -1134,11 +1134,11 @@
        //设置图片大小
        ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024);
        // æŠ“图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中
        log.info("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------");
        log.debug("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------");
        boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a);
        log.info("-----------这里开始图片存入内存----------" + is);
        log.debug("-----------这里开始图片存入内存----------" + is);
        if (is) {
            log.info("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError());
            log.debug("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError());
            byte[] array = jpegBuffer.array();
            //存储到minio
            String BucketName = "pic";
@@ -1152,7 +1152,7 @@
                boolean b = MinioUtils.uploadObject(BucketName, ObjectName, input, input.available(), ContentType);
                if (b) {
                    url = MinioUtils.getBucketObjectUrl(BucketName, ObjectName);
                    log.info("上传文件成功!" + url);
                    log.debug("上传文件成功!" + url);
                }
            } catch (IOException ex) {
                log.error("上传文件异常:" + ex.getMessage());
@@ -1160,7 +1160,7 @@
            return url;
        } else {
            int code = hCNetSDK.NET_DVR_GetLastError();
            log.info("抓图失败,请稍后重试" + code);
            log.error("抓图失败,请稍后重试" + code);
            return "";
        }
    }
@@ -1212,21 +1212,21 @@
                        log.error("取流失败" + hCNetSDK.NET_DVR_GetLastError());
                        return "";
                    }
                    log.info("取流成功");
                    log.debug("取流成功");
                    GlobalVariable.previewMap.put(cameraId, lRealHandle);
                }
                if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
                    log.error("保存视频文件到临时文件夹失败 é”™è¯¯ç ä¸º:  " + hCNetSDK.NET_DVR_GetLastError());
                    return "";
                }
                log.info("录像开始");
                log.debug("录像开始");
            } else {
                if (GlobalVariable.previewMap.containsKey(cameraId)) {
                    Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
                    hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
                    GlobalVariable.previewMap.remove(cameraId);
                }
                log.info("录像停止");
                log.debug("录像停止");
            }
            return url;
        } catch (Exception ex) {
ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
@@ -1,6 +1,7 @@
package com.ruoyi.device.uav.service;
import com.dtflys.forest.exceptions.ForestNetworkException;
import com.dtflys.forest.exceptions.ForestRuntimeException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -89,8 +90,8 @@
            if (this.uavUser != null) {
                this.token = (String) this.uavUser.get("access_token");
            }
        } catch (ForestNetworkException e) {
            e.printStackTrace();
        } catch (ForestRuntimeException e) {
            log.error("无人机连接超时" + e.getMessage());
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (JsonProcessingException e) {
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -1,8 +1,6 @@
package com.ruoyi.inspect.service.impl;
import java.text.SimpleDateFormat;
import java.util.*;
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
import com.ruoyi.common.utils.DateUtils;
@@ -10,7 +8,6 @@
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
@@ -24,7 +21,6 @@
import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
import com.ruoyi.inspect.domain.ArdVideoInspectTask;
import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@@ -417,7 +413,7 @@
        try {
            String currentStepId = ardVideoInspectTask.getCurrentStepId();
            if (StringUtils.isNull(currentStepId)) {
                log.info("当前开始巡检步骤id为空");
                log.debug("当前开始巡检步骤id为空");
                return;
            }
            log.debug("巡检步骤:" + currentStepId + "尝试开始");
@@ -442,6 +438,11 @@
                    targetPositon[2] = ardAlarmpointsWell.getAltitude();
                    /*获取相机坐标*/
                    ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
                    if(StringUtils.isNull(cameras))
                    {
                        log.debug("找不到相机:"+cameraId);
                        return;
                    }
                    double[] cameraPositon = new double[3];
                    cameraPositon[0] = cameras.getLongitude();
                    cameraPositon[1] = cameras.getLatitude();
@@ -474,7 +475,7 @@
        try {
            String currentStepId = ardVideoInspectTask.getCurrentStepId();
            if (StringUtils.isNull(currentStepId)) {
                log.info("当前开始巡检步骤id为空");
                log.debug("当前开始巡检步骤id为空");
                return;
            }
            log.debug("巡检正常,尝试引导:" + currentStepId);
@@ -495,6 +496,11 @@
                    targetPositon[2] = ardAlarmpointsWell.getAltitude();
                    /*获取相机坐标*/
                    ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
                    if(StringUtils.isNull(cameras))
                    {
                        log.debug("找不到相机:"+cameraId);
                        return;
                    }
                    double[] cameraPositon = new double[3];
                    cameraPositon[0] = cameras.getLongitude();
                    cameraPositon[1] = cameras.getLatitude();
ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
@@ -8,14 +8,21 @@
 * @Version: 1.0
 **/
import com.ruoyi.app.position.domain.ArdAppPosition;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import lombok.extern.slf4j.Slf4j;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.sql.*;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@Slf4j
public class ReadAccessDatabase {
    public static void main(String[] args) {
//        // å¤šä¸ªæ•°æ®åº“文件路径
//        String[] dbPaths = {
//                "D:\\mdb\\道路中心线.mdb",
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -141,7 +141,7 @@
    /**
     * ç›¸æœºæ“æŽ§ä¼˜å…ˆçº§
     */
    private Integer cameraPriority;
    private String cameraPriority;
    /**
     * ç”¨æˆ·èžäº‘token
@@ -199,11 +199,11 @@
        this.rongCloudToken = rongCloudToken;
    }
    public Integer getCameraPriority() {
    public String getCameraPriority() {
        return cameraPriority;
    }
    public void setCameraPriority(Integer cameraPriority) {
    public void setCameraPriority(String cameraPriority) {
        this.cameraPriority = cameraPriority;
    }
ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java
@@ -61,8 +61,9 @@
     * æµ‹è¯•
     */
    TEST,
    /**
     * æŽ§åˆ¶
     */
    CONTROL,
    CONTROL
}
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
@@ -1,31 +1,26 @@
package com.ruoyi.framework.aspectj;
import com.ruoyi.common.annotation.SdkOperate;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.constant.CamPriority;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import javax.annotation.Nullable;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.Date;
import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
/**
 * SDK控制处理
@@ -67,6 +62,7 @@
     * @param joinPoint åˆ‡ç‚¹
     */
    public Boolean controlScopeFilter(ProceedingJoinPoint joinPoint) {
        //获取请求控制相机的命令信息
        CameraCmd cmd = (CameraCmd) joinPoint.getArgs()[0];
        String operator = cmd.getOperator();//申请者
@@ -97,23 +93,25 @@
                } else {
                    /*当前相机有人控制并且配置了过期时间,先判断优先级,优先级高允许控制*/
                    Integer currentLevel = 0;//当前相机的操作者的优先级
                    if (CamPriority.priorityMap.containsKey(currentOperator)) {
                    String camerasPriority = DictUtils.getDictValue("cameras_priority", currentOperator);
                    if(StringUtils.isNotEmpty(camerasPriority)) {
                        /*当前控制者为系统报警用户*/
                        currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator);
                        currentLevel = Integer.valueOf(camerasPriority);
                    } else {
                        /*当前控制者为普通用户*/
                        SysUser sysUser = sysUserService.selectUserById(currentOperator);
                        currentLevel = sysUser.getCameraPriority();
                        currentLevel = Integer.valueOf(sysUser.getCameraPriority());
                    }
                    Integer operatorLevel = 0;//获取申请者的优先级
                    if (CamPriority.priorityMap.containsKey(operator)) {
                    String operatorPriority = DictUtils.getDictValue("cameras_priority", operator);
                    if (StringUtils.isNotEmpty(operatorPriority)) {
                        /*包含说明当前申请控制者为系统报警用户*/
                        operatorLevel = (Integer) CamPriority.priorityMap.get(operator);
                        operatorLevel = Integer.valueOf(operatorPriority);
                    } else {
                        /*否则申请控制者为当前登录用户*/
                        LoginUser loginUser = SecurityUtils.getLoginUser();
                        SysUser user = loginUser.getUser();//获取登录用户的信息
                        operatorLevel = user.getCameraPriority();
                        operatorLevel = Integer.valueOf(user.getCameraPriority());
                    }
                    /*申请者未控则判断优先级*/
                    if (operatorLevel > currentLevel) {
ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm
@@ -8,6 +8,7 @@
        #end
    #end
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
    #if($table.sub)
@@ -67,6 +68,9 @@
    @Override
    public int insert${ClassName}(${ClassName} ${className}) {
        #foreach ($column in $columns)
            #if($column.javaField == 'id')
                ${className}.setId(IdUtils.simpleUUID());
            #end
            #if($column.javaField == 'createTime')
                ${className}.setCreateTime(DateUtils.getNowDate());
            #end
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java
@@ -26,17 +26,17 @@
        log.debug("执行历史数据删除");
        //遍历存储
        try {
            List<String> buckets=new ArrayList<>();
            List<String> buckets = new ArrayList<>();
            buckets.add("pic");
            buckets.add("record");
            for (String name:buckets) {
            for (String name : buckets) {
                Iterable<Result<Item>> listObjectsPic = MinioUtils.getObjectsByBucket(name);
                for (Result<Item> result : listObjectsPic) {
                    Item item = result.get();
                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("Asia/Shanghai"));
                    String objectTime = item.lastModified().format(formatter);
                    Date now= new Date();
                    Date now = new Date();
                    // æŠŠæ—¥æœŸå¾€å‰å¢žåР䏀天,整数往后推,负数往前移动
                    Calendar calendar = new GregorianCalendar();
                    calendar.setTime(now);
@@ -49,9 +49,8 @@
                        log.debug("expireTime : " + expireTime);
                        log.debug("objectTime æ—¶é—´åœ¨ expireTime ä¹‹å‰,执行删除");
                        boolean b = MinioUtils.removeObject(name, item.objectName());
                        if(b)
                        {
                            log.debug("成功删除过期数据:"+ item.objectName()+"---"+item.lastModified());
                        if (b) {
                            log.debug("成功删除过期数据:" + item.objectName() + "---" + item.lastModified());
                        }
                    }
                }
@@ -60,5 +59,4 @@
            log.error("minio历史数据删除异常:" + ex.getMessage());
        }
    }
}
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
@@ -1,26 +1,10 @@
package com.ruoyi.quartz.task;
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.domain.ArdVideoInspectTask;
import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
import com.ruoyi.inspect.service.IArdVideoInspectRecordService;
import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @Description: å·¡æ£€ä»»åŠ¡
@@ -30,13 +14,16 @@
 * @Version: 1.0
 **/
@Component("PatrolInspectionTask")
@Slf4j(topic = "PatrolInspectionTask")
public class PatrolInspectionTask {
    @Resource
    IArdVideoInspectTaskService ardVideoInspectTaskService;
    //巡检任务
    /**
     * å®šæ—¶å·¡æ£€ä»»åŠ¡
     * åˆ˜è‹ä¹‰
     * 2023/8/9 9:18:42
     */
    public void scanRun() {
      ardVideoInspectTaskService.autoTaskRun();
    }
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
@@ -28,25 +28,28 @@
    ISysUserService sysUserService;
    @Resource
    RongCloudService rongCloudService;
    /**
     * å®šæ—¶èŽ·å–app用户在线状态
     * åˆ˜è‹ä¹‰
     * 2023/8/9 9:17:48
     */
    public void getAppUserOnlineStateTask() {
    public void getAppUserOnlineStateTask()
    {
        try{
        List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
        if(SysUserList.size()>0) {
            for (SysUser sysUser : SysUserList) {
                Boolean online = rongCloudService.checkOnline(sysUser.getUserId());
                if (online) {
                    sysUser.setAppOnlineState("1");
                } else {
                    sysUser.setAppOnlineState("0");
        try {
            List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
            if (SysUserList.size() > 0) {
                for (SysUser sysUser : SysUserList) {
                    Boolean online = rongCloudService.checkOnline(sysUser.getUserId());
                    if (online) {
                        sysUser.setAppOnlineState("1");
                    } else {
                        sysUser.setAppOnlineState("0");
                    }
                    sysUserService.updateUserProfile(sysUser);
                }
                sysUserService.updateUserProfile(sysUser);
            }
        }}
        catch (Exception ex)
        {
            log.error("融云在线接口异常:"+ex.getMessage());
        } catch (Exception ex) {
            log.error("融云在线接口异常:" + ex.getMessage());
        }
    }
}