diff --git a/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs b/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs index 124ad0a3..e1327149 100644 --- a/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs +++ b/Src/Dlhis.Basic/Appointment/Services/Implements/AppointmentService.cs @@ -250,16 +250,14 @@ public class AppointmentService : IAppointmentService public async Task GetSummaryAsync(string factory, DateTime start, DateTime end) { var total = await _dbContext.Queryable() - .Where(x => x.IsEnterDoorArea && ((x.DoorStart >= start && x.DoorStart <= end) || (x.DoorEnd >= start && x.DoorEnd <= end)) - //|| (x.IsEnterWorkplace && ((x.WorkplaceStart >= start && x.WorkplaceStart <= end) || (x.WorkplaceEnd >= start && x.WorkplaceEnd <= end))) - ) + .Where(x => x.IsEnterDoorArea && SqlFunc.DateIsSame(x.DoorStart, start)) + //|| (x.IsEnterWorkplace && ((x.WorkplaceStart >= start && x.WorkplaceStart <= end) || (x.WorkplaceEnd >= start && x.WorkplaceEnd <= end))) .Where(x => SqlFunc.Subqueryable().Where(p => p.No == x.No).Where(p => p.Factory == factory).Any()) .CountAsync(); var @in = await _dbContext.Queryable() - .Where(x => x.IsEnterDoorArea && ((x.DoorStart >= start && x.DoorStart <= end) || (x.DoorEnd >= start && x.DoorEnd <= end)) - // || (x.IsEnterWorkplace && ((x.WorkplaceStart >= start && x.WorkplaceStart <= end) || (x.WorkplaceEnd >= start && x.WorkplaceEnd <= end))) - ) + .Where(x => x.IsEnterDoorArea && SqlFunc.DateIsSame(x.DoorStart, start)) + // || (x.IsEnterWorkplace && ((x.WorkplaceStart >= start && x.WorkplaceStart <= end) || (x.WorkplaceEnd >= start && x.WorkplaceEnd <= end))) .Where(x => (x.IsEnterDoorArea && x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived) //|| (x.IsEnterWorkplace && x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Arrived) ) @@ -267,9 +265,8 @@ public class AppointmentService : IAppointmentService .CountAsync(); var notIn = await _dbContext.Queryable() - .Where(x => x.IsEnterDoorArea && ((x.DoorStart >= start && x.DoorStart <= end) || (x.DoorEnd >= start && x.DoorEnd <= end)) - //|| (x.IsEnterWorkplace && ((x.WorkplaceStart >= start && x.WorkplaceStart <= end) || (x.WorkplaceEnd >= start && x.WorkplaceEnd <= end))) - ) + .Where(x => x.IsEnterDoorArea && SqlFunc.DateIsSame(x.DoorStart, start)) + //|| (x.IsEnterWorkplace && ((x.WorkplaceStart >= start && x.WorkplaceStart <= end) || (x.WorkplaceEnd >= start && x.WorkplaceEnd <= end))) .Where(x => (x.IsEnterDoorArea && x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Wait) //|| (x.IsEnterWorkplace && x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Wait) ) @@ -277,9 +274,7 @@ public class AppointmentService : IAppointmentService .CountAsync(); var leave = await _dbContext.Queryable() - .Where(x => (x.IsEnterDoorArea && x.DoorEnd >= start && x.DoorEnd <= end) || - (x.IsEnterWorkplace && x.WorkplaceEnd >= start && x.WorkplaceEnd <= end) - ) + .Where(x => x.IsEnterDoorArea && SqlFunc.DateIsSame(x.DoorEnd, start)) .Where(x => (x.IsEnterDoorArea && x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Leave) //|| (x.IsEnterWorkplace && x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Leave) ) @@ -287,12 +282,7 @@ public class AppointmentService : IAppointmentService .CountAsync(); var notLeave = await _dbContext.Queryable() - .Where(x => (x.IsEnterDoorArea && x.DoorEnd >= start && x.DoorEnd <= end) || - (x.IsEnterWorkplace && x.WorkplaceEnd >= start && x.WorkplaceEnd <= end) - ) - .Where(x => (x.IsEnterDoorArea && x.DoorStatus != VisitorAppointmentDetailStatusEnumType.Leave) - // || (x.IsEnterWorkplace && x.WorkplaceStatus != VisitorAppointmentDetailStatusEnumType.Leave) - ) + .Where(x => x.IsEnterDoorArea && SqlFunc.DateIsSame(x.DoorEnd, start) && x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived) .Where(x => SqlFunc.Subqueryable().Where(p => p.No == x.No).Where(p => p.Factory == factory).Any()) .CountAsync();