package com.ruoyi.quartz.task; 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.domain.UserSyncDTO; import com.ruoyi.system.service.IUserSyncDataService; import com.ruoyi.system.service.IUserSyncService; import java.util.List; /** * 企业微信用户ID同步任务 * * 定期同步OA系统中的企业微信用户ID到本地系统 * * @author ruoyi * @date 2025-12-11 */ @Component("qyWechatUserSyncTask") public class QyWechatUserSyncTask { private static final Logger log = LoggerFactory.getLogger(QyWechatUserSyncTask.class); @Autowired private IUserSyncDataService userSyncDataService; @Autowired private IUserSyncService userSyncService; /** * 同步企业微信用户ID * * 任务执行方法,由Quartz调度器调用 * * @return 同步结果 */ public AjaxResult syncQyWechatUserIds() { try { log.info("开始同步企业微信用户ID..."); // 1. 从SQL Server查询OA用户数据(包含企业微信用户ID) List oaUsers = userSyncDataService.getOaUsers(); if (oaUsers == null || oaUsers.isEmpty()) { log.warn("未查询到OA用户数据,跳过同步"); return AjaxResult.warn("未查询到OA用户数据"); } log.info("从OA系统查询到 {} 条用户数据", oaUsers.size()); // 2. 同步到MySQL数据库 AjaxResult result = userSyncService.syncOaUsers(oaUsers); log.info("企业微信用户ID同步完成: {}", result.get("msg")); return result; } catch (Exception e) { log.error("同步企业微信用户ID失败", e); return AjaxResult.error("同步失败: " + e.getMessage()); } } }