From 8e14e625e862b5545608cbbee44b9f6eb6445453 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 1 Dec 2024 14:17:11 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=97=B6=E9=97=B4=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/AppointmentService.cs | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) 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();