diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs
index 2867d1fa..7dab11fd 100644
--- a/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs
+++ b/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs
@@ -5,7 +5,10 @@ namespace Dlhis.Basic.Organization.Request;
public class GainfoMealPageRequest : PageDto
{
- public DateTimePeriod DateTimePeriod { get; set; }
+ ///
+ /// 查询日期,生效于离职人员IsLeave = true
+ ///
+ public DateTimePeriod SearchDateTimePeriod { get; set; }
///
/// 是否离职
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs
index 587c3fb2..a97b3a01 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs
@@ -34,17 +34,16 @@ public class GainfoMealService : IGainfoMealService
.LeftJoin((meal, gainfo) => meal.UserCode == gainfo.Code)
.LeftJoin((meal, gainfo, gainfoLeave) => meal.UserCode == gainfoLeave.Code)
.LeftJoin((meal, gainfo, gainfoLeave, dept1) => dept1.No == gainfo.DepartmentNo)
- .LeftJoin((meal, gainfo, gainfoLeave, dept1, dept2) => dept2.No == gainfo.DepartmentNo)
+ .LeftJoin((meal, gainfo, gainfoLeave, dept1, dept2) => dept2.No == gainfoLeave.DepartmentNo)
.WhereIF(request.Search.IsPresent(), (meal, gainfo, gainfoLeave, dept1, dept2) => meal.UserCode == request.Search
- || gainfo.Name.Contains(request.Search)
- || gainfoLeave.Name.Contains(request.Search))
+ || gainfo.Name == request.Search
+ || gainfoLeave.Name == request.Search)
.Where((meal, gainfo, gainfoLeave) => gainfo.Factory == tenantId || gainfoLeave.Factory == tenantId)
.WhereIF(request.IsLeave, (meal, gainfo, gainfoLeave) => SqlFunc.Subqueryable().Where(x => x.Code == meal.UserCode).Any())
+ .WhereIF(request.IsLeave && request.SearchDateTimePeriod.HasValue(), (meal, gainfo, gainfoLeave) => gainfoLeave.ResignationDate >= request.SearchDateTimePeriod.Start && gainfoLeave.ResignationDate <= request.SearchDateTimePeriod.End)
.Select((meal, gainfo, gainfoLeave, dept1, dept2) => new GainfoMealResponse
{
Balance = meal.Balance,
- // BalanceOfRecharge = meal.BalanceOfRecharge,
- // BalanceOfSubsidies = meal.BalanceOfSubsidies,
UserCode = meal.UserCode,
UserName = SqlFunc.IsNull(gainfo.Name, gainfoLeave.Name),
UserNo = SqlFunc.IsNull(gainfo.No, gainfoLeave.No),
@@ -56,7 +55,7 @@ public class GainfoMealService : IGainfoMealService
var userCodes = page.Data.Select(x => x.UserCode).ToList();
var summary = await _dbContext.Queryable()
.Where(x => userCodes.Contains(x.Code))
- .WhereIF(request.DateTimePeriod.HasValue(), x => x.Date >= request.DateTimePeriod.Start && x.Date <= request.DateTimePeriod.End)
+ .WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.Date >= request.SearchDateTimePeriod.Start && x.Date <= request.SearchDateTimePeriod.End)
.GroupBy(x => x.Code)
.Select(x => new
{