diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 3532785c..a1f5809b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -9,6 +9,7 @@ using System.Text; using System.Threading.Channels; using System.Threading.Tasks; using Aspose.Cells.Drawing; +using JavaScriptEngineSwitcher.Core.Extensions; using JNPF; using JNPF.Common.Contracts; using JNPF.Common.Core.Manager; @@ -70,9 +71,11 @@ namespace Tnb.WarehouseMgr } } - protected Task GetUserIdentity() + protected Task GetUserIdentity(string? sToken = null) { - var claims = JWTEncryption.ReadJwtToken(UserManager.AsscessToken)?.Claims; + var at = sToken ?? UserManager.AsscessToken; + at = at.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase) ? at.TrimStart("Bearer ") : at; + var claims = JWTEncryption.ReadJwtToken(at)?.Claims; ClaimsIdentity toKen = new ClaimsIdentity(); foreach (Claim item in claims) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs index 3fca4882..b9906be2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs @@ -1,15 +1,18 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Channels; using System.Threading.Tasks; +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.FriendlyException; +using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Interfaces.System; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; @@ -89,6 +92,13 @@ namespace Tnb.WarehouseMgr if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500); ePoint = await _db.Queryable().FirstAsync(it => it.location_id == endLocations[0].id); } + var ui = await GetUserIdentity(_userManager.ToKen); + if (_userManager.User == null) + { + + var curUid = ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; + _userManager.User = await _db.Queryable().SingleAsync(it => it.Id == curUid); + } VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_CARRYMOVEINSTOCK_ID, true); @@ -129,7 +139,7 @@ namespace Tnb.WarehouseMgr preTask.area_code = it.Key; preTask.require_id = input.data["ReturnIdentity"].ToString(); preTask.require_code = input.data[nameof(preTask.bill_code)]?.ToString()!; - preTask.create_id = _userManager.UserId; + preTask.create_id = _userManager.UserId ?? ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; preTask.create_time = DateTime.Now; return preTask; }).ToList(); @@ -153,7 +163,7 @@ namespace Tnb.WarehouseMgr handleH.carry_code = input.data[nameof(WmsHandleH.carry_code)]?.ToString()!; handleH.require_id = input.data["ReturnIdentity"].ToString(); handleH.require_code = input.data[nameof(WmsHandleH.bill_code)]?.ToString()!; - handleH.create_id = _userManager.UserId; + handleH.create_id = _userManager.UserId ?? ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; handleH.create_time = DateTime.Now; preTaskUpInput.PreTaskRecord = handleH; //根据载具移入Id,回更单据状态 diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index c45821f5..2351170b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -804,7 +804,7 @@ namespace Tnb.WarehouseMgr [nameof(WmsCarryD.carry_id)] = input.carryIds.First(), [nameof(WmsCarryH.carry_code)] = carry.carry_code, [nameof(WmsHandleH.biz_type)] = input.bizTypeId, - [nameof(WmsHandleH.create_id)] = _userManager.UserId, + [nameof(WmsHandleH.create_id)] = _userManager.UserId ?? curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value ?? string.Empty, [nameof(WmsHandleH.create_time)] = DateTime.Now, [nameof(WmsMoveInstock.status)] = WmsWareHouseConst.BILLSTATUS_ADD_ID, [nameof(WmsHandleH.bill_code)] = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_CARRYMOINSTK_ENCODE).GetAwaiter().GetResult(), diff --git a/common/Tnb.Common.Core/Manager/User/IUserManager.cs b/common/Tnb.Common.Core/Manager/User/IUserManager.cs index c1804ac7..fca33168 100644 --- a/common/Tnb.Common.Core/Manager/User/IUserManager.cs +++ b/common/Tnb.Common.Core/Manager/User/IUserManager.cs @@ -82,7 +82,7 @@ public interface IUserManager /// /// 用户信息. /// - UserEntity User { get; } + UserEntity User { get; set; } /// /// 获取用户登录信息. diff --git a/common/Tnb.Common.Core/Manager/User/UserManager.cs b/common/Tnb.Common.Core/Manager/User/UserManager.cs index bc1e0a60..226c147a 100644 --- a/common/Tnb.Common.Core/Manager/User/UserManager.cs +++ b/common/Tnb.Common.Core/Manager/User/UserManager.cs @@ -70,12 +70,20 @@ public partial class UserManager : IUserManager, IScoped } } + + private UserEntity _curUser; /// /// 用户信息. /// public UserEntity User { - get => _repository.GetSingle(u => u.Id == UserId); + get + { + if(_curUser == null) + _curUser= _repository.GetSingle(u => u.Id == UserId); + return _curUser; + } + set => _curUser = value; } /// diff --git a/taskschedule/Tnb.TaskScheduler.Interfaces/ITimeTaskService.cs b/taskschedule/Tnb.TaskScheduler.Interfaces/ITimeTaskService.cs index 765ae574..88626728 100644 --- a/taskschedule/Tnb.TaskScheduler.Interfaces/ITimeTaskService.cs +++ b/taskschedule/Tnb.TaskScheduler.Interfaces/ITimeTaskService.cs @@ -1,4 +1,6 @@ -namespace JNPF.TaskScheduler.Interfaces.TaskScheduler; +using JNPF.TaskScheduler.Entitys; + +namespace JNPF.TaskScheduler.Interfaces.TaskScheduler; ///     /// 定时任务 @@ -13,4 +15,6 @@ public interface ITimeTaskService /// 启动自启动任务. /// void StartTimerJob(); + + List GetTasks(); } diff --git a/taskschedule/Tnb.TaskScheduler/Listener/MoldMaintainTask.cs b/taskschedule/Tnb.TaskScheduler/Listener/MoldMaintainTask.cs index ea0da118..64648af6 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/MoldMaintainTask.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/MoldMaintainTask.cs @@ -8,6 +8,7 @@ using JNPF.Common.Security; using JNPF.Systems.Entitys.System; using JNPF.TaskScheduler; using JNPF.TaskScheduler.Entitys.Model; +using JNPF.TaskScheduler.Interfaces.TaskScheduler; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.ProductionMgr.Entities; @@ -19,12 +20,14 @@ namespace Tnb.TaskScheduler.Listener public class MoldMaintainTask : ISpareTimeWorker { private ISqlSugarRepository repository => App.GetService>(); + private ITimeTaskService timeTaskService => App.GetService(); [SpareTime("0 0 0 * * ?", "生成模具保养任务", ExecuteType = SpareTimeExecuteTypes.Serial, StartNow = false)] public async void CreateTask(SpareTimer timer, long count) { try { - var timeTaskEntity = await repository.AsSugarClient().Queryable().Where(p => p.Id == timer.WorkerName && p.EnabledMark == 1).FirstAsync(); + var TimeTasks = timeTaskService.GetTasks(); + var timeTaskEntity = TimeTasks.Where(p => p.Id == timer.WorkerName && p.EnabledMark == 1).First(); if (timeTaskEntity == null) return; ContentModel? comtentModel = timeTaskEntity.ExecuteContent.ToObject(); diff --git a/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs index 00b15904..84aab7fe 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs @@ -9,6 +9,7 @@ using JNPF.Systems.Entitys.System; using JNPF.TaskScheduler; using JNPF.TaskScheduler.Entitys; using JNPF.TaskScheduler.Entitys.Model; +using JNPF.TaskScheduler.Interfaces.TaskScheduler; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.EquipMgr.Entities; @@ -25,13 +26,14 @@ namespace Tnb.TaskScheduler.Listener public class QcTaskTimeWorker : ISpareTimeWorker { private ISqlSugarRepository repository => App.GetService>(); - + private ITimeTaskService timeTaskService => App.GetService(); [SpareTime("0 0 0 * * ?", "生成质检任务", ExecuteType = SpareTimeExecuteTypes.Serial, StartNow = false)] public async void CreateTask(SpareTimer timer, long count) { try { - var timeTaskEntity = await repository.AsSugarClient().Queryable().Where(p => p.Id == timer.WorkerName && p.EnabledMark == 1).FirstAsync(); + var TimeTasks = timeTaskService.GetTasks(); + var timeTaskEntity = TimeTasks.Where(p => p.Id == timer.WorkerName && p.EnabledMark == 1).First(); if (timeTaskEntity == null) return; ContentModel? comtentModel = timeTaskEntity.ExecuteContent.ToObject(); diff --git a/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs b/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs index 9b62e4c1..3390256d 100644 --- a/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs +++ b/taskschedule/Tnb.TaskScheduler/TimeTaskService.cs @@ -136,6 +136,12 @@ public class TimeTaskService : ITimeTaskService, IDynamicApiController, ITransie #endregion #region Post + public List GetTasks() + { + var list= _repository.AsQueryable().ToList(); + return list; + } + /// /// 新建. diff --git a/visualdev/Tnb.Vengine/AppService/VmodelAppService.cs b/visualdev/Tnb.Vengine/AppService/VmodelAppService.cs index 2f1f71d9..de030730 100644 --- a/visualdev/Tnb.Vengine/AppService/VmodelAppService.cs +++ b/visualdev/Tnb.Vengine/AppService/VmodelAppService.cs @@ -4,7 +4,6 @@ ///////////////////////////////////////////////////////////////////////////////// using JNPF.Common.Configuration; -using JNPF.Systems.Entitys.Dto.Database; using JNPF; using Mapster; using Microsoft.AspNetCore.Mvc;