‘liusuyi’
2023-08-09 40d53fc85f07155b93d92f9cec4d64c94f74abb3
修改相机控制优先级配置到字典
已修改6个文件
已删除1个文件
147 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/constant/CamPriority.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java 20 ●●●●● 补丁 | 查看 | 原始文档 | 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/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/constant/CamPriority.java
ÎļþÒÑɾ³ý
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-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,18 +93,20 @@
                } 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();
                    }
                    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();
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());
        }
    }
}