hwh
2024-07-15 fdabf96e523065218de594c25eb13da5f4eac852
Wms/WMS.BLL/BllCheckServer/StockCheckLogServer.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Model.ModelDto.BllCheckDto;
using SqlSugar;
using WMS.DAL;
@@ -12,7 +13,7 @@
namespace WMS.BLL.BllCheckServer
{
    public class StockCheckLogServer:DbHelper<BllStockCheckLog>,IStockCheckLogServer
    public class StockCheckLogServer : DbHelper<BllStockCheckLog>, IStockCheckLogServer
    {
        private static readonly SqlSugarScope Db = DataContext.Db;
        public StockCheckLogServer() : base(Db)
@@ -20,59 +21,50 @@
        }
        //获取盘点记录
        public List<StockCheckLogDto> GetStockCheckLogList(string crNo, string status, string palletNo, string boxNo, string skuNo, string skuName, string lotNo, int page, int limit, out int count)
        public async Task<List<StockCheckLogDto>> GetStockCheckLogList(string crNo, string status, string palletNo, string boxNo, string skuNo, string skuName, string lotNo, int page, int limit, RefAsync<int> count)
        {
            try
            {
                Expression<Func<BllStockCheckLog, bool>> item = Expressionable.Create<BllStockCheckLog>()
                    .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<SysUserInfor>((a, b) => a.CheckUserId == b.Id)
                    .LeftJoin<SysUserInfor>((a, b,c) => a.CreateUser == c.Id)
                    .LeftJoin<SysUserInfor>((a, b, c,d) => a.UpdateUser == 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,
            Expression<Func<BllStockCheckLog, bool>> item = Expressionable.Create<BllStockCheckLog>()
                .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 list = await GetAllWhereAsync(item)
                .LeftJoin<SysUserInfor>((a, b) => a.CheckUserId == b.Id)
                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
                .LeftJoin<SysUserInfor>((a, b, c, d) => a.UpdateUser == 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,
                    }).OrderByDescending(a=>a.CreateTime).ToOffsetPage(page, limit, ref total);
                count = total;
                    CreateUserName = c.RealName,
                    UpdateUserName = d.RealName,
                    CreateTime = a.CreateTime,
                    UpdateTime = a.UpdateTime,
                return list;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
                }).OrderByDescending(a => a.CreateTime).ToPageListAsync(page, limit, count);
            return list;
        }
        #region 数据归档