using Pomelo.AspNetCore.TimedJob; using WIDESEA_ISquareCabinServices; using WIDESEA_IWMsInfoServices; namespace WIDESEA_WMSServer { public class OutOrderJob : Job { private readonly IServiceScopeFactory _serviceScopeFactory; public OutOrderJob(IServiceScopeFactory serviceScopeFactory) { _serviceScopeFactory = serviceScopeFactory; } //每隔1秒执行一次 [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = false, SkipWhileExecuting = true)] public void Run() { // 物料信息获取 - 独立作用域 using (var scope1 = _serviceScopeFactory.CreateScope()) { var materielInfoService = scope1.ServiceProvider.GetRequiredService(); materielInfoService.GetMedicineGoodsInfom(); } Thread.Sleep(1000); // 入库单获取 - 独立作用域 using (var scope2 = _serviceScopeFactory.CreateScope()) { var business = scope2.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行GetInOrder:{DateTime.Now}"); business.GetInOrder(); Console.WriteLine($"完成执行GetInOrder:{DateTime.Now}"); } Console.WriteLine($"以释放GetInOrder的数据库连接:{DateTime.Now}"); Thread.Sleep(1000); // 出库单获取 - 独立作用域 using (var scope3 = _serviceScopeFactory.CreateScope()) { var business = scope3.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行 GetOutOrder:{DateTime.Now}"); business.GetOutOrder(); Console.WriteLine($"完成执行 GetOutOrder:{DateTime.Now}"); } Console.WriteLine($"以释放 GetOutOrder 的数据库连接:{DateTime.Now}"); Thread.Sleep(1000); // 完成所有订单 - 独立作用域 using (var scope4 = _serviceScopeFactory.CreateScope()) { var business = scope4.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行 CompleteAllOrders:{DateTime.Now}"); business.CompleteAllOrders(); Console.WriteLine($"完成执行 CompleteAllOrders:{DateTime.Now}"); } Console.WriteLine($"以释放 CompleteAllOrders 的数据库连接:{DateTime.Now}"); Thread.Sleep(1000); // 完成所有出库订单 - 独立作用域 using (var scope5 = _serviceScopeFactory.CreateScope()) { var business = scope5.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行 CompleteAllOutOrders:{DateTime.Now}"); business.CompleteAllOutOrders(); Console.WriteLine($"w完成执行 CompleteAllOutOrders:{DateTime.Now}"); } Console.WriteLine($"以释放 CompleteAllOutOrders 的数据库连接:{DateTime.Now}"); Console.WriteLine($"ERP任务执行结束:{DateTime.Now}"); Thread.Sleep(1000); // 产品同步 - 独立作用域 using (var scope6 = _serviceScopeFactory.CreateScope()) { var materielInfoService = scope6.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行 ProductSynchronous:{DateTime.Now}"); materielInfoService.ProductSynchronous(); Console.WriteLine($"完成执行 ProductSynchronous:{DateTime.Now}"); } Console.WriteLine($"以释放 ProductSynchronous 的数据库连接:{DateTime.Now}"); Thread.Sleep(1000); // cws入库同步 - 独立作用域 using (var scope7 = _serviceScopeFactory.CreateScope()) { var business = scope7.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行 EdiIn:{DateTime.Now}"); business.EdiIn(); Console.WriteLine($"完成执行 EdiIn:{DateTime.Now}"); } Console.WriteLine($"以释放 EdiIn 的数据库连接:{DateTime.Now}"); Thread.Sleep(1000); // wcs出库同步 - 独立作用域 using (var scope8 = _serviceScopeFactory.CreateScope()) { var business = scope8.ServiceProvider.GetRequiredService(); Console.WriteLine($"开始执行 EdiOut:{DateTime.Now}"); business.EdiOut(); Console.WriteLine($"开始执行 EdiOut:{DateTime.Now}"); } Console.WriteLine($"以释放 EdiOut 的数据库连接:{DateTime.Now}"); Console.WriteLine($"WCS任务执行结束:{DateTime.Now}"); } } }