diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs index 8d5755c1..b7654eb1 100644 --- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.CustomClass; using Kurisu.Core.DataAccess.Dto; @@ -16,6 +17,11 @@ public class BalanceRecordPageDetailRequest : PageDto, IValidatableObject /// public List BusinessplaceCodes { get; set; } + /// + /// 餐次 ShiftEnumType + /// + [EnumDataType(typeof(ShiftEnumType))] + public ShiftEnumType? ShiftType { get; set; } public IEnumerable Validate(ValidationContext validationContext) { diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 6510f47b..7c2928ae 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -296,9 +296,10 @@ public class BalanceService : IBalanceService .LeftJoin((record, department, bplace) => record.BusinessPlaceCode == bplace.Code) .LeftJoin((record, department, bplace, gainfo) => record.UserNo == gainfo.No) .Where((record) => myCodes.Contains(record.BusinessPlaceCode)) - .Where((record) => record.Type == BalanceRecordTypeEnumType.Out) + .Where((record) => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDateTime >= request.SearchDateTimePeriod.Start) .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, record => record.CostDateTime <= request.SearchDateTimePeriod.End) + .WhereIF(request.ShiftType.HasValue, record => record.ShiftType == request.ShiftType) .WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search) .WhereIF(request.BusinessplaceCodes.IsPresent(), record => request.BusinessplaceCodes.Contains(record.BusinessPlaceCode)) .OrderBy(record => record.CostDateTime, OrderByType.Desc) @@ -549,7 +550,7 @@ public class BalanceService : IBalanceService .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) .LeftJoin((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code) .Where(record => record.Type == BalanceRecordTypeEnumType.Out) - .Where(record => record.Status == BalanceRecordStatusEnumType.Valid) + .Where(record => record.Status == BalanceRecordStatusEnumType.Valid) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start) .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, record => record.CostDate <= request.SearchDateTimePeriod.End) .WhereIF(request.ApplicationType.HasValue, record => record.ApplicationType == request.ApplicationType) diff --git a/Src/Dlhis.Sys/Identity/Services/Implements/UserService.cs b/Src/Dlhis.Sys/Identity/Services/Implements/UserService.cs index 9f683b82..2590c9e3 100644 --- a/Src/Dlhis.Sys/Identity/Services/Implements/UserService.cs +++ b/Src/Dlhis.Sys/Identity/Services/Implements/UserService.cs @@ -23,18 +23,18 @@ public class UserService : IUserService var page = await _dbContext.Queryable() .LeftJoin((x, ur) => x.Id == ur.UserId) .LeftJoin((x, ur, r) => ur.RoleId == r.Id) - .LeftJoin((x, ur, r,c) => x.Id == c.UserId && c.ClaimType == "preferred_username") - .WhereIF(request.Search.IsPresent(), x => x.UserName.Contains(request.Search) - || x.NormalizedUserName.Contains(request.Search) - || x.Email.Contains(request.Search) - || x.NormalizedEmail.Contains(request.Search) - || x.PhoneNumber.Contains(request.Search) + .LeftJoin((x, ur, r, c) => x.Id == c.UserId && c.ClaimType == "preferred_username") + .WhereIF(request.Search.IsPresent(), (x, ur, r, c) => x.UserName == request.Search + || x.Email == request.Search + || x.PhoneNumber == request.Search + || c.ClaimValue == request.Search ) - .Select((x, ur, r,c) => new UserResponse + .Select((x, ur, r, c) => new UserResponse { Id = x.Id, Role = r.Name, OperatorName = c.ClaimValue, + }, true) .ToPageListAsync(request);