diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs index aa31a2f6..cbfda47c 100644 --- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs @@ -20,10 +20,14 @@ public class BalanceRecordPageDetailRequest : PageDto, IValidatableObject /// /// 餐次 ShiftEnumType /// - [EnumDataType(typeof(ShiftEnumType))] - public ShiftEnumType? ShiftType { get; set; } + public List ShiftTypes { get; set; } + + /// + /// 餐次 ShiftEnumType + /// + [EnumDataType(typeof(ShiftEnumType))] + public ShiftEnumType? ShiftType { get; set; } - public IEnumerable Validate(ValidationContext validationContext) { if (SearchDateTimePeriod?.End != null) @@ -31,6 +35,13 @@ public class BalanceRecordPageDetailRequest : PageDto, IValidatableObject SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1); } + if (ShiftType.HasValue) + { + ShiftTypes ??= new List(); + ShiftTypes.Add(ShiftType); + ShiftTypes = ShiftTypes.Distinct().ToList(); + } + yield break; } -} +} \ No newline at end of file diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 6e81c8b6..9fabbcd8 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -304,7 +304,7 @@ public class BalanceService : IBalanceService .WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .Where(record => myCodes.Contains(record.BusinessPlaceCode)) - .WhereIF(request.ShiftType.HasValue, record => record.ShiftType == request.ShiftType) + .WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType)) .WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search); var page = await queryable @@ -368,7 +368,7 @@ public class BalanceService : IBalanceService .WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .Where(record => myCodes.Contains(record.BusinessPlaceCode)) - .WhereIF(request.ShiftType.HasValue, record => record.ShiftType == request.ShiftType) + .WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType)) .WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search); var rows = await queryable