From 04fe68fd1cf88e403a851fca3787e0e598db3ed6 Mon Sep 17 00:00:00 2001 From: FanLian Date: Fri, 4 Aug 2023 10:08:24 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=BD=90=E5=A5=97?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E7=9A=84=E5=8F=82=E6=95=B0=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs index 53a612da..eb14d720 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs @@ -99,8 +99,8 @@ namespace Tnb.WarehouseMgr visualDevModelCrInput.data[nameof(WmsKittingInstock.create_time)] = DateTime.Now; visualDevModelCrInput.data[nameof(WmsKittingInstock.location_id)] = carry!.location_id!; visualDevModelCrInput.data[nameof(WmsKittingInstock.bill_code)] = _billRullService.GetBillNumber("WmsKittingInStk").GetAwaiter().GetResult(); - visualDevModelCrInput.data[nameof(WmsKittingInstock.source_id)] = kittingout.source_id; - visualDevModelCrInput.data[nameof(WmsKittingInstock.source_code)] = kittingout.source_code; + visualDevModelCrInput.data[nameof(WmsKittingInstock.source_id)] = kittingout.id; + visualDevModelCrInput.data[nameof(WmsKittingInstock.source_code)] = kittingout.bill_code; var location = await _db.Queryable().SingleAsync(it => it.id == kittingout.location_id); From b5916b4c0e0be11b83a29c05400d77ba4142eb76 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 10:10:23 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E3=80=81=E7=99=BB=E5=87=BA=E9=80=9A=E7=9F=A5Wms=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E6=9C=8D=E5=8A=A1=E7=9A=84=E5=90=AF=E5=8A=A8=E9=A2=84?= =?UTF-8?q?=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConditionalBackgroundService.cs | 30 +++++++++++++++++++ .../Tnb.WarehouseMgr/WareHouseService.cs | 1 - apihost/Tnb.API.Entry/Startup.cs | 2 +- system/Tnb.OAuth/OAuthService.cs | 9 ++++++ system/Tnb.OAuth/Tnb.OAuth.csproj | 1 + 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs new file mode 100644 index 00000000..745a3cf2 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; + +namespace Tnb.WarehouseMgr +{ + public class ConditionalBackgroundService : IHostedService + { + private readonly IHostedService _backgroundService; + //private readonly Func _condition; + + public ConditionalBackgroundService(IHostedService backgroundService) + { + _backgroundService = backgroundService; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + await _backgroundService.StartAsync(cancellationToken); + } + public async Task StopAsync(CancellationToken cancellationToken) + { + await _backgroundService.StopAsync(cancellationToken); + } + + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 78fabc26..5aacae45 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -283,7 +283,6 @@ namespace Tnb.WarehouseMgr start = end; end = Math.Min((end + moveNum), arrary.Length); } - foreach (var arr in arrList) { for (int j = 1, len = arr.Length; j <= len; j++) diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index dd5e6ed7..6b72c8c3 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -64,7 +64,7 @@ public class Startup : AppStartup services.AddOverideVisualDev(); //定时任务 - services.AddHostedService(); + services.AddHostedService(sp => new ConditionalBackgroundService(sp.GetRequiredService())); } diff --git a/system/Tnb.OAuth/OAuthService.cs b/system/Tnb.OAuth/OAuthService.cs index afebf9dd..ea5d3651 100644 --- a/system/Tnb.OAuth/OAuthService.cs +++ b/system/Tnb.OAuth/OAuthService.cs @@ -41,6 +41,7 @@ using JNPF.Common.Core.Handlers; using JNPF.Message.Interfaces.Message; using JNPF.Extras.DatabaseAccessor.SqlSugar.Models; using Aop.Api.Domain; +using Tnb.WarehouseMgr; namespace JNPF.OAuth; @@ -382,6 +383,10 @@ public class OAuthService : IDynamicApiController, ITransient [HttpGet("Logout")] public async Task Logout([FromQuery] string ticket) { + //用户退出时停止Wms定时任务 modify by ly on 20230804 + var conditionalBackgroundService = App.GetRequiredService(); + await conditionalBackgroundService.StopAsync(CancellationToken.None); + var tenantId = _userManager.TenantId ?? "default"; var userId = _userManager.UserId ?? "admim"; var httpContext = _httpContextAccessor.HttpContext; @@ -672,6 +677,10 @@ public class OAuthService : IDynamicApiController, ITransient } } + //启动Wms定时服务 modify by ly on 20230804 + var conditionalBackgroundService = App.GetRequiredService(); + await conditionalBackgroundService.StartAsync(CancellationToken.None); + return new { theme = user.Theme == null ? "classic" : user.Theme, diff --git a/system/Tnb.OAuth/Tnb.OAuth.csproj b/system/Tnb.OAuth/Tnb.OAuth.csproj index af2ae6c7..418136aa 100644 --- a/system/Tnb.OAuth/Tnb.OAuth.csproj +++ b/system/Tnb.OAuth/Tnb.OAuth.csproj @@ -12,6 +12,7 @@ + From f0e859a2037915fa2f0fa8b46ac96a358f55a088 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 10:38:53 +0800 Subject: [PATCH 03/13] 1 --- .../TimedTaskBackgroundService.cs | 58 +++++++++++-------- apihost/Tnb.API.Entry/Startup.cs | 4 +- system/Tnb.OAuth/OAuthService.cs | 18 ++++-- 3 files changed, 50 insertions(+), 30 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs index 67bf6a95..449f99a1 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs @@ -22,35 +22,47 @@ namespace Tnb.WarehouseMgr /// 定时任务 /// added by ly on 20230802 /// - public class TimedTaskBackgroundService : BackgroundService + public class TimedTaskBackgroundService : IHostedService { private ISendMessageService? _sendService; - protected override async Task ExecuteAsync(CancellationToken stoppingToken) + + public Task StartAsync(CancellationToken cancellationToken) { - - await Task.Run(() => - { - _sendService = App.GetRequiredService(); - var userManager = App.GetRequiredService(); - List toUserIds = new List() { "25398501929509" }; - //生成任务执行 - CancellationTokenSource genTaskCTS = new(); - CancellationTokenSource kittingOutAddCts = new(); - CancellationTokenSource kittingOutShippedCts = new(); - CancellationTokenSource setSortingCts = new(); + return Task.Run(() => + { + //_sendService = App.GetRequiredService(); - var wareHouseService = App.GetRequiredService(); - TimedTask(cts => wareHouseService.GenTaskExecute(cts), genTaskCTS, toUserIds); - //齐套出库 - var kittingOutService = App.GetRequiredService(); - TimedTask(cts => kittingOutService.KittingOutByAdd(cts), kittingOutAddCts, toUserIds); - TimedTask(cts => kittingOutService.KittingOutByIsToBeShipped(cts), kittingOutShippedCts, toUserIds); - //齐套分拣 - var setSortingService = App.GetRequiredService(); - TimedTask(cts => setSortingService.PackSortingByAdd(cts), setSortingCts, toUserIds); - }); + List toUserIds = new List() { "25398501929509" }; + //生成任务执行 + CancellationTokenSource genTaskCTS = new(); + CancellationTokenSource kittingOutAddCts = new(); + CancellationTokenSource kittingOutShippedCts = new(); + CancellationTokenSource setSortingCts = new(); + + var wareHouseService = App.GetRequiredService(); + TimedTask(cts => wareHouseService.GenTaskExecute(cts), genTaskCTS, toUserIds); + //齐套出库 + + var kittingOutService = App.GetRequiredService(); + TimedTask(cts => kittingOutService.KittingOutByAdd(cts), kittingOutAddCts, toUserIds); + TimedTask(cts => kittingOutService.KittingOutByIsToBeShipped(cts), kittingOutShippedCts, toUserIds); + //齐套分拣 + var setSortingService = App.GetRequiredService(); + TimedTask(cts => setSortingService.PackSortingByAdd(cts), setSortingCts, toUserIds); + }); } + + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } + + //protected override Task ExecuteAsync(CancellationToken stoppingToken) + //{ + // throw new NotImplementedException(); + //} + private Task TimedTask(Func action, CancellationTokenSource cts, List? toUserIds = default) { var token = cts.Token; diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index 6b72c8c3..148569d4 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -64,7 +64,9 @@ public class Startup : AppStartup services.AddOverideVisualDev(); //定时任务 - services.AddHostedService(sp => new ConditionalBackgroundService(sp.GetRequiredService())); + //services.AddHostedService(); + //services.AddSingleton(); + //services.AddHostedService(sp => new ConditionalBackgroundService(sp.GetRequiredService())); } diff --git a/system/Tnb.OAuth/OAuthService.cs b/system/Tnb.OAuth/OAuthService.cs index ea5d3651..37e1e397 100644 --- a/system/Tnb.OAuth/OAuthService.cs +++ b/system/Tnb.OAuth/OAuthService.cs @@ -42,6 +42,8 @@ using JNPF.Message.Interfaces.Message; using JNPF.Extras.DatabaseAccessor.SqlSugar.Models; using Aop.Api.Domain; using Tnb.WarehouseMgr; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; namespace JNPF.OAuth; @@ -141,6 +143,8 @@ public class OAuthService : IDynamicApiController, ITransient private readonly IMHandler _imHandler; + + /// /// 初始化一个类型的新实例. /// @@ -383,14 +387,14 @@ public class OAuthService : IDynamicApiController, ITransient [HttpGet("Logout")] public async Task Logout([FromQuery] string ticket) { - //用户退出时停止Wms定时任务 modify by ly on 20230804 - var conditionalBackgroundService = App.GetRequiredService(); - await conditionalBackgroundService.StopAsync(CancellationToken.None); var tenantId = _userManager.TenantId ?? "default"; var userId = _userManager.UserId ?? "admim"; var httpContext = _httpContextAccessor.HttpContext; httpContext.SignoutToSwagger(); + //用户退出时停止Wms定时任务 modify by ly on 20230804 + var timedTaskService = ActivatorUtilities.CreateInstance(httpContext.RequestServices); + await timedTaskService.StopAsync(CancellationToken.None); // 清除IM中的webSocket var list = await GetOnlineUserList(tenantId); @@ -678,9 +682,11 @@ public class OAuthService : IDynamicApiController, ITransient } //启动Wms定时服务 modify by ly on 20230804 - var conditionalBackgroundService = App.GetRequiredService(); - await conditionalBackgroundService.StartAsync(CancellationToken.None); - + //var conditionalBackgroundService = App.GetRequiredService(); + //await conditionalBackgroundService.StartAsync(CancellationToken.None); + var httpContext = _httpContextAccessor.HttpContext; + var timedTaskService = ActivatorUtilities.CreateInstance(httpContext.RequestServices); + await timedTaskService.StartAsync(default); return new { theme = user.Theme == null ? "classic" : user.Theme, From e892c087344a03298f53222c6dd7b019bf857a8e Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 11:26:08 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=B3=BB=E7=BB=9F=E5=B4=A9=E6=BA=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConditionalBackgroundService.cs | 30 ++++++++++++ .../TimedTaskBackgroundService.cs | 49 +++++++++---------- .../Tnb.WarehouseMgr/WareHouseService.cs | 1 - .../WmsRobotCallbackService.cs | 4 +- .../Tnb.WarehouseMgr/WmskittingOutService.cs | 2 + .../Tnb.TaskScheduler/TimeTaskService.cs | 2 +- 6 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs new file mode 100644 index 00000000..745a3cf2 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/ConditionalBackgroundService.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; + +namespace Tnb.WarehouseMgr +{ + public class ConditionalBackgroundService : IHostedService + { + private readonly IHostedService _backgroundService; + //private readonly Func _condition; + + public ConditionalBackgroundService(IHostedService backgroundService) + { + _backgroundService = backgroundService; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + await _backgroundService.StartAsync(cancellationToken); + } + public async Task StopAsync(CancellationToken cancellationToken) + { + await _backgroundService.StopAsync(cancellationToken); + } + + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs index 3f3b38f1..53391ee2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs @@ -25,32 +25,33 @@ namespace Tnb.WarehouseMgr public class TimedTaskBackgroundService : BackgroundService { private ISendMessageService? _sendService; - protected override async Task ExecuteAsync(CancellationToken stoppingToken) + + protected override Task ExecuteAsync(CancellationToken stoppingToken) { - - await Task.Run(() => - { - _sendService = App.GetRequiredService(); - var userManager = App.GetRequiredService(); - List toUserIds = new List() { "25398501929509" }; - //生成任务执行 - CancellationTokenSource genTaskCTS = new(); - CancellationTokenSource kittingOutAddCts = new(); - CancellationTokenSource kittingOutShippedCts = new(); - CancellationTokenSource setSortingCts = new(); + return Task.Run(() => + { + //_sendService = App.GetRequiredService(); + List toUserIds = new List() { "25398501929509" }; + //生成任务执行 + CancellationTokenSource genTaskCTS = new(); + CancellationTokenSource kittingOutAddCts = new(); + CancellationTokenSource kittingOutShippedCts = new(); + CancellationTokenSource setSortingCts = new(); - var wareHouseService = App.GetRequiredService(); - TimedTask(cts => wareHouseService.GenTaskExecute(cts), genTaskCTS, toUserIds); - //齐套出库 + var wareHouseService = App.GetRequiredService(); + TimedTask(cts => wareHouseService.GenTaskExecute(cts), genTaskCTS, toUserIds); + //齐套出库 - var kittingOutService = App.GetRequiredService(); - TimedTask(cts => kittingOutService.KittingOutByAdd(cts), kittingOutAddCts, toUserIds); - TimedTask(cts => kittingOutService.KittingOutByIsToBeShipped(cts), kittingOutShippedCts, toUserIds); - //齐套分拣 - var setSortingService = App.GetRequiredService(); - TimedTask(cts => setSortingService.PackSortingByAdd(cts), setSortingCts, toUserIds); - }); + var kittingOutService = App.GetRequiredService(); + TimedTask(cts => kittingOutService.KittingOutByAdd(cts), kittingOutAddCts, toUserIds); + TimedTask(cts => kittingOutService.KittingOutByIsToBeShipped(cts), kittingOutShippedCts, toUserIds); + //齐套分拣 + var setSortingService = App.GetRequiredService(); + TimedTask(cts => setSortingService.PackSortingByAdd(cts), setSortingCts, toUserIds); + }); } + + private Task TimedTask(Func action, CancellationTokenSource cts, List? toUserIds = default) { var token = cts.Token; @@ -60,9 +61,7 @@ namespace Tnb.WarehouseMgr { await action(cts).Catch(ex => { - //MessageSendModel messageSendModel = new(); - //_sendService?.SendMessage(); - //messageService.SentMessage(toUserIds!, ex.Message, ex.ToString()); + //notify operator }); await Task.Delay(1000); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 78fabc26..5aacae45 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -283,7 +283,6 @@ namespace Tnb.WarehouseMgr start = end; end = Math.Min((end + moveNum), arrary.Length); } - foreach (var arr in arrList) { for (int j = 1, len = arr.Length; j <= len; j++) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs index 53a612da..eb14d720 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs @@ -99,8 +99,8 @@ namespace Tnb.WarehouseMgr visualDevModelCrInput.data[nameof(WmsKittingInstock.create_time)] = DateTime.Now; visualDevModelCrInput.data[nameof(WmsKittingInstock.location_id)] = carry!.location_id!; visualDevModelCrInput.data[nameof(WmsKittingInstock.bill_code)] = _billRullService.GetBillNumber("WmsKittingInStk").GetAwaiter().GetResult(); - visualDevModelCrInput.data[nameof(WmsKittingInstock.source_id)] = kittingout.source_id; - visualDevModelCrInput.data[nameof(WmsKittingInstock.source_code)] = kittingout.source_code; + visualDevModelCrInput.data[nameof(WmsKittingInstock.source_id)] = kittingout.id; + visualDevModelCrInput.data[nameof(WmsKittingInstock.source_code)] = kittingout.bill_code; var location = await _db.Queryable().SingleAsync(it => it.id == kittingout.location_id); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index adbee72a..c6141429 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -155,6 +155,8 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task KittingOutByIsToBeShipped(CancellationTokenSource? cts = default) { + if (_userManager.User == null) return; + var curDb = _db.CopyNew(); try { diff --git a/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs b/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs index 41e779a2..9b62e4c1 100644 --- a/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs +++ b/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs @@ -302,7 +302,7 @@ public class TimeTaskService : ITimeTaskService, IDynamicApiController, ITransie // 非多租户模式启动自启任务 if (!KeyVariable.MultiTenancy) { - _repository.AsQueryable().Where(x => x.DeleteMark == null && x.EnabledMark == 1).ToList().ForEach(x=>AddTimerJob(x,false));//modifyby zhoukeda 20230607 + _repository.AsSugarClient().CopyNew().Queryable().Where(x => x.DeleteMark == null && x.EnabledMark == 1).ToList().ForEach(x=>AddTimerJob(x,false));//modifyby zhoukeda 20230607 } } From 6ad92877b9f174ad3a118c1d10110bbb0af6daa4 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 11:27:37 +0800 Subject: [PATCH 05/13] 1 --- WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs | 2 +- WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs | 2 +- apihost/Tnb.API.Entry/Startup.cs | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs index 5db6aab0..ca071cb4 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs @@ -22,7 +22,7 @@ namespace Tnb.WarehouseMgr /// 定时任务 /// added by ly on 20230802 /// - public class TimedTaskBackgroundService : IHostedService + public class TimedTaskBackgroundService : BackgroundService { private ISendMessageService? _sendService; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 5aacae45..e3a1ca22 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -217,7 +217,7 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task GenTaskExecute(CancellationTokenSource? cts = default) { - + Stopwatch sw = Stopwatch.StartNew(); var db = _db.CopyNew(); try diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index 148569d4..dd5e6ed7 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -64,9 +64,7 @@ public class Startup : AppStartup services.AddOverideVisualDev(); //定时任务 - //services.AddHostedService(); - //services.AddSingleton(); - //services.AddHostedService(sp => new ConditionalBackgroundService(sp.GetRequiredService())); + services.AddHostedService(); } From 987d4ac65296c26e0e5c2e10f73a73c4a07a22a4 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 11:39:54 +0800 Subject: [PATCH 06/13] 1 --- system/Tnb.OAuth/OAuthService.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/system/Tnb.OAuth/OAuthService.cs b/system/Tnb.OAuth/OAuthService.cs index 37e1e397..5ea3a5dc 100644 --- a/system/Tnb.OAuth/OAuthService.cs +++ b/system/Tnb.OAuth/OAuthService.cs @@ -392,9 +392,6 @@ public class OAuthService : IDynamicApiController, ITransient var userId = _userManager.UserId ?? "admim"; var httpContext = _httpContextAccessor.HttpContext; httpContext.SignoutToSwagger(); - //用户退出时停止Wms定时任务 modify by ly on 20230804 - var timedTaskService = ActivatorUtilities.CreateInstance(httpContext.RequestServices); - await timedTaskService.StopAsync(CancellationToken.None); // 清除IM中的webSocket var list = await GetOnlineUserList(tenantId); @@ -680,13 +677,6 @@ public class OAuthService : IDynamicApiController, ITransient } } } - - //启动Wms定时服务 modify by ly on 20230804 - //var conditionalBackgroundService = App.GetRequiredService(); - //await conditionalBackgroundService.StartAsync(CancellationToken.None); - var httpContext = _httpContextAccessor.HttpContext; - var timedTaskService = ActivatorUtilities.CreateInstance(httpContext.RequestServices); - await timedTaskService.StartAsync(default); return new { theme = user.Theme == null ? "classic" : user.Theme, From 772ca35dc1897081be8595f2ba9b9d062d44553f Mon Sep 17 00:00:00 2001 From: FanLian Date: Fri, 4 Aug 2023 11:40:20 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index c6141429..698998be 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -114,8 +114,8 @@ namespace Tnb.WarehouseMgr setSortingH.id = SnowflakeIdHelper.NextId(); setSortingH.kittingout_id = ko.id; setSortingH.seq = ko.seq; - setSortingH.org_id = _userManager.User.OrganizeId; - setSortingH.create_id = _userManager.UserId; + setSortingH.org_id = ko.org_id; + setSortingH.create_id = ko.create_id; setSortingH.create_time = DateTime.Now; await curDb.Insertable(setSortingH).ExecuteCommandAsync(); @@ -155,8 +155,6 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task KittingOutByIsToBeShipped(CancellationTokenSource? cts = default) { - if (_userManager.User == null) return; - var curDb = _db.CopyNew(); try { @@ -195,7 +193,7 @@ namespace Tnb.WarehouseMgr WmsPretaskH preTask = new() { - org_id = _userManager.User.OrganizeId, + org_id = ko.org_id, startlocation_id = sPoint?.location_id!, startlocation_code = sPoint?.location_code!, endlocation_id = ePoint?.location_id!, @@ -216,7 +214,7 @@ namespace Tnb.WarehouseMgr area_code = it.Key, require_id = ko.id, require_code = ko.bill_code, - create_id = _userManager.UserId, + create_id = ko.create_id, create_time = DateTime.Now, source_id = ko.source_id, source_code = ko.source_code From a6ad99a5bc073c774882aebe609a45e58d31b356 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 12:59:31 +0800 Subject: [PATCH 08/13] =?UTF-8?q?UserManager=E6=96=B0=E5=A2=9E=E5=88=86?= =?UTF-8?q?=E9=83=A8=E7=B1=BB=EF=BC=8C=E5=AE=9A=E4=B9=89=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E4=BB=A4=E7=89=8C=EF=BC=8C=E7=94=A8=E4=BA=8E=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=A7=A3=E6=9E=90=E5=BD=93=E5=89=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/BaseWareHouseService.cs | 16 +++++++++++ .../Tnb.WarehouseMgr/WmskittingOutService.cs | 13 +++++++-- .../Manager/User/UserManager.cs | 3 +-- .../Manager/User/UserManager.part.cs | 27 +++++++++++++++++++ system/Tnb.OAuth/OAuthService.cs | 3 ++- system/Tnb.OAuth/Tnb.OAuth.csproj | 1 - 6 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 common/Tnb.Common.Core/Manager/User/UserManager.part.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 9fdd5303..fa0744ae 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -3,13 +3,16 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; +using System.Security.Claims; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; using JNPF; using JNPF.Common.Contracts; +using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.Common.Extension; +using JNPF.DataEncryption; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Interfaces.System; @@ -49,6 +52,19 @@ namespace Tnb.WarehouseMgr } } } + + protected Task GetUserIdentity() + { + var claims = JWTEncryption.ReadJwtToken(UserManager.AsscessToken)?.Claims; + ClaimsIdentity toKen = new ClaimsIdentity(); + foreach (Claim item in claims) + { + toKen.AddClaim(item); + } + var curUser = new ClaimsPrincipal(toKen); + return Task.FromResult(curUser); + } + /// /// 判断最终目标库位是否可以放置当前载具 /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index c6141429..4247c6bd 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -4,18 +4,24 @@ using System.Data; using System.Data.Common; using System.Linq; using System.Linq.Expressions; +using System.Net.Http; +using System.Security.Claims; using System.Text; using System.Threading.Tasks; using System.Transactions; using Aop.Api.Domain; +using JNPF; +using JNPF.Common.Const; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.Common.Security; +using JNPF.DataEncryption; using JNPF.FriendlyException; using JNPF.LinqBuilder; using JNPF.Logging; +using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Interfaces.System; using Mapster; using Microsoft.AspNetCore.Http; @@ -61,6 +67,9 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task KittingOutByAdd(CancellationTokenSource? cts = default) { + if (UserManager.AsscessToken.IsNullOrWhiteSpace()) return; + var curUser = await GetUserIdentity(); + var curDb = _db.CopyNew(); try { @@ -114,8 +123,8 @@ namespace Tnb.WarehouseMgr setSortingH.id = SnowflakeIdHelper.NextId(); setSortingH.kittingout_id = ko.id; setSortingH.seq = ko.seq; - setSortingH.org_id = _userManager.User.OrganizeId; - setSortingH.create_id = _userManager.UserId; + setSortingH.org_id = curUser.FindFirst(ClaimConst.CLAINMORGID)?.Value; + setSortingH.create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value; setSortingH.create_time = DateTime.Now; await curDb.Insertable(setSortingH).ExecuteCommandAsync(); diff --git a/common/Tnb.Common.Core/Manager/User/UserManager.cs b/common/Tnb.Common.Core/Manager/User/UserManager.cs index d71c492f..bc1e0a60 100644 --- a/common/Tnb.Common.Core/Manager/User/UserManager.cs +++ b/common/Tnb.Common.Core/Manager/User/UserManager.cs @@ -21,7 +21,7 @@ namespace JNPF.Common.Core.Manager; /// /// 用户管理 . /// -public class UserManager : IUserManager, IScoped +public partial class UserManager : IUserManager, IScoped { /// /// 用户表仓储. @@ -76,7 +76,6 @@ public class UserManager : IUserManager, IScoped public UserEntity User { get => _repository.GetSingle(u => u.Id == UserId); - } /// diff --git a/common/Tnb.Common.Core/Manager/User/UserManager.part.cs b/common/Tnb.Common.Core/Manager/User/UserManager.part.cs new file mode 100644 index 00000000..75597582 --- /dev/null +++ b/common/Tnb.Common.Core/Manager/User/UserManager.part.cs @@ -0,0 +1,27 @@ +using JNPF.Common.Const; +using JNPF.Common.Enums; +using JNPF.Common.Extension; +using JNPF.Common.Manager; +using JNPF.Common.Models.Authorize; +using JNPF.Common.Models.User; +using JNPF.Common.Net; +using JNPF.Common.Security; +using JNPF.DataEncryption; +using JNPF.DependencyInjection; +using JNPF.Systems.Entitys.Entity.Permission; +using JNPF.Systems.Entitys.Permission; +using JNPF.Systems.Entitys.System; +using Mapster; +using Microsoft.AspNetCore.Http; +using SqlSugar; +using System.Security.Claims; + +namespace JNPF.Common.Core.Manager; + +/// +/// 用户管理 . +/// +public partial class UserManager +{ + public static string AsscessToken { get; set; } +} \ No newline at end of file diff --git a/system/Tnb.OAuth/OAuthService.cs b/system/Tnb.OAuth/OAuthService.cs index 5ea3a5dc..018cdee3 100644 --- a/system/Tnb.OAuth/OAuthService.cs +++ b/system/Tnb.OAuth/OAuthService.cs @@ -41,7 +41,6 @@ using JNPF.Common.Core.Handlers; using JNPF.Message.Interfaces.Message; using JNPF.Extras.DatabaseAccessor.SqlSugar.Models; using Aop.Api.Domain; -using Tnb.WarehouseMgr; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -606,6 +605,8 @@ public class OAuthService : IDynamicApiController, ITransient { ClaimConst.LOGINTYPE,input.login_type} }, tokenTimeout); + //modify by ly on 20230804 + UserManager.AsscessToken = accessToken; // 单点登录标识缓存 if (_oauthOptions.Enabled) _cacheManager.Set("OnlineTicket_" + input.online_ticket, options.ConfigId); diff --git a/system/Tnb.OAuth/Tnb.OAuth.csproj b/system/Tnb.OAuth/Tnb.OAuth.csproj index 418136aa..af2ae6c7 100644 --- a/system/Tnb.OAuth/Tnb.OAuth.csproj +++ b/system/Tnb.OAuth/Tnb.OAuth.csproj @@ -12,7 +12,6 @@ - From 32ccb2d54e1b801617fad13dc33ed9e8a57f6b8c Mon Sep 17 00:00:00 2001 From: FanLian Date: Fri, 4 Aug 2023 14:21:55 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E4=BB=A4=E7=89=8C=E6=94=BE=E5=85=A5?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/BaseWareHouseService.cs | 4 +- .../Tnb.WarehouseMgr/WmskittingOutService.cs | 37 +++++++++++-------- system/Tnb.OAuth/OAuthService.cs | 3 ++ 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index fa0744ae..f51c99cb 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -53,9 +53,9 @@ namespace Tnb.WarehouseMgr } } - protected Task GetUserIdentity() + protected Task GetUserIdentity(string aToken) { - var claims = JWTEncryption.ReadJwtToken(UserManager.AsscessToken)?.Claims; + var claims = JWTEncryption.ReadJwtToken(aToken)?.Claims; ClaimsIdentity toKen = new ClaimsIdentity(); foreach (Claim item in claims) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index 8f22834c..e178b03b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -16,6 +16,7 @@ using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Extension; +using JNPF.Common.Manager; using JNPF.Common.Security; using JNPF.DataEncryption; using JNPF.FriendlyException; @@ -51,14 +52,23 @@ namespace Tnb.WarehouseMgr private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; private readonly IWmsCarryService _carryService; + private readonly ICacheManager _cacheManager; private const string BizTypeId = "26169472620837"; - public WmskittingOutService(ISqlSugarRepository repository, IWareHouseService warehouseService, IUserManager userManager, IBillRullService billRullService, IWmsCarryService carryService) + public WmskittingOutService( + ISqlSugarRepository repository, + IWareHouseService warehouseService, + IUserManager userManager, + IBillRullService billRullService, + IWmsCarryService carryService, + ICacheManager cacheManager + ) { _db = repository.AsSugarClient(); _warehouseService = warehouseService; _userManager = userManager; _billRullService = billRullService; _carryService = carryService; + _cacheManager = cacheManager; } /// /// 齐套出库(新增状态) @@ -67,8 +77,9 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task KittingOutByAdd(CancellationTokenSource? cts = default) { - if (UserManager.AsscessToken.IsNullOrWhiteSpace()) return; - var curUser = await GetUserIdentity(); + var aToken = await _cacheManager.GetAsync("AsscessToken"); + if (aToken.IsNullOrWhiteSpace()) return; + var curUser = await GetUserIdentity(aToken); var curDb = _db.CopyNew(); try @@ -123,8 +134,8 @@ namespace Tnb.WarehouseMgr setSortingH.id = SnowflakeIdHelper.NextId(); setSortingH.kittingout_id = ko.id; setSortingH.seq = ko.seq; - setSortingH.org_id = ko.org_id; - setSortingH.create_id = ko.create_id; + setSortingH.org_id = curUser.FindFirst(ClaimConst.CLAINMORGID)?.Value; + setSortingH.create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value; setSortingH.create_time = DateTime.Now; await curDb.Insertable(setSortingH).ExecuteCommandAsync(); @@ -164,6 +175,10 @@ namespace Tnb.WarehouseMgr [HttpPost] public async Task KittingOutByIsToBeShipped(CancellationTokenSource? cts = default) { + var aToken = await _cacheManager.GetAsync("AsscessToken"); + if (aToken.IsNullOrWhiteSpace()) return; + var curUser = await GetUserIdentity(aToken); + var curDb = _db.CopyNew(); try { @@ -202,7 +217,7 @@ namespace Tnb.WarehouseMgr WmsPretaskH preTask = new() { - org_id = ko.org_id, + org_id = curUser.FindFirst(ClaimConst.CLAINMORGID)?.Value, startlocation_id = sPoint?.location_id!, startlocation_code = sPoint?.location_code!, endlocation_id = ePoint?.location_id!, @@ -223,7 +238,7 @@ namespace Tnb.WarehouseMgr area_code = it.Key, require_id = ko.id, require_code = ko.bill_code, - create_id = ko.create_id, + create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value, create_time = DateTime.Now, source_id = ko.source_id, source_code = ko.source_code @@ -243,14 +258,6 @@ namespace Tnb.WarehouseMgr } } } - else - { - throw new AppFriendlyException("无可用的载具", 500); - } - } - else - { - throw new AppFriendlyException("无可用的库位", 500); } } } diff --git a/system/Tnb.OAuth/OAuthService.cs b/system/Tnb.OAuth/OAuthService.cs index 018cdee3..9c389e8f 100644 --- a/system/Tnb.OAuth/OAuthService.cs +++ b/system/Tnb.OAuth/OAuthService.cs @@ -386,6 +386,7 @@ public class OAuthService : IDynamicApiController, ITransient [HttpGet("Logout")] public async Task Logout([FromQuery] string ticket) { + await _cacheManager.DelAsync("AsscessToken"); var tenantId = _userManager.TenantId ?? "default"; var userId = _userManager.UserId ?? "admim"; @@ -607,6 +608,8 @@ public class OAuthService : IDynamicApiController, ITransient //modify by ly on 20230804 UserManager.AsscessToken = accessToken; + await _cacheManager.SetAsync("AsscessToken", accessToken,TimeSpan.FromMinutes(30)); + // 单点登录标识缓存 if (_oauthOptions.Enabled) _cacheManager.Set("OnlineTicket_" + input.online_ticket, options.ConfigId); From 0756b27bea9e04428d88b6143d86a921f17e6802 Mon Sep 17 00:00:00 2001 From: FanLian Date: Fri, 4 Aug 2023 14:28:36 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=9D=9E=E8=B0=83=E8=AF=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apihost/Tnb.API.Entry/Startup.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index dd5e6ed7..d7748aae 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -63,9 +63,10 @@ public class Startup : AppStartup services.AddOverideVisualDev(); + #if !DEBUG //定时任务 services.AddHostedService(); - + #endif } public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, IOptions senparcSetting, IOptions senparcWeixinSetting) From 4381e77b7fe58802948ceecff49733f94e3a0f17 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 15:05:00 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=8C=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=8A=A5=E8=A1=A8=E4=B8=9A=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consts/ModuleConsts.cs | 4 + .../Entity/WmsStockReportCode.cs | 87 +++++++++++++++++++ .../Tnb.WarehouseMgr/WmsStockReportService.cs | 17 ++++ .../Tnb.WarehouseMgr/WmskittingOutService.cs | 2 +- 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportCode.cs create mode 100644 WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs index 82c65e85..921904e4 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs @@ -156,5 +156,9 @@ public class ModuleConsts /// 模块标识-盘点任务 /// public const string MODULE_WMSCHECKTASK_ID = "27582377555221"; + /// + /// 模块标识-库存报表 + /// + public const string MODULE_WMSSTOCKREPORT_ID = "27895417124373"; } \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportCode.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportCode.cs new file mode 100644 index 00000000..28376aa5 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportCode.cs @@ -0,0 +1,87 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.WarehouseMgr.Entities; + +/// +/// 库存报表条码表 +/// +[SugarTable("wms_stock_report_code")] +public partial class WmsStockReportCode : BaseEntity +{ + public WmsStockReportCode() + { + id = SnowflakeIdHelper.NextId(); + } + /// + /// 主表ID + /// + public string? report_id { get; set; } + + /// + /// 载具ID + /// + public string? carry_id { get; set; } + + /// + /// 载具编号 + /// + public string? carry_code { get; set; } + + /// + /// 物料ID + /// + public string? material_id { get; set; } + + /// + /// 物料编号 + /// + public string? material_code { get; set; } + + /// + /// 条码编号 + /// + public string? barcode { get; set; } + + /// + /// 批次 + /// + public string? code_batch { get; set; } + + /// + /// 条码数量 + /// + public decimal? codeqty { get; set; } + + /// + /// 单位ID + /// + public string? unit_id { get; set; } + + /// + /// 创建用户 + /// + public string? create_id { get; set; } + + /// + /// 创建时间 + /// + public DateTime? create_time { get; set; } + + /// + /// 修改用户 + /// + public string? modify_id { get; set; } + + /// + /// 修改时间 + /// + public DateTime? modify_time { get; set; } + + /// + /// 时间戳 + /// + public DateTime? time_stamp { get; set; } + +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs new file mode 100644 index 00000000..76940e85 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.VisualDev; + +namespace Tnb.WarehouseMgr +{ + /// + /// 库存报表服务类 + /// + [OverideVisualDev(ModuleConsts.MODULE_WMSSTOCKREPORT_ID)] + public class WmsStockReportService:BaseWareHouseService + { + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index e178b03b..f282134a 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -135,7 +135,7 @@ namespace Tnb.WarehouseMgr setSortingH.kittingout_id = ko.id; setSortingH.seq = ko.seq; setSortingH.org_id = curUser.FindFirst(ClaimConst.CLAINMORGID)?.Value; - setSortingH.create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value; + setSortingH.create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value!; setSortingH.create_time = DateTime.Now; await curDb.Insertable(setSortingH).ExecuteCommandAsync(); From 77b4c2b7b8eb95fd663c33e5da5c78885c8cbc31 Mon Sep 17 00:00:00 2001 From: FanLian Date: Fri, 4 Aug 2023 15:05:05 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E4=B8=BB=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entity/WmsStockReportH.cs | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportH.cs diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportH.cs new file mode 100644 index 00000000..683f1780 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsStockReportH.cs @@ -0,0 +1,113 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.WarehouseMgr.Entities; + +/// +/// 库存报表 +/// +[SugarTable("wms_stock_report_h")] +public partial class WmsStockReportH : BaseEntity +{ + public WmsStockReportH() + { + id = SnowflakeIdHelper.NextId(); + } + /// + /// 所属组织 + /// + public string? org_id { get; set; } + + /// + /// 物料ID + /// + public string? material_id { get; set; } + + /// + /// 物料编号 + /// + public string? material_code { get; set; } + + /// + /// 仓库ID + /// + public string? warehouse_id { get; set; } + + /// + /// 现有库存 + /// + public decimal? existing_stock_qty { get; set; } + + /// + /// 最大库存 + /// + public int? max_stock { get; set; } + + /// + /// 安全库存 + /// + public int? safe_stock { get; set; } + + /// + /// 最小库存 + /// + public int? min_stock { get; set; } + + /// + /// 库存有效期(天) + /// + public int? storage_valid_day { get; set; } + + /// + /// 预警提前期(天) + /// + public int? early_warn_day { get; set; } + + /// + /// 过期预警数量 + /// + public decimal? expired_warning_qty { get; set; } + + /// + /// 创建用户 + /// + public string? create_id { get; set; } + + /// + /// 创建时间 + /// + public DateTime? create_time { get; set; } + + /// + /// 修改用户 + /// + public string? modify_id { get; set; } + + /// + /// 修改时间 + /// + public DateTime? modify_time { get; set; } + + /// + /// 扩展 + /// + public string? extras { get; set; } + + /// + /// 时间戳 + /// + public DateTime? timestamp { get; set; } + + /// + /// 流程任务Id + /// + public string? f_flowtaskid { get; set; } + + /// + /// 流程引擎Id + /// + public string? f_flowid { get; set; } + +} + From 64f50721d443ad941ecd2ed53373be6f418bb961 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Aug 2023 15:05:45 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E6=B6=88=E9=99=A4=E9=BD=90=E5=A5=97?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/WmsStockReportService.cs | 13 +++++++++++++ .../Tnb.WarehouseMgr/WmskittingOutService.cs | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs index 76940e85..b4205ab5 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs @@ -4,6 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using JNPF.VisualDev; +using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; +using MimeKit.Cryptography; +using SqlSugar; namespace Tnb.WarehouseMgr { @@ -13,5 +16,15 @@ namespace Tnb.WarehouseMgr [OverideVisualDev(ModuleConsts.MODULE_WMSSTOCKREPORT_ID)] public class WmsStockReportService:BaseWareHouseService { + public WmsStockReportService() + { + OverideFuncs.GetListAsync = GetListAsync; + } + + private async Task GetListAsync(VisualDevModelListQueryInput input) + { + + return null; + } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index f282134a..0f6c0518 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -238,7 +238,7 @@ namespace Tnb.WarehouseMgr area_code = it.Key, require_id = ko.id, require_code = ko.bill_code, - create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value, + create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value!, create_time = DateTime.Now, source_id = ko.source_id, source_code = ko.source_code