diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs index 6c05e6a8..d816a3b9 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs @@ -76,11 +76,21 @@ public class WorkGridService : IWorkGridService /// public async Task SaveAsync(List requests) { + var factory = _currentUser.GetStringTenantId(); + var insertGrids = new List(); var updateGrids = new List(); var leaderUserCodes = requests.Select(x => x.LeaderUserCode).Distinct().ToList(); - var existsUserCodes = await _dbContext.Queryable().Where(x => leaderUserCodes.Contains(x.Code)).Select(x => x.Code).ToListAsync(); + var existsUserInfos = await _dbContext.Queryable() + .Where(x => leaderUserCodes.Contains(x.Code)) + .Select(x => new { x.Code, x.Factory }) + .ToListAsync(); + + var excludeCodes = existsUserInfos.Where(x => x.Factory != factory).Select(x => x.Code).ToList(); + excludeCodes.ThrowIfExists($"工号:{excludeCodes.Join(",")}不属于当前厂区"); + + var existsUserCodes = existsUserInfos.Select(x => x.Code).ToList(); var notExistsUserCodes = leaderUserCodes.Except(existsUserCodes).ToList(); notExistsUserCodes.ThrowIfExists($"工号:{notExistsUserCodes.Join(",")}不存在");