From f91bedfa5c2dc12b1597a9225417ec4fe229f997 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 4 Dec 2024 15:16:54 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=87=8D=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/AutoConfirmAppointmentJob.cs | 12 ++++++++---- .../Jobs/AutoRemoveAppointmentJob.cs | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs b/Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs index 47fce6d1..096e251c 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs @@ -23,12 +23,17 @@ public class AutoConfirmAppointmentJob : BaseJob protected override async Task RunAsync(IServiceProvider serviceProvider) { var details = await DbContext.Queryable() - .Where(x => x.DoorStatus == VisitorAppointmentDetailStatusEnumType.Wait || x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Wait) + .Where(x => x.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Wait) .ToListAsync(); foreach (var detail in details) { - var areaCodes = GetValidAreaCodes(detail); + var areaCodes = GetValidAreaCodes(detail).ToList(); + if (!areaCodes.Any()) + { + continue; + } + var existsAreaCodes = await DbContext.Queryable().Where(x => areaCodes.Contains(x.CustomCode)).Select(x => x.CustomCode).ToListAsync(); //当前分配的设备组code @@ -53,7 +58,6 @@ public class AutoConfirmAppointmentJob : BaseJob Version = 0 }).ToList()); - if (detail.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Wait) { detail.WorkplaceStatus = VisitorAppointmentDetailStatusEnumType.Arrived; @@ -68,7 +72,7 @@ public class AutoConfirmAppointmentJob : BaseJob { var now = DateTime.Now; - if (detail.IsEnterWorkplace && now >= detail.WorkplaceStart) + if (detail.IsEnterWorkplace && detail.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Wait && now >= detail.WorkplaceStart) { foreach (var item in detail.ApplyWorkplaceAreas) { diff --git a/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs b/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs index 6e2e4b5d..6808af8e 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs @@ -76,12 +76,12 @@ public class AutoRemoveAppointmentJob : BaseJob { var now = DateTime.Now; - if (detail.IsEnterDoorArea && detail.DoorEnd <= now) + if (detail.IsEnterDoorArea && detail.DoorStatus == VisitorAppointmentDetailStatusEnumType.Arrived && detail.DoorEnd <= now) { yield return detail.ApplyDoorArea; } - if (detail.IsEnterWorkplace && detail.WorkplaceEnd <= now) + if (detail.IsEnterWorkplace && detail.WorkplaceStatus == VisitorAppointmentDetailStatusEnumType.Arrived && detail.WorkplaceEnd <= now) { foreach (var item in detail.ApplyWorkplaceAreas) {