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);