using Quartz; using SqlSugar; using WIDESEA_DTO.Basic; namespace WIDESEA_WMSServer.Jobs { [DisallowConcurrentExecution] public class ErpJob : IJob { private readonly ILogger _logger; private readonly ISqlSugarClient _db; private readonly WIDESEA_IBasicService.IErpApiService _erpApiService; // 通过构造函数直接注入依赖 public ErpJob(ILogger logger, ISqlSugarClient db, WIDESEA_IBasicService.IErpApiService erpApiService) { _logger = logger; _db = db; _erpApiService = erpApiService; } public async Task Execute(IJobExecutionContext context) { _logger.LogInformation($"定时任务开始执行,时间:{DateTime.Now:yyyy-MM-dd HH:mm:ss}"); try { await _erpApiService.GetSuppliersAsync(); await _erpApiService.GetMaterialUnitAsync(); var materialRequest = new MaterialRequest { modifyDateStart = DateTime.Now.AddDays(-10).Date.ToString("yyyy-MM-dd") + " 00:00:01", modifyDateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ":01", pageNum = 1, pageSize = 5000 }; await _erpApiService.GetMaterialInfoAsync(materialRequest); _logger.LogInformation($"定时任务执行成功"); } catch (Exception ex) { _logger.LogError(ex, "定时任务执行失败"); } } } }