package com.fs.app.task;

import com.fs.app.taskService.SopWxLogsTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * 个微SOP定时任务管理类
 * 负责处理各种定时任务，包括SOP规则检查、消息发送、数据清理等
 *
 * @author 系统
 * @version 1.0
 */
@Component
@Slf4j
public class wxTask {
    @Autowired
    private SopWxLogsTaskService sopWxLogsTaskService;

    /**
     * 定时任务：根据营期生成sopLogs待发记录
     * 执行时间：每小时的第5分钟执行
     * 功能：根据营期时间生成需要发送的SOP日志记录
     *
     * @throws Exception 执行异常
     */
    @Scheduled(cron = "0 5 * * * ?") // 每小时的第5分钟触发
    @Async
    public void selectSopUserLogsListByTime() throws Exception {
        // 获取当前时间，精确到小时
        LocalDateTime currentTime = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0);
        // 打印日志，确认任务执行时间
        log.info("任务实际执行时间: {}", currentTime);

        // 调用服务方法处理SOP用户日志
        sopWxLogsTaskService.selectSopUserLogsListByTime(currentTime, null);
    }

}
