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<UserSyncDTO> 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());
|
}
|
}
|
}
|