diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs index b371413d..41286d8f 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs @@ -256,9 +256,14 @@ public class WorkGridService : IWorkGridService /// public async Task RemoveAsync(WorkGridUserRemoveRequest request) { + 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(); - myWorkGrid.ThrowIfNull("工作网格尚未配置,请联系管理员"); + + var myWorkGrid = await _dbContext.Queryable() + .WhereIF(specific, x => x.Code == request.WorkGridCode) + .WhereIF(specific == false, x => x.LeaderUserCode == currentUserCode) + .SingleAsync(); var workGridUsers = await _dbContext.Queryable() .Where(x => x.WorkGridCode == myWorkGrid.Code)