diff --git a/Src/Dlhis.Canteen/EMealVoucher/Request/EMealVoucherPageRequest.cs b/Src/Dlhis.Canteen/EMealVoucher/Request/EMealVoucherPageRequest.cs
index d23ddad0..6dbcde84 100644
--- a/Src/Dlhis.Canteen/EMealVoucher/Request/EMealVoucherPageRequest.cs
+++ b/Src/Dlhis.Canteen/EMealVoucher/Request/EMealVoucherPageRequest.cs
@@ -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; }
+
+ ///
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ if (SearchDateTimePeriod.HasValue())
+ {
+ SearchDateTimePeriod.End = SearchDateTimePeriod.Start!.Value.AddDays(1).AddSeconds(-1);
+ }
+
+ yield break;
+ }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Canteen/EMealVoucher/Response/EMealVoucherPageResponse.cs b/Src/Dlhis.Canteen/EMealVoucher/Response/EMealVoucherPageResponse.cs
index 5fa5290d..0cd8428d 100644
--- a/Src/Dlhis.Canteen/EMealVoucher/Response/EMealVoucherPageResponse.cs
+++ b/Src/Dlhis.Canteen/EMealVoucher/Response/EMealVoucherPageResponse.cs
@@ -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
{
+ ///
+ /// OA流程号
+ ///
public string No { get; set; }
+
+ ///
+ /// 标题
+ ///
public string Title { get; set; }
+
+ ///
+ /// 申请人工号
+ ///
public string Code { get; set; }
+
+ ///
+ /// 申请人手机号
+ ///
public string Phone { get; set; }
- public List 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 Shifts { get; set; }
+ [JsonIgnore]
+ public string CurrentFactories { get; set; }
+
+ ///
+ /// 可使用的厂区编码
+ ///
+ public List Factories => CurrentFactories.ToObject>();
+
+ ///
+ /// 申请时间
+ ///
+ public DateTime Date { get; set; }
+
+ ///
+ /// 成本日期
+ ///
+ public string CostId { get; set; }
+
+ ///
+ /// 来源
+ ///
+ public string Source { get; set; }
+
+ ///
+ /// 申请事由
+ ///
+ public string Reason { get; set; }
+
+ [JsonIgnore]
+ public string CurrentShifts { get; set; }
+
+ ///
+ /// 使用餐次
+ ///
+ public List Shifts
+ {
+ get
+ {
+ var a = CurrentShifts.ToObject>().Select(x => ((ShiftEnumType)(x * 10))).ToList();
+ return a.Select(x=>x.GetDescription()).ToList();
+ }
+ }
+
+ ///
+ /// 消费券明细
+ ///
public List Details { get; set; }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Canteen/EMealVoucher/Services/Implements/EMealVoucherService.cs b/Src/Dlhis.Canteen/EMealVoucher/Services/Implements/EMealVoucherService.cs
index a429dfd1..466e2e5d 100644
--- a/Src/Dlhis.Canteen/EMealVoucher/Services/Implements/EMealVoucherService.cs
+++ b/Src/Dlhis.Canteen/EMealVoucher/Services/Implements/EMealVoucherService.cs
@@ -32,6 +32,10 @@ public class EMealVoucherService : IEMealVoucherService
public async Task> GetPageAsync(EMealVoucherPageRequest request)
{
return await _dbContext.Queryable()
+ .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().Where(p => p.No == x.No).ToList(p => new EMealVoucherDetailResponse
{
Id = p.Id,
@@ -62,6 +66,7 @@ public class EMealVoucherService : IEMealVoucherService
public async Task> GetMyEMealVoucherPageAsync(EMealVoucherPageRequest request)
{
var code = _currentUser.GetUserClaim("jinko-code");
+
return await _dbContext.Queryable()
.Where(x => x.Code == code)
.OrderBy(x => x.Id, OrderByType.Desc)