diff --git a/Src/Dlhis.External/Appointment/Services/Implements/AppointmentService.cs b/Src/Dlhis.External/Appointment/Services/Implements/AppointmentService.cs index 556bfdfa..7b0914f7 100644 --- a/Src/Dlhis.External/Appointment/Services/Implements/AppointmentService.cs +++ b/Src/Dlhis.External/Appointment/Services/Implements/AppointmentService.cs @@ -43,6 +43,14 @@ public class AppointmentService : IAppointmentService await _dbContext.InsertAsync(mst); var invalids = new[] { GainfoUserTypeEnumType.Normal, GainfoUserTypeEnumType.SecurityWhite }; + + var idNos = request.Items.Where(x => x.IsEnterDoorArea).Select(x => x.IdNo).Distinct().ToList(); + var errors = await _dbContext.Queryable().Where(x => idNos.Contains(x.Code) || idNos.Contains(x.Code)) + .Where(x => invalids.Contains(x.Type)) + .Select(x => x.Code).ToListAsync(); + + errors.ThrowIfExists($"内部人员无法发起门岗预约({errors.Join(",")})"); + foreach (var item in request.Items) { if (item.IsEnterDoorArea && areas.Where(x => x.Type == AppointmentAreaEnumType.Door)