using Model.ModelDto.BllAsnDto; using SqlSugar; using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using WMS.DAL; using WMS.Entity.BllAsnEntity; using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IBLL.IBllAsnServer; namespace WMS.BLL.BllAsnServer { public class PalletUpShelfServer : DbHelper, IPalletUpShelfServer { private static readonly SqlSugarScope Db = DataContext.Db; public PalletUpShelfServer() : base(Db) { } public async Task> GetPalletUpShelfList(string traceNo, string taskNo, string palletNo, string skuNo, string skuName, string lotNo, string status, int page, int limit, RefAsync count) { Expression> item = Expressionable.Create() .AndIF(!string.IsNullOrWhiteSpace(traceNo), it => it.TraceNo.Contains(traceNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(taskNo), it => it.TaskNo.Contains(taskNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(palletNo), it => it.PalletNo.Contains(palletNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(skuNo), it => it.SkuNo.Contains(skuNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(skuName), it => it.SkuName.Contains(skuName.Trim())) .AndIF(!string.IsNullOrWhiteSpace(lotNo), it => it.LotNo.Contains(lotNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(status), it => it.Status == status) .And(it => it.IsDel == "0") .ToExpression();//注意 这一句 不能少 var list = await Db.Queryable().Where(item) .LeftJoin((a, b) => a.CreateUser == b.Id) .LeftJoin((a, b, c) => a.UpdateUser == c.Id) .LeftJoin((a,b,c,d)=> a.WareHouseNo == d.WareHouseNo) .LeftJoin((a,b,c,d,e) => a.RoadwayNo == e.RoadwayNo) .LeftJoin((a,b,c,d,e,f) => a.AreaNo == f.AreaNo) .Select((a, b,c,d,e,f) => new PalletUpShelfDto { Id = a.Id, TraceNo = a.TraceNo, TaskNo = a.TaskNo, PalletNo = a.PalletNo, SkuNo = a.SkuNo, SkuName = a.SkuName, LotNo = a.LotNo, Status = a.Status, WareHouseNo = a.WareHouseNo, WareHouseName = d.WareHouseName, RoadwayNo = a.RoadwayNo, RoadwayName = e.RoadwayName, AreaNo = a.AreaNo, AreaName = f.AreaName, LocatNo = a.LocatNo, CreateTime = a.CreateTime, CreateUserName = b.RealName, UpdateTime = a.UpdateTime, UpdateUserName = c.RealName, }).OrderByDescending(a => a.CreateTime).ToOffsetPageAsync(page, limit, count); return list; } } }