From 2b56446765dc81365b1aa159c1d3b7fbcfb11a42 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 21 Oct 2024 10:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E5=99=A8=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ProductInventoryController.cs | 8 ++-- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 7 +++ .../QuartzJob/InventoryQuartzJob.cs | 46 +++++++++++++++++++ .../DependencyInjection/AppBuilder.cs | 13 ++++++ 4 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 src/WMS.Web.Domain/QuartzJob/InventoryQuartzJob.cs diff --git a/src/WMS.Web.Api/Controllers/ProductInventoryController.cs b/src/WMS.Web.Api/Controllers/ProductInventoryController.cs index 89fc3756..a8927f55 100644 --- a/src/WMS.Web.Api/Controllers/ProductInventoryController.cs +++ b/src/WMS.Web.Api/Controllers/ProductInventoryController.cs @@ -34,16 +34,16 @@ namespace WMS.Web.Api.Controllers private readonly IProductInventoryRepositories _repositories; private readonly QiniuOptions _option; private readonly IExportExcelService _exportExcelService; - private readonly IProductInventoryService _roductInventoryService; + private readonly IProductInventoryService _productInventoryService; public ProductInventoryController(ILoginService loginService, IBasicsRepositories basicsRepositories, IProductInventoryRepositories repositories, IOptions option, - IExportExcelService exportExcelServic, IProductInventoryService roductInventoryService) { + IExportExcelService exportExcelServic, IProductInventoryService productInventoryService) { _loginService = loginService; _basicsRepositories = basicsRepositories; _repositories = repositories; _option = option?.Value; _exportExcelService = exportExcelServic; - _roductInventoryService = roductInventoryService; + _productInventoryService = productInventoryService; } /// @@ -116,7 +116,7 @@ namespace WMS.Web.Api.Controllers if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); - return await _roductInventoryService.Refresh(); + return await _productInventoryService.Refresh(); } } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index cabb95dc..7db0df75 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -5043,6 +5043,13 @@ + + + 执行方法 + + + + 物料同步执行定时任务 diff --git a/src/WMS.Web.Domain/QuartzJob/InventoryQuartzJob.cs b/src/WMS.Web.Domain/QuartzJob/InventoryQuartzJob.cs new file mode 100644 index 00000000..afc71b7d --- /dev/null +++ b/src/WMS.Web.Domain/QuartzJob/InventoryQuartzJob.cs @@ -0,0 +1,46 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Quartz; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Domain.IService; + +namespace WMS.Web.Domain.QuartzJob +{ + //成品即时库存 + public class InventoryQuartzJob : IJob + { + private readonly ILogger _logger; + private readonly IServiceScopeFactory _serviceScopeFactory; + private readonly IProductInventoryService _productInventoryService; + + public InventoryQuartzJob(ILogger logger, + IServiceScopeFactory serviceScopeFactory, IProductInventoryService productInventoryService) + { + this._logger = logger; + _serviceScopeFactory = serviceScopeFactory; + _productInventoryService = productInventoryService; + } + + /// + /// 执行方法 + /// + /// + /// + public async Task Execute(IJobExecutionContext context) + { + try + { + if (DateTime.Now.Hour < 8 || DateTime.Now.Hour > 20) return; + var result = await _productInventoryService.Refresh(); + } + catch (Exception ex) + { + _logger.LogInformation($"同步成品即时库存:定时任务执行失败->{ex.Message}"); + } + + } + } +} diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs index e74e61a9..686ff939 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs @@ -203,6 +203,7 @@ namespace WMS.Web.Repositories.DependencyInjection Services.AddTransient();//添加注入定时服务 Services.AddTransient();//添加注入定时服务 //Services.AddTransient();//添加注入定时服务 + Services.AddTransient();//添加注入定时服务 Services.AddQuartz(q => { q.UsePersistentStore(x => @@ -301,6 +302,18 @@ namespace WMS.Web.Repositories.DependencyInjection //.WithCronSchedule(CronScheduleBuilder.DailyAtHourAndMinute(options.JobStartHour[5], options.JobStartMinute[5])) .WithDescription("ErpDeleteQuartzJobTriggerDecs")); #endregion + + #region 成品即时库存 + var jobKey_Inventory = new JobKey("InventoryQuartzJob", options.QuartzJobValue); + q.AddJob(jobKey, j => j.WithDescription("InventoryQuartzJob")); + q.AddTrigger(t => t + .WithIdentity("InventoryQuartzJobTrigger") + .ForJob(jobKey) + .StartNow() + .WithCronSchedule(options.JobStartExpre) + //.WithCronSchedule(CronScheduleBuilder.DailyAtHourAndMinute(options.JobStartHour[5], options.JobStartMinute[5])) + .WithDescription("InventoryQuartzJobTriggerDecs")); + #endregion }); //.net core核心托管-添加Quartz服务器 Services.AddQuartzServer(options =>