From 36546d71c173df5317ca4012bc4a4499dc32f538 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 17 Apr 2024 17:49:32 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Request/DeviceTaskAssignmentRequest.cs | 18 +++++++++++++++++- .../Implements/DeviceTaskAssignmentService.cs | 5 ++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskAssignmentRequest.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskAssignmentRequest.cs index ba2a44a2..ed503508 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskAssignmentRequest.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskAssignmentRequest.cs @@ -1,10 +1,11 @@ using System.ComponentModel.DataAnnotations; using Dlhis.Entity.Device.Enums; +using Kurisu.Core.CustomClass; using Kurisu.Core.DataAccess.Dto; namespace Dlhis.ScheduledTask.TaskAssignment.Request; -public class DeviceTaskAssignmentRequest : PageDto +public class DeviceTaskAssignmentRequest : PageDto, IValidatableObject { /// /// 设备类型 DeviceTypeEnumType @@ -23,4 +24,19 @@ public class DeviceTaskAssignmentRequest : PageDto public List Status { get; set; } public string UserNo { get; set; } + + /// + /// 搜索范围 + /// + public DateTimePeriod SearchDateTimePeriod { get; set; } + + public IEnumerable Validate(ValidationContext validationContext) + { + if (SearchDateTimePeriod != null && SearchDateTimePeriod.End.HasValue) + { + SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1); + } + + yield break; + } } diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs index 1e8c4095..cbbd63da 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs @@ -28,9 +28,12 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService var page = await _dbContext.Queryable() .LeftJoin((deviceTask, ga) => deviceTask.UserNo == ga.No) .LeftJoin((deviceTask, ga, device) => deviceTask.DeviceUniqueNo == device.UniqueNo) + .WhereIF(request.Type.HasValue, (deviceTask, ga, device) => deviceTask.DeviceType == request.Type) + .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true && request.SearchDateTimePeriod?.End.HasValue == true, + deviceTask => deviceTask.CreateTime >= request.SearchDateTimePeriod.Start && deviceTask.CreateTime <= request.SearchDateTimePeriod.End + ) .WhereIF(request.TaskTypes.IsPresent(), deviceTask => request.TaskTypes.Contains(deviceTask.Type)) .WhereIF(request.Status.IsPresent(), deviceTask => request.Status.Contains(deviceTask.Status)) - .WhereIF(request.Type.HasValue, (deviceTask, ga, device) => deviceTask.DeviceType == request.Type) .WhereIF(request.UserNo.IsPresent(), deviceTask => deviceTask.UserNo == request.UserNo) .WhereIF(!request.Search.IsEmpty(), (deviceTask, ga, device) => ga.Name == request.Search