diff --git a/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs b/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs index 313aef9e..31cf7b1b 100644 --- a/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs +++ b/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs @@ -208,6 +208,9 @@ public class AppointmentService : IAppointmentService public async Task> GetRecordListAsync(string factory, string search, VisitorAppointmentDetailStatusEnumType? status, DateTime start, DateTime end) { + var now = DateTime.Now; + var currentDateTime = start.Date.AddHours(now.Hour).AddMinutes(now.Minute); + return await _dbContext.Queryable() .LeftJoin((x, ga) => ga.IdNo == x.IdNo) .Where(x => SqlFunc.Subqueryable() @@ -216,8 +219,8 @@ public class AppointmentService : IAppointmentService ) .Where(x => x.IsEnterDoorArea) .WhereIF(status.HasValue, x => x.DoorStatus == status) - .WhereIF(status.HasValue && status == VisitorAppointmentDetailStatusEnumType.Wait, x => x.DoorStart >= start && x.DoorStart <= end) - .WhereIF(status.HasValue && status == VisitorAppointmentDetailStatusEnumType.Arrived, x => x.DoorStart >= start && x.DoorStart <= end) + .WhereIF(status.HasValue && status == VisitorAppointmentDetailStatusEnumType.Wait, x => currentDateTime >= x.DoorStart && currentDateTime <= x.DoorEnd) + .WhereIF(status.HasValue && status == VisitorAppointmentDetailStatusEnumType.Arrived, x => currentDateTime >= x.DoorStart && currentDateTime <= x.DoorEnd) .WhereIF(!status.HasValue, x => x.DoorStart >= start && x.DoorEnd <= end) .WhereIF(search.IsPresent(), x => x.Name.Contains(search) || x.No == search || x.IdNo == search) .Select(x => new AppointmentDetailResponse