fix 使用datetime的searchDate

This commit is contained in:
2025-06-17 16:17:27 +08:00
parent 03f20bedc8
commit fac96a52a4
2 changed files with 19 additions and 9 deletions

View File

@@ -1,11 +1,20 @@
using System.ComponentModel.DataAnnotations;
using Kurisu.AspNetCore.DataAccess.Dto;
namespace Dlhis.ScheduledTask.DeviceUploadLog.Request;
public class UserAttendanceDataAnalysisPageRequest : PageDto
public class UserAttendanceDataAnalysisPageRequest : PageDto, IValidatableObject
{
/// <summary>
/// 查询日期
/// </summary>
public DateOnly Date { get; set; }
public DateTime SearchDate { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (SearchDate.Date > DateTime.Now.Date)
{
yield return new ValidationResult("查询日期不能大于今天", new[] { nameof(SearchDate) });
}
}
}

View File

@@ -7,7 +7,6 @@ using Dlhis.ScheduledTask.DeviceUploadLog.Response;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils.Extensions;
using Org.BouncyCastle.Asn1.X9;
using SqlSugar;
namespace Dlhis.ScheduledTask.DeviceUploadLog.Services.Implements;
@@ -50,9 +49,11 @@ public class UserAttendanceDataAnalysisService : IUserAttendanceDataAnalysisServ
public async Task<UserAttendanceDataAnalysisInfoResponse> GetPageAsync(UserAttendanceDataAnalysisPageRequest request)
{
var searchDate = DateOnly.FromDateTime(request.SearchDate);
//查询日期的时间范围
var searchStart = request.Date.ToDateTime(TimeOnly.MinValue);
var searchEnd = request.Date.ToDateTime(TimeOnly.MaxValue).AddSeconds(1);
var searchStart = searchDate.ToDateTime(TimeOnly.MinValue);
var searchEnd = searchDate.ToDateTime(TimeOnly.MaxValue).AddSeconds(1);
var page = await _dbContext.Queryable<UserAttendanceDataAnalysisEntity>()
.LeftJoin<GainfoEntity>((x, user) => x.UserCode == user.Code)
@@ -69,9 +70,9 @@ public class UserAttendanceDataAnalysisService : IUserAttendanceDataAnalysisServ
.ToPageListAsync(request);
var (shiftStartRange, shiftEndRange) = await GetShiftTimeRangesAsync(request.Date);
var (shiftStartRange, shiftEndRange) = await GetShiftTimeRangesAsync(searchDate);
if (await IsRestDayAsync(request.Date))
if (await IsRestDayAsync(searchDate))
{
foreach (var item in page.Data)
{
@@ -108,8 +109,8 @@ public class UserAttendanceDataAnalysisService : IUserAttendanceDataAnalysisServ
return new UserAttendanceDataAnalysisInfoResponse
{
ShiftTimes = new List<ShiftTimeRange>(2) { shiftStartRange, shiftEndRange },
LastAnalysisDateTime = request.Date < DateOnly.FromDateTime(DateTime.Now.Date)
? request.Date.ToDateTime(TimeOnly.MaxValue)
LastAnalysisDateTime = searchDate < DateOnly.FromDateTime(DateTime.Now.Date)
? searchDate.ToDateTime(TimeOnly.MaxValue)
: DateTime.Now,
Pagination = page
};