diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs index 2bfc0c79..b371413d 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs @@ -219,9 +219,15 @@ public class WorkGridService : IWorkGridService public async Task AssignAsync(WorkGridUserAssignRequest request) { var currentFactory = _currentUser.GetStringTenantId(); + var role = _currentUser.GetRole(); + var specific = (role is "admin" or "tenant-admin" or "WGZGLY") && request.WorkGridCode.HasValue; var currentUserCode = _currentUser.GetUserClaim(UserClaimConstants.JinkoCode); - var myWorkGrid = await _dbContext.Queryable().Where(x => x.LeaderUserCode == currentUserCode).SingleAsync(); + var myWorkGrid = await _dbContext.Queryable() + .WhereIF(specific, x => x.Code == request.WorkGridCode) + .WhereIF(specific == false, x => x.LeaderUserCode == currentUserCode) + .SingleAsync(); + myWorkGrid.ThrowIfNull("工作网格尚未配置,请联系管理员"); //检查配置的人员