package com.ruoyi.quartz.task; import com.ruoyi.system.domain.DepartmentSyncDTO; import com.ruoyi.system.domain.OrderClassDTO; import com.ruoyi.system.service.IDepartmentSyncDataService; import com.ruoyi.system.service.IOrderClassDataService; 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 java.util.List; import java.util.Map; /** * 部门同步定时任务 * * @author ruoyi * @date 2025-10-18 */ @Component("departmentSyncTask") public class DepartmentSyncTask { private static final Logger log = LoggerFactory.getLogger(DepartmentSyncTask.class); @Autowired private IDepartmentSyncDataService departmentSyncDataService; @Autowired private IDepartmentSyncService departmentSyncService; private List getDepartment(){ return departmentSyncDataService.getBranchDepartments(); } private List getTransportDept(){ return departmentSyncDataService.getTransportDepartments(); } @Autowired private IOrderClassDataService orderClassDataService; private List getServiceOrdCode() { return orderClassDataService.getServiceOrderClass(); } private List getDispatchOrdCode() { return orderClassDataService.getDispatchOrderClass(); } private List> getDepartAddress() { return departmentSyncDataService.getAddressList(); } /** * 同步分公司和部门数据 * * 使用示例: * - 任务名称:分公司同步 * - 调用目标:departmentSyncTask.syncDepartments * - cron表达式:0 0 2 * * ?(每天凌晨2点执行) */ public void syncDepartments() { try { log.info("==========开始执行部门同步定时任务=========="); List> addressList = this.getDepartAddress(); AjaxResult result = departmentSyncService.syncBranchDepartments(this.getDepartment(), this.getServiceOrdCode(),this.getDispatchOrdCode(),addressList); departmentSyncService.syncTransportDepartments(this.getTransportDept(),addressList); departmentSyncService.syncDeptAddress(addressList); 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); } } /** * 同步分公司和部门数据(带参数) * * @param params 参数(预留,暂未使用) */ public void syncDepartments(String params) { log.info("部门同步任务参数: {}", params); syncDepartments(); } }