fix 查询和list数据展示

This commit is contained in:
2024-11-12 13:49:41 +08:00
parent a3da812cde
commit 1503784f50
3 changed files with 86 additions and 9 deletions

View File

@@ -1,7 +1,21 @@
using System.ComponentModel.DataAnnotations;
using Kurisu.AspNetCore.CustomClass;
using Kurisu.AspNetCore.DataAccess.Dto;
namespace Dlhis.Canteen.EMealVoucher.Request;
public class EMealVoucherPageRequest : PageDto
public class EMealVoucherPageRequest : PageDto, IValidatableObject
{
public DateTimePeriod SearchDateTimePeriod { get; set; }
/// <inheritdoc />
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (SearchDateTimePeriod.HasValue())
{
SearchDateTimePeriod.End = SearchDateTimePeriod.Start!.Value.AddDays(1).AddSeconds(-1);
}
yield break;
}
}

View File

@@ -1,19 +1,77 @@
using Dlhis.Entity.Canteen.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
using Mapster.Utils;
using Newtonsoft.Json;
namespace Dlhis.Canteen.EMealVoucher.Response;
public class EMealVoucherPageResponse
{
/// <summary>
/// OA流程号
/// </summary>
public string No { get; set; }
/// <summary>
/// 标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 申请人工号
/// </summary>
public string Code { get; set; }
/// <summary>
/// 申请人手机号
/// </summary>
public string Phone { get; set; }
public List<string> Factories { get; set; }
public DateTime Date { get; set; }
public string CostId { get; set; }
public string Source { get; set; }
public string Reason { get; set; }
public List<ShiftEnumType> Shifts { get; set; }
[JsonIgnore]
public string CurrentFactories { get; set; }
/// <summary>
/// 可使用的厂区编码
/// </summary>
public List<string> Factories => CurrentFactories.ToObject<List<string>>();
/// <summary>
/// 申请时间
/// </summary>
public DateTime Date { get; set; }
/// <summary>
/// 成本日期
/// </summary>
public string CostId { get; set; }
/// <summary>
/// 来源
/// </summary>
public string Source { get; set; }
/// <summary>
/// 申请事由
/// </summary>
public string Reason { get; set; }
[JsonIgnore]
public string CurrentShifts { get; set; }
/// <summary>
/// 使用餐次
/// </summary>
public List<string> Shifts
{
get
{
var a = CurrentShifts.ToObject<List<int>>().Select(x => ((ShiftEnumType)(x * 10))).ToList();
return a.Select(x=>x.GetDescription()).ToList();
}
}
/// <summary>
/// 消费券明细
/// </summary>
public List<EMealVoucherDetailResponse> Details { get; set; }
}

View File

@@ -32,6 +32,10 @@ public class EMealVoucherService : IEMealVoucherService
public async Task<Pagination<EMealVoucherPageResponse>> GetPageAsync(EMealVoucherPageRequest request)
{
return await _dbContext.Queryable<EMealVoucherEntity>()
.WhereIF(request.Search.IsPresent(), x => x.No == request.Search ||
x.Code == request.Search ||
x.Title.Contains(request.Search))
.WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.Date >= request.SearchDateTimePeriod.Start && x.Date <= request.SearchDateTimePeriod.End)
.OrderBy(x => x.Date, OrderByType.Desc)
.Select(x => new EMealVoucherPageResponse
{
@@ -39,12 +43,12 @@ public class EMealVoucherService : IEMealVoucherService
Title = x.Title,
Code = x.Code,
Phone = x.Phone,
Factories = x.Factories,
CurrentFactories = x.Factories.ToString(),
Date = x.Date,
CostId = x.CostId,
Source = x.Source,
Reason = x.Reason,
Shifts = x.Shifts,
CurrentShifts = x.Shifts.ToString(),
Details = SqlFunc.Subqueryable<EMealVoucherDetailEntity>().Where(p => p.No == x.No).ToList(p => new EMealVoucherDetailResponse
{
Id = p.Id,
@@ -62,6 +66,7 @@ public class EMealVoucherService : IEMealVoucherService
public async Task<Pagination<EMealVoucherMyPageResponse>> GetMyEMealVoucherPageAsync(EMealVoucherPageRequest request)
{
var code = _currentUser.GetUserClaim("jinko-code");
return await _dbContext.Queryable<EMealVoucherEntity>()
.Where(x => x.Code == code)
.OrderBy(x => x.Id, OrderByType.Desc)