From 8bac9e0201a0123721493184f5dfe1e596270aa0 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 8 Jul 2025 16:53:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=A1=A5=E5=85=85=E6=A3=80=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/WorkGridScheduleService.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs index c610b8d9..3a69da2d 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs @@ -163,9 +163,18 @@ public class WorkGridScheduleService : IWorkGridScheduleService var workGridSchedule = await _dbContext.Queryable() .Where(x => x.Date < currentDate) .SingleAsync(x => x.Id == id); + workGridSchedule.ThrowIfNull("排班信息不存在或不可操作"); workGridSchedule.IsCancel.ThrowIfTrue("排班信息已被取消,请勿重复操作"); + var start = workGridSchedule.Date.ToDateTime(TimeOnly.MinValue); + var end = workGridSchedule.Date.ToDateTime(TimeOnly.MaxValue); + + var exists = await _dbContext.Queryable().Where(x => x.UserUniqueNo == workGridSchedule.UserCode) + .Where(x => x.RaiseDateTime >= start && x.RaiseDateTime <= end).AnyAsync(); + + exists.ThrowIfTrue("排班信息已存在打卡记录,请勿取消"); + await _workGridScheduleRepository.CancelAsync(id, reason); }