using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using wms.sqlsugar.model.sx; using WMS.BZModels; using WMS.BZModels.Dto.SX.BillPboxruleDtos; using WMS.BZSqlSugar; using WMS.Info; using WMS.Util; namespace WMS.BZServices.SX { public class BillPboxruleService { private readonly Repository _billPBoxruleRepository; public BillPboxruleService(Repository billPBoxruleRepository) { _billPBoxruleRepository = billPBoxruleRepository; } public PagedInfo GetPageList(Pagination pagination, BillPboxruleQueryDto billPBoxruleQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(billPBoxruleQueryDto?.DocsNo), m => m.DocsNo.Contains(billPBoxruleQueryDto.DocsNo)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billPBoxruleQueryDto?.KeyWord), m => m.DocsNo.Contains(billPBoxruleQueryDto.KeyWord) || m.SkuCode.Contains(billPBoxruleQueryDto.KeyWord) || m.PBoxCode.Contains(billPBoxruleQueryDto.KeyWord) ); predicate = predicate.AndIF(!string.IsNullOrEmpty(billPBoxruleQueryDto?.PBoxCode), m => m.PBoxCode.Contains(billPBoxruleQueryDto.PBoxCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billPBoxruleQueryDto?.TrayCode), m => m.TrayCode.Contains(billPBoxruleQueryDto.TrayCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(billPBoxruleQueryDto?.SkuCode), m => m.SkuCode.Contains(billPBoxruleQueryDto.SkuCode)); predicate = predicate.AndIF(billPBoxruleQueryDto!=null && billPBoxruleQueryDto.Torsion24Qty.HasValue, m => m.Torsion24Qty.ToString().Contains(billPBoxruleQueryDto.Torsion24Qty.ToString())); predicate = predicate.AndIF(billPBoxruleQueryDto != null && billPBoxruleQueryDto.Torsion48Qty.HasValue, m => m.Torsion48Qty.ToString().Contains(billPBoxruleQueryDto.Torsion48Qty.ToString())); predicate = predicate.AndIF(billPBoxruleQueryDto != null && billPBoxruleQueryDto.Torsion72Qty.HasValue, m => m.Torsion72Qty.ToString().Contains(billPBoxruleQueryDto.Torsion72Qty.ToString())); predicate = predicate.AndIF(billPBoxruleQueryDto != null && billPBoxruleQueryDto.ZXStateCode.HasValue, m => m.ZXStateCode.Equals(billPBoxruleQueryDto.ZXStateCode)); var list = _billPBoxruleRepository.Queryable().Where(predicate.ToExpression()) .ToPage(pagination); return list; } } }