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)