using SqlSugar; using WMS.BZModels; using WMS.Info; using wms.sqlsugar.model.cp; using WMS.BZSqlSugar; using WMS.BZModels.Dto.CP.PushInfoDtos; namespace WMS.BZServices.CP { public class PushInfoService { private readonly Repository _pushinforepository; public PushInfoService(Repository pushinforepository) { _pushinforepository = pushinforepository; } public PagedInfo GetPageList(Pagination pagination, PushInfoQueryDto pushinfoQueryDto) { var predicate = Expressionable.Create(); if (pushinfoQueryDto.Type == FackbeekType.InterfaceType_HJ_1F_StockIn.GetHashCode()) { pushinfoQueryDto.Code = FackbeekType.InterfaceType_HJ_1F_StockIn.ToString(); } else if (pushinfoQueryDto.Type == FackbeekType.InterfaceType_HJ_2F_BackStockIn.GetHashCode()) { pushinfoQueryDto.Code = FackbeekType.InterfaceType_HJ_2F_BackStockIn.ToString(); } predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.KeyWord), m => m.DocsNo.Contains(pushinfoQueryDto.KeyWord) || m.RFIDBarCode.Contains(pushinfoQueryDto.KeyWord) || m.WareCellCode.Contains(pushinfoQueryDto.KeyWord) || m.MatCode.Contains(pushinfoQueryDto.KeyWord) || m.MatName.Contains(pushinfoQueryDto.KeyWord) || m.HWBarCode.Contains(pushinfoQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.DocsNo), m => m.DocsNo.Contains(pushinfoQueryDto.DocsNo)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.RFIDBarCode), m => m.RFIDBarCode.Contains(pushinfoQueryDto.RFIDBarCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.WareCellCode), m => m.WareCellCode.Contains(pushinfoQueryDto.WareCellCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.MatCode), m => m.MatCode.Contains(pushinfoQueryDto.MatCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.MatName), m => m.MatName.Contains(pushinfoQueryDto.MatName)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.HWBarCode), m => m.HWBarCode.Contains(pushinfoQueryDto.HWBarCode)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.Code), m => m.TypeCode.Contains(pushinfoQueryDto.Code)); predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.AddTimeFrom.HasValue, m => m.AddTime >= pushinfoQueryDto.AddTimeFrom); predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.AddTimeTo.HasValue, m => m.AddTime <= pushinfoQueryDto.AddTimeTo); predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.EndTimeBegin.HasValue, m => m.EditTime >= pushinfoQueryDto.EndTimeBegin); predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.EndTimeEnd.HasValue, m => m.EditTime <= pushinfoQueryDto.EndTimeEnd); var query = _pushinforepository.Queryable().Where(predicate.ToExpression()) .ToPage(pagination); return query; } } }