using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Text; using Model.ModelDto.BllCheckDto; using SqlSugar; using WMS.DAL; using WMS.Entity.BllCheckEntity; using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IBLL.IBllCheckServer; namespace WMS.BLL.BllCheckServer { public class StockCheckLogServer:DbHelper,IStockCheckLogServer { private static readonly SqlSugarScope Db = DataContext.Db; public StockCheckLogServer() : base(Db) { } //获取盘点记录 public List GetStockCheckLogList(string crNo, string status, string palletNo, string boxNo, string skuNo, string skuName, string lotNo, int page, int limit, out int count) { try { Expression> item = Expressionable.Create() .AndIF(!string.IsNullOrWhiteSpace(crNo), m => m.CRNo.Contains(crNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(status), m => m.CheckResult == int.Parse(status)) .AndIF(!string.IsNullOrWhiteSpace(palletNo), m => m.PalletNo.Contains(palletNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(boxNo), m => m.BoxNo.Contains(boxNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(skuNo), m => m.SkuNo.Contains(skuName.Trim())) .AndIF(!string.IsNullOrWhiteSpace(skuName), m => m.SkuName.Contains(lotNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(lotNo), m => m.LotNo.Contains(lotNo.Trim())) .And(m => m.IsDel == "0") .ToExpression();//注意 这一句 不能少 var total = 0; var list = GetAllWhereAsync(item) .LeftJoin((a, b) => a.CheckUserId == b.Id) .LeftJoin((a, b,c) => a.CreateUser == c.Id) .LeftJoin((a, b, c,d) => a.CreateUser == d.Id) .Select((a, b, c,d) => new StockCheckLogDto() { Id = a.Id, CrNo = a.CRNo, PalletNo = a.PalletNo, BoxNo = a.BoxNo, BoxNo2 = a.BoxNo2, BoxNo3 = a.BoxNo3, Qty = a.Qty, RealQty = a.RealQty, CheckDate = a.CheckDate, CheckResult = a.CheckResult, CheckUserName = b.RealName, SkuNo = a.SkuNo, SkuName = a.SkuName, Standard = a.Standard, LotNo = a.LotNo, LotText = a.LotText, SupplierLot = a.SupplierLot, CreateUserName = c.RealName, UpdateUserName = d.RealName, CreateTime = a.CreateTime, UpdateTime = a.UpdateTime, }).OrderByDescending(a=>a.CreateTime).ToOffsetPage(page, limit, ref total); count = total; return list; } catch (Exception e) { throw new Exception(e.Message); } } } }