wlzboy
2025-10-26 2c86a8bd60deed0dd0e044bad6fb83f75d19a332
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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<UserSyncDTO> 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();
    }
}