From e18d0b069788673a774d7bab9c71f98aafdc2d2e Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 17 Dec 2024 16:55:25 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/AutoRemoveAppointmentJob.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs b/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs index 6808af8e..4b2089e5 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs @@ -4,6 +4,7 @@ using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Visitor.Entity; using Dlhis.Entity.Visitor.Enums; using Dlhis.ScheduledTask.Attributes; +using Kurisu.AspNetCore.Utils.Extensions; namespace Dlhis.ScheduledTask.Jobs; @@ -21,14 +22,17 @@ public class AutoRemoveAppointmentJob : BaseJob /// protected override async Task RunAsync(IServiceProvider serviceProvider) { + var now = DateTime.Now; + var details = await DbContext.Queryable() - .Where(x => x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived || x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Arrived) + .Where(x => (x.IsEnterDoorArea && x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived) || + (x.IsEnterWorkplace && x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Arrived)) .ToListAsync(); foreach (var detail in details) { var areaCodes = GetValidAreaCodes(detail).ToList(); - if (!areaCodes.Any()) + if (areaCodes.IsEmpty()) { continue; } @@ -57,12 +61,12 @@ public class AutoRemoveAppointmentJob : BaseJob Version = 0 }).ToList()); - if (detail.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived) + if (detail.IsEnterDoorArea && detail.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived && detail.DoorEnd <= now) { detail.DoorStatus = VisitorAppointmentDetailStatusEnumType.Leave; } - if (detail.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Arrived) + if (detail.IsEnterWorkplace && detail.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Arrived && detail.WorkplaceEnd <= now) { detail.WorkplaceStatus = VisitorAppointmentDetailStatusEnumType.Leave; }