wlzboy
9 天以前 09faa36132c8cbada5327649875534ef01c1a3b1
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/OaSyncTask.java
@@ -1,18 +1,17 @@
package com.ruoyi.quartz.task;
import com.ruoyi.system.domain.DepartmentSyncDTO;
import com.ruoyi.system.domain.OrderClassDTO;
import com.ruoyi.system.domain.UserSyncDTO;
import com.ruoyi.system.service.IDepartmentSyncDataService;
import com.ruoyi.system.service.IUserSyncDataService;
import com.ruoyi.system.service.*;
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.IDepartmentSyncService;
import com.ruoyi.system.service.IUserSyncService;
import java.util.List;
import java.util.Map;
/**
 * OA数据同步定时任务(组合任务)
@@ -46,6 +45,19 @@
    private List<UserSyncDTO> getUserData(){
        return userSyncDataService.getOaUsers();
    }
    @Autowired
    private IOrderClassDataService orderClassDataService;
    private List<OrderClassDTO> getServiceOrdCode() {
        return orderClassDataService.getServiceOrderClass();
    }
    private List<OrderClassDTO> getDispatchOrdCode() {
        return orderClassDataService.getDispatchOrderClass();
    }
    private List<Map<String,Object>> getAddressList() {
        return departmentSyncDataService.getAddressList();
    }
    /**
     * 同步OA数据(部门+用户)
     * 按顺序执行:1. 部门同步  2. 用户同步
@@ -62,29 +74,29 @@
            log.info("##########开始执行OA数据同步定时任务##########");
            
            // 第一步:同步部门
            log.info("【步骤1/2】开始同步部门数据...");
            AjaxResult deptResult = departmentSyncService.syncBranchDepartments(this.getDept());
//            log.info("【步骤1/2】开始同步部门数据...");
            AjaxResult deptResult = departmentSyncService.syncBranchDepartments(this.getDept(),this.getServiceOrdCode(),this.getDispatchOrdCode(),this.getAddressList());
            
            if (deptResult.get("code").equals(200))
            {
                log.info("【步骤1/2】部门同步成功: {}", deptResult.get("msg"));
//                log.info("【步骤1/2】部门同步成功: {}", deptResult.get("msg"));
                
                // 第二步:同步用户(只有部门同步成功才执行)
                log.info("【步骤2/2】开始同步用户数据...");
//                log.info("【步骤2/2】开始同步用户数据...");
                AjaxResult userResult = userSyncService.syncOaUsers(this.getUserData());
                
                if (userResult.get("code").equals(200))
                {
                    log.info("【步骤2/2】用户同步成功: {}", userResult.get("msg"));
                    log.info("##########OA数据同步定时任务执行完成##########");
                    log.info("总结:部门同步成功,用户同步成功");
                }
                else
                {
                    log.error("【步骤2/2】用户同步失败: {}", userResult.get("msg"));
                    log.warn("##########OA数据同步定时任务部分完成##########");
                    log.warn("总结:部门同步成功,用户同步失败");
                }
//                if (userResult.get("code").equals(200))
//                {
//                    log.info("【步骤2/2】用户同步成功: {}", userResult.get("msg"));
//                    log.info("##########OA数据同步定时任务执行完成##########");
//                    log.info("总结:部门同步成功,用户同步成功");
//                }
//                else
//                {
//                    log.error("【步骤2/2】用户同步失败: {}", userResult.get("msg"));
//                    log.warn("##########OA数据同步定时任务部分完成##########");
//                    log.warn("总结:部门同步成功,用户同步失败");
//                }
            }
            else
            {
@@ -106,7 +118,7 @@
     */
    public void syncOaData(String params)
    {
        log.info("OA数据同步任务参数: {}", params);
//        log.info("OA数据同步任务参数: {}", params);
        syncOaData();
    }
@@ -117,8 +129,8 @@
    {
        try
        {
            log.info("==========开始执行部门同步任务==========");
            AjaxResult result = departmentSyncService.syncBranchDepartments(this.getDept());
//            log.info("==========开始执行部门同步任务==========");
            AjaxResult result = departmentSyncService.syncBranchDepartments(this.getDept(),this.getServiceOrdCode(),this.getDispatchOrdCode(),this.getAddressList());
            
            if (result.get("code").equals(200))
            {