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 {