‘liusuyi’
2023-10-08 aff3af669362fc9b0743e3d3319ac9e20ba822eb
归纳分类定时任务
任务列表和任务日志按时间逆序排列
已添加1个文件
已重命名2个文件
已修改2个文件
已删除3个文件
317 ■■■■■ 文件已修改
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanTask.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanTask.java
ÎļþÃû´Ó ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java ÐÞ¸Ä
@@ -1,15 +1,18 @@
package com.ruoyi.quartz.task;
import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
import com.ruoyi.alarm.global.domain.GuideTask;
import com.ruoyi.utils.minio.MinioUtil;
import io.minio.Result;
import io.minio.messages.Item;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.PriorityBlockingQueue;
/**
 * @ClassName: MinioDeleteTask
@@ -19,8 +22,8 @@
 * @Version: 1.0
 **/
@Component("MinioTask")
@Slf4j(topic = "minio")
public class MinioTask {
@Slf4j
public class CleanTask {
    public void delHistoryTask(Integer saveDays) {
        log.debug("执行历史数据删除");
@@ -59,4 +62,20 @@
            log.error("minio历史数据删除异常:" + ex.getMessage());
        }
    }
    /**
     * å®šæ—¶æ¸…空引导队列
     * åˆ˜è‹ä¹‰
     * 2023/7/1 10:41
     */
    public void clearGuideQueue() {
        try {
            log.info("定时清理引导队列");
            for (PriorityBlockingQueue<GuideTask> guideQueue : GuidePriorityQueue.cameraQueueMap.values()) {
                guideQueue.clear();
            }
        } catch (Exception ex) {
            log.error("定时清空引导队列:" + ex.getMessage());
        }
    }
}
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PushTask.java
ÎļþÃû´Ó ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java ÐÞ¸Ä
@@ -1,32 +1,58 @@
package com.ruoyi.quartz.task;
import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
import com.ruoyi.alarm.global.domain.GuideTask;
import com.ruoyi.alarm.global.service.IGlobalAlarmService;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.hiksdk.common.GlobalVariable;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.concurrent.PriorityBlockingQueue;
import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
/**
 * @ClassName: AlarmTask
 * @Description:
 * @ClassName: SdkTask
 * @Author: åˆ˜è‹ä¹‰
 * @Date: 2023å¹´06月24日14:23
 * @Author: Administrator
 * @Date: 2023å¹´03月06日 11:13
 * @Version: 1.0
 **/
@Component("SdkTask")
@Slf4j(topic = "hikSdk")
public class SdkTask {
@Component("PushTask")
@Slf4j
public class PushTask {
    /**
     * @描述 å®šæ—¶æŽ¨é€æ‰€æœ‰æŠ¥è­¦çš„点位数量
     * @参数 []
     * @返回值 void
     * @创建人 åˆ˜è‹ä¹‰
     * @创建时间 2023/6/15 15:43
     * @修改人和其它信息
     */
    public void globalAlarmCountPush() {
        try {
            IGlobalAlarmService globalAlarmService = SpringUtils.getBean(IGlobalAlarmService.class);
            Map<String, Object> stringIntegerMap = globalAlarmService.selectAlarmLogsCount();
            if (ONLINE_USER_SESSIONS.size() > 0) {
                WebSocketUtils.sendMessageAll(stringIntegerMap);
            }
        } catch (Exception ex) {
            log.error("推送报警的点位数量异常:" + ex.getMessage());
        }
    }
    /**
     * @描述 å®šæ—¶æŽ¨é€ptz
@@ -105,5 +131,4 @@
            log.error("推送ptz异常:" + ex.getMessage());
        }
    }
}
}
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RongCloudTask.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.ruoyi.quartz.task;
import com.ruoyi.common.core.domain.entity.SysUser;
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.service.IHikClientService;
import com.ruoyi.rongcloud.service.RongCloudService;
import com.ruoyi.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
 * @Description: åŒæ­¥ä»»åŠ¡
 * @ClassName: syncDeviceStateTask
 * @Author: åˆ˜è‹ä¹‰
 * @Date: 2023å¹´10月08日11:06:42
 **/
@Component("SyncTask")
@Slf4j
public class SyncTask {
    @Resource
    ISysUserService sysUserService;
    @Resource
    RongCloudService rongCloudService;
    @Resource
    IArdCamerasService iArdCamerasService;
    @Resource
    IHikClientService iHikClientService;
    /**
     * åŒæ­¥ç›¸æœºåœ¨çº¿çŠ¶æ€
     * åˆ˜è‹ä¹‰
     * 2023/10/8 14:54:41
     */
    public void cameraState() {
        List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
        for (ArdCameras camera : ardCameras) {
            CameraCmd cmd = new CameraCmd();
            cmd.setCameraId(camera.getId());
            boolean onLineNew = iHikClientService.isOnLine(cmd);//相机实时状态
            boolean onLineOld = "1".equals(camera.getState());//相机历史状态
            //当状态发生变化时,更新实时状态
            if (onLineNew != onLineOld) {
                if (onLineNew) {
                    camera.setState("1");
                } else {
                    camera.setState("0");
                }
                iArdCamerasService.updateArdCameras(camera);
            }
        }
    }
    /**
     * å®šæ—¶èŽ·å–app用户在线状态
     * åˆ˜è‹ä¹‰
     * 2023/8/9 9:17:48
     */
    public void appUserState() {
        try {
            List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
            if (SysUserList.size() > 0) {
                for (SysUser sysUser : SysUserList) {
                    String state = sysUser.getAppOnlineState();//获取当前用户的在线状态
                    Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//从融云获取在线状态
                    if (state != null) {
                        Boolean appOnlineState = state.equals("1");
                        if (appOnlineState == online) {
                            continue;
                        }
                    }
                    sysUser.setAppOnlineState(online ? "1" : "0");
                    sysUserService.updateUserProfile(sysUser);
                }
            }
        } catch (Exception ex) {
            log.error("融云在线接口异常:" + ex.getMessage());
        }
    }
}
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
@@ -42,6 +42,7 @@
                and create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD')
            </if>
        </where>
        order by create_time desc
    </select>
    
    <select id="selectJobLogAll" resultMap="SysJobLogResult">
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
@@ -41,6 +41,7 @@
                AND invoke_target like ('%${invokeTarget}%')
            </if>
        </where>
        order by create_time desc
    </select>
    
    <select id="selectJobAll" resultMap="SysJobResult">