fix 时间范围
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using Dlhis.Entity.Device.Enums;
|
using Dlhis.Entity.Device.Enums;
|
||||||
|
using Kurisu.Core.CustomClass;
|
||||||
using Kurisu.Core.DataAccess.Dto;
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
|
||||||
namespace Dlhis.ScheduledTask.TaskAssignment.Request;
|
namespace Dlhis.ScheduledTask.TaskAssignment.Request;
|
||||||
|
|
||||||
public class DeviceTaskAssignmentRequest : PageDto
|
public class DeviceTaskAssignmentRequest : PageDto, IValidatableObject
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设备类型 DeviceTypeEnumType
|
/// 设备类型 DeviceTypeEnumType
|
||||||
@@ -23,4 +24,19 @@ public class DeviceTaskAssignmentRequest : PageDto
|
|||||||
public List<DeviceTaskStatusEnumType> Status { get; set; }
|
public List<DeviceTaskStatusEnumType> Status { get; set; }
|
||||||
|
|
||||||
public string UserNo { get; set; }
|
public string UserNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 搜索范围
|
||||||
|
/// </summary>
|
||||||
|
public DateTimePeriod SearchDateTimePeriod { get; set; }
|
||||||
|
|
||||||
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||||
|
{
|
||||||
|
if (SearchDateTimePeriod != null && SearchDateTimePeriod.End.HasValue)
|
||||||
|
{
|
||||||
|
SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,9 +28,12 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
|||||||
var page = await _dbContext.Queryable<DeviceTaskEntity>()
|
var page = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||||
.LeftJoin<GainfoEntity>((deviceTask, ga) => deviceTask.UserNo == ga.No)
|
.LeftJoin<GainfoEntity>((deviceTask, ga) => deviceTask.UserNo == ga.No)
|
||||||
.LeftJoin<DeviceEntity>((deviceTask, ga, device) => deviceTask.DeviceUniqueNo == device.UniqueNo)
|
.LeftJoin<DeviceEntity>((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.TaskTypes.IsPresent(), deviceTask => request.TaskTypes.Contains(deviceTask.Type))
|
||||||
.WhereIF(request.Status.IsPresent(), deviceTask => request.Status.Contains(deviceTask.Status))
|
.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.UserNo.IsPresent(), deviceTask => deviceTask.UserNo == request.UserNo)
|
||||||
.WhereIF(!request.Search.IsEmpty(), (deviceTask, ga, device) =>
|
.WhereIF(!request.Search.IsEmpty(), (deviceTask, ga, device) =>
|
||||||
ga.Name == request.Search
|
ga.Name == request.Search
|
||||||
|
|||||||
Reference in New Issue
Block a user