package com.ruoyi.quartz.task; import com.ruoyi.system.domain.UserSyncDTO; import com.ruoyi.system.service.IUserSyncDataService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.system.service.IUserSyncService; import java.util.List; /** * 用户同步定时任务 * * @author ruoyi * @date 2025-10-18 */ @Component("userSyncTask") public class UserSyncTask { private static final Logger log = LoggerFactory.getLogger(UserSyncTask.class); @Autowired private IUserSyncDataService userSyncDataService; @Autowired private IUserSyncService userSyncService; private List getUserSyncData(){ return userSyncDataService.getOaUsers(); } /** * 同步OA用户数据 * * 使用示例: * - 任务名称:OA用户同步 * - 调用目标:userSyncTask.syncUsers * - cron表达式:0 0 3 * * ?(每天凌晨3点执行) * * 注意:必须先执行部门同步任务! */ public void syncUsers() { try { log.info("==========开始执行用户同步定时任务=========="); AjaxResult result = userSyncService.syncOaUsers(this.getUserSyncData()); if (result.get("code").equals(200)) { log.info("用户同步成功: {}", result.get("msg")); } else { log.error("用户同步失败: {}", result.get("msg")); } log.info("==========用户同步定时任务执行完成=========="); } catch (Exception e) { log.error("用户同步定时任务执行异常", e); } } /** * 同步OA用户数据(带参数) * * @param params 参数(预留,暂未使用) */ public void syncUsers(String params) { log.info("用户同步任务参数: {}", params); syncUsers(); } }