diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs index 83873026..806a0689 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs @@ -324,12 +324,25 @@ public class WorkGridScheduleService : IWorkGridScheduleService workGridSchedule.ThrowIfNull("排班信息不存在或不可操作"); workGridSchedule.IsCancel.ThrowIfTrue("排班信息已被取消,请勿重复操作"); + + //获取班次的时间配置 + var timeSetting = await _dbContext.Queryable() + .Where(x => x.Type == workGridSchedule.PeriodType) + .Select(x => new { x.Start, x.Before }) + .SingleAsync(); - var start = workGridSchedule.Date.ToDateTime(TimeOnly.MinValue); + timeSetting.ThrowIfNull("工作网格时间尚未配置,无法操作"); + + var start = workGridSchedule.Date.ToDateTime(timeSetting.Start); 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(); + + //const string filterString = "{\"IsError\":true"; + + var exists = await _dbContext.Queryable() + .Where(x => x.UserUniqueNo == workGridSchedule.UserCode) + .Where(x => x.RaiseDateTime >= start && x.RaiseDateTime <= end) + .Where(x=>x.Type == DeviceUploadLogTypeEnumType.Attendance) + .AnyAsync(); exists.ThrowIfTrue("排班信息已存在打卡记录,请勿取消");