From fdabf96e523065218de594c25eb13da5f4eac852 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期一, 15 七月 2024 08:09:35 +0800
Subject: [PATCH] 盘点

---
 Wms/WMS.BLL/BllCheckServer/StockCheckLogServer.cs              |   94 +++----
 Wms/WMS.BLL/LogServer/TaskServer.cs                            |   11 
 Wms/WMS.BLL/BllCheckServer/StockFreectSetve.cs                 |  185 ++++-----------
 Wms/WMS.IBLL/ILogServer/ITaskServer.cs                         |    4 
 Wms/Wms/Controllers/BllAsnController.cs                        |    5 
 Wms/WMS.BLL/LogServer/OperationCrServer.cs                     |   11 
 Wms/Wms/Controllers/BllCheckController.cs                      |   40 +-
 Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs                  |    5 
 Wms/WMS.IBLL/IBllCheckServer/IWarehouseOutsidePalletsServer.cs |    6 
 Wms/WMS.IBLL/IBllCheckServer/IStockCheckLogServer.cs           |    8 
 Wms/WMS.IBLL/IBllCheckServer/IStockFreectSetve.cs              |    9 
 Wms/Wms/Controllers/BllSoController.cs                         |    7 
 Wms/WMS.BLL/BllCheckServer/WarehouseOutsidePalletsServer.cs    |  310 +++++++++++--------------
 13 files changed, 290 insertions(+), 405 deletions(-)

diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckLogServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckLogServer.cs
index 13d61d0..16896bb 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckLogServer.cs
+++ b/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 鏁版嵁褰掓。
diff --git a/Wms/WMS.BLL/BllCheckServer/StockFreectSetve.cs b/Wms/WMS.BLL/BllCheckServer/StockFreectSetve.cs
index 6e62780..dea5d04 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockFreectSetve.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockFreectSetve.cs
@@ -5,6 +5,8 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Threading.Tasks;
+using Utility;
 using WMS.DAL;
 using WMS.Entity.BllCheckEntity;
 using WMS.Entity.Context;
@@ -23,20 +25,12 @@
 
         #region 鍐荤粨\瑙e喕
 
-        public List<DataStock> ByTypeGetDataStockType(string SkuNo, int type)
+        public async Task<List<DataStock>> ByTypeGetDataStockType(string SkuNo, int type)
         {
-            try
-            {
-                var list = Db.Queryable<DataStock>().Where(a => a.IsDel == "0" && a.SkuNo != "100099" && type == 1 ? (a.Qty - a.LockQty - a.FrozenQty) > 0 : type == 2 ? a.FrozenQty > 0 : a.Id < 0).ToList();
-                //var sku = Db.Queryable<SysMaterials>().WhereIF(!string.IsNullOrWhiteSpace(SkuNo), a => a.SkuNo.Contains(SkuNo)).Where(a => list.Contains(a.SkuNo)).ToList();
+            var list = await Db.Queryable<DataStock>().Where(a => a.IsDel == "0" && a.SkuNo != "100099" && type == 1 ? (a.Qty - a.LockQty - a.FrozenQty) > 0 : type == 2 ? a.FrozenQty > 0 : a.Id < 0).ToListAsync();
+            //var sku = Db.Queryable<SysMaterials>().WhereIF(!string.IsNullOrWhiteSpace(SkuNo), a => a.SkuNo.Contains(SkuNo)).Where(a => list.Contains(a.SkuNo)).ToList();
 
-                return list;
-            }
-            catch (Exception ex)
-            {
-
-                throw ex;
-            }
+            return list;
         }
 
         /// <summary>
@@ -44,59 +38,23 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public List<FreezeUnfreezeInfoDto> GetDataFreezeList(FreezeUnfreezeInfoDto model)
+        public async Task<List<FreezeUnfreezeInfoDto>> GetDataFreezeList(FreezeUnfreezeInfoDto model)
         {
-            try
-            {
-                string str = "select info.SkuNo,info.SkuName,info.LotNo,info.LotText,info.SupplierLot,info.Qty,info.FrozenQty,info.Demo,info.status,info.Standard,info.Type,info.CreateTime,users.UserName from DataFreezeUnfreezeInfo info left join SysUserInfor users on info.CreateUser = users.Id where info.IsDel = '0' and users.IsDel = '0' and info.Status = 1";
-                #region 楠岃瘉鏉′欢
-                //楠岃瘉鐗╂枡鍙锋槸鍚︿负绌�
-                if (!string.IsNullOrWhiteSpace(model.SkuNo))
-                {
-                    str += $" and info.SkuNo like '%{model.SkuNo}%'";
-                }
-                //楠岃瘉鐗╂枡鍚嶇О鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.SkuName))
-                {
-                    str += $" and info.SkuName like '%{model.SkuName}%'";
-                }
-                //楠岃瘉鎵规鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.LotNo))
-                {
-                    str += $" and info.LotNo like '%{model.LotNo}%'";
-                }
-                // 楠岃瘉绫诲瀷鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.Type))
-                {
-                    str += $" and info.Type = '{model.Type}'";
-                }
-                // 楠岃瘉鍘熷洜鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.Demo))
-                {
-                    str += $" and info.Demo = '{model.Demo}'";
-                }
-                //楠岃瘉缁撴潫鏃堕棿鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.StartTime))
-                {
-                    str += $" and info.CreateTime < '{model.StartTime}'";
-                }
-                //楠岃瘉缁撴潫鏃堕棿鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.EndTime))
-                {
-                    model.EndTime = (DateTime.Parse(model.EndTime).AddDays(1)).ToString();
-                    str += $" and info.CreateTime < '{model.EndTime}'";
-                }
-                #endregion
-
-                List<FreezeUnfreezeInfoDto> list = Db.Ado.SqlQuery<FreezeUnfreezeInfoDto>(str);
-                return list;
-
-            }
-            catch (Exception ex)
-            {
-
-                throw ex;
-            }
+            return await Db.Queryable<DataFreezeUnfreezeInfo>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .Where(a => a.IsDel == "0" && a.Status == 1)
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), a => a.SkuNo.Contains(model.SkuNo))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), a => a.SkuName.Contains(model.SkuName))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), a => a.LotNo.Contains(model.LotNo))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.Type), a => a.Type == model.Type)
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.Demo), a => a.Demo == model.Demo)
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.StartTime), a => SqlFunc.GreaterThanOrEqual(a.CreateTime, model.StartTime))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.EndTime), a => SqlFunc.LessThanOrEqual(a.CreateTime, model.EndTime))
+                           .Select<FreezeUnfreezeInfoDto>((a, b) => new FreezeUnfreezeInfoDto()
+                           {
+                               UserName = b.RealName
+                           }, true)
+                           .ToListAsync();
         }
 
         /// <summary>
@@ -104,59 +62,23 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public List<FreezeUnfreezeInfoDto> GetDataUnFreezeList(FreezeUnfreezeInfoDto model)
+        public async Task<List<FreezeUnfreezeInfoDto>> GetDataUnFreezeList(FreezeUnfreezeInfoDto model)
         {
-            try
-            {
-                string str = "select info.SkuNo,info.SkuName,info.LotNo,info.LotText,info.SupplierLot,info.Qty,info.FrozenQty,info.Demo,info.status,info.Standard,info.Type,info.CreateTime,users.UserName from DataFreezeUnfreezeInfo info left join SysUserInfor users on info.CreateUser = users.Id where info.IsDel = '0' and users.IsDel = '0' and info.Status = 2";
-
-                #region 楠岃瘉鏉′欢
-                //楠岃瘉鐗╂枡鍙锋槸鍚︿负绌�
-                if (!string.IsNullOrWhiteSpace(model.SkuNo))
-                {
-                    str += $" and info.SkuNo like '%{model.SkuNo}%'";
-                }
-                //楠岃瘉鐗╂枡鍚嶇О鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.SkuName))
-                {
-                    str += $" and info.SkuName like '%{model.SkuName}%'";
-                }
-                //楠岃瘉鎵规鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.LotNo))
-                {
-                    str += $" and info.LotNo like '%{model.LotNo}%'";
-                }
-                // 楠岃瘉绫诲瀷鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.Type))
-                {
-                    str += $" and info.Type = '{model.Type}'";
-                }
-                // 楠岃瘉鍘熷洜鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.Demo))
-                {
-                    str += $" and info.Demo = '{model.Demo}'";
-                }
-                //楠岃瘉缁撴潫鏃堕棿鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.StartTime))
-                {
-                    str += $" and info.CreateTime < '{model.StartTime}'";
-                }
-                //楠岃瘉缁撴潫鏃堕棿鏄惁涓虹┖
-                if (!string.IsNullOrWhiteSpace(model.EndTime))
-                {
-                    model.EndTime = (DateTime.Parse(model.EndTime).AddDays(1)).ToString();
-                    str += $" and info.CreateTime < '{model.EndTime}'";
-                }
-                #endregion
-
-                var list = Db.Ado.SqlQuery<FreezeUnfreezeInfoDto>(str);
-                return list;
-            }
-            catch (Exception ex)
-            {
-
-                throw ex;
-            }
+            return await Db.Queryable<DataFreezeUnfreezeInfo>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .Where(a => a.IsDel == "0" && a.Status == 2)
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), a => a.SkuNo.Contains(model.SkuNo))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), a => a.SkuName.Contains(model.SkuName))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), a => a.LotNo.Contains(model.LotNo))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.Type), a => a.Type == model.Type)
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.Demo), a => a.Demo == model.Demo)
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.StartTime), a => SqlFunc.GreaterThanOrEqual(a.CreateTime, model.StartTime))
+                           .WhereIF(!string.IsNullOrWhiteSpace(model.EndTime), a => SqlFunc.LessThanOrEqual(a.CreateTime, model.EndTime))
+                           .Select<FreezeUnfreezeInfoDto>((a, b) => new FreezeUnfreezeInfoDto()
+                           {
+                               UserName = b.RealName
+                           }, true)
+                           .ToListAsync();
         }
 
         /// <summary>
@@ -164,26 +86,24 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public string InsertDataFreezeInfo(FreezeUnfreezeInfoDto model)
+        public async Task<string> InsertDataFreezeInfo(FreezeUnfreezeInfoDto model)
         {
             try
             {
                 string errStr = "";
                 var TimeStr = Db.GetDate();
                 //楠岃瘉鎵规涓庣墿鏂欐槸鍚︿负寮傚父
-                var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.LotNo == model.LotNo && a.SkuNo == model.SkuNo);
+                var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.LotNo == model.LotNo && a.SkuNo == model.SkuNo);
                 //褰撳墠鐗╂枡鎴栨壒娆″瓨鍦ㄥ紓甯�
                 if (stock == null)
                 {
-                    errStr = "-1:褰撳墠鐗╂枡鎴栨壒娆″瓨鍦ㄥ紓甯�!";
-                    return errStr;
+                    throw Oops.Bah("-1:褰撳墠鐗╂枡鎴栨壒娆″瓨鍦ㄥ紓甯�!");
                 }
                 //楠岃瘉鐗╂枡淇℃伅鏄惁瀛樺湪寮傚父
                 var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == model.SkuNo);
                 if (sku == null)
                 {
-                    errStr = "-1:褰撳墠鐗╂枡淇℃伅瀛樺湪寮傚父!";
-                    return errStr;
+                    throw Oops.Bah("-1:褰撳墠鐗╂枡淇℃伅瀛樺湪寮傚父!");
                 }
                 //鍐荤粨
                 if (model.Status == 1)
@@ -191,22 +111,19 @@
                     //楠岃瘉鍐荤粨鏁伴噺鏄惁灏忎簬褰撳墠搴撳瓨-閿佸畾-鍐荤粨鏁伴噺
                     if (model.FrozenQty <= 0)
                     {
-                        errStr = "-1:褰撳墠鎯宠鍐荤粨鐨勬暟閲忎笉鍙负0!";
-                        return errStr;
+                        throw Oops.Bah("-1:褰撳墠鎯宠鍐荤粨鐨勬暟閲忎笉鍙负0!");
                     }
                     //楠岃瘉鍐荤粨鏁伴噺鏄惁灏忎簬褰撳墠搴撳瓨-閿佸畾-鍐荤粨鏁伴噺
                     if (model.FrozenQty > (stock.Qty - stock.LockQty - stock.FrozenQty))
                     {
-                        errStr = "-1:褰撳墠鎯宠鍐荤粨鐨勬暟閲忓ぇ浜庡簱瀛樺彲鍐荤粨鏁伴噺!";
-                        return errStr;
+                        throw Oops.Bah("-1:褰撳墠鎯宠鍐荤粨鐨勬暟閲忓ぇ浜庡簱瀛樺彲鍐荤粨鏁伴噺!");
                     }
                     //楠岃瘉鍘熷洜鏄惁涓虹┖
                     if (string.IsNullOrWhiteSpace(model.Demo))
                     {
-                        errStr = "-1:鍐荤粨鍘熷洜涓嶅彲涓虹┖!";
-                        return errStr;
+                        throw Oops.Bah("-1:鍐荤粨鍘熷洜涓嶅彲涓虹┖!");
                     }
-                    
+
 
                 }
                 // 瑙e喕
@@ -215,14 +132,12 @@
                     //楠岃瘉鍐荤粨鏁伴噺鏄惁灏忎簬褰撳墠搴撳瓨-閿佸畾-鍐荤粨鏁伴噺
                     if (model.FrozenQty <= 0)
                     {
-                        errStr = "-1:褰撳墠鎯宠鍐荤粨鐨勬暟閲忎笉鍙负0!";
-                        return errStr;
+                        throw Oops.Bah("-1:褰撳墠鎯宠鍐荤粨鐨勬暟閲忎笉鍙负0!");
                     }
                     //楠岃瘉鍐荤粨鏁伴噺鏄惁灏忎簬褰撳墠搴撳瓨鍐荤粨鏁伴噺
                     if (model.FrozenQty > model.Qty)
                     {
-                        errStr = "-1:褰撳墠鎯宠瑙e喕鐨勬暟閲忓繀椤诲皬浜庡簱瀛樺喕缁撴暟閲�!";
-                        return errStr;
+                        throw Oops.Bah("-1:褰撳墠鎯宠瑙e喕鐨勬暟閲忓繀椤诲皬浜庡簱瀛樺喕缁撴暟閲�!");
                     }
 
                 }
@@ -259,8 +174,8 @@
                     stock.FrozenQty -= (decimal)model.FrozenQty;
                 }
 
-                Db.Insertable(list).ExecuteCommand();
-                Db.Updateable(stock).ExecuteCommand();
+                await Db.Insertable(list).ExecuteCommandAsync();
+                await Db.Updateable(stock).ExecuteCommandAsync();
 
 
                 Db.CommitTran(); //鎻愪氦
diff --git a/Wms/WMS.BLL/BllCheckServer/WarehouseOutsidePalletsServer.cs b/Wms/WMS.BLL/BllCheckServer/WarehouseOutsidePalletsServer.cs
index 69e2368..9e2a432 100644
--- a/Wms/WMS.BLL/BllCheckServer/WarehouseOutsidePalletsServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/WarehouseOutsidePalletsServer.cs
@@ -4,6 +4,8 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
+using Utility;
 using WMS.BLL.LogServer;
 using WMS.DAL;
 using WMS.Entity.BllAsnEntity;
@@ -18,8 +20,10 @@
     public class WarehouseOutsidePalletsServer : DbHelper<DataStockDetail>, IWarehouseOutsidePalletsServer
     {
         private static readonly SqlSugarScope Db = DataContext.Db;
-        public WarehouseOutsidePalletsServer() : base(Db)
+        private readonly UserManager _userManager;
+        public WarehouseOutsidePalletsServer(UserManager userManager) : base(Db)
         {
+            _userManager = userManager;
         }
 
         /// <summary>
@@ -30,196 +34,158 @@
         /// <param name="lotNo">鎵规</param>
         /// <param name="palletNo">鎵樼洏鍙�</param>
         /// <returns></returns>
-        public List<MateDataStockDto> GetPalletsOutside(string skuNo, string skuName, string lotNo, string palletNo, int page, int limit, out int count)
+        public async Task<List<MateDataStockDto>> GetPalletsOutside(string skuNo, string skuName, string lotNo, string palletNo, int page, int limit, RefAsync<int> count)
         {
-            string sqlCount = "SELECT DISTINCT COUNT(DataStockDetail.ID) " +
-                "FROM DataStockDetail " +
-                "where IsDel = 0 and isnull(LocatNo,'') = '' and isnull(WareHouseNo,'') = '' ";
-
-            string str = "select Id,LotNo,LotText,SupplierLot,SkuNo,SkuName,Standard,Qty,LockQty,FrozenQty,PalletNo," +
-                "Status,InspectMark,BitPalletMark,InspectStatus " +
-                "from DataStockDetail " +
-                "where IsDel = 0 and isnull(LocatNo,'') = '' and isnull(WareHouseNo,'') = ''";
-            //鍒ゆ柇鐗╂枡鍙锋槸鍚︿负绌�
-            if (!string.IsNullOrEmpty(skuNo))
-            {
-                str += $" and SkuNo like '%{skuNo}%'";
-            }
-            //鍒ゆ柇鐗╂枡鍚嶇О鏄惁涓虹┖
-            if (!string.IsNullOrEmpty(skuName))
-            {
-                str += $" and SkuName like '%{skuName}%'";
-            }
-            //鍒ゆ柇鎵规鏄惁涓虹┖
-            if (!string.IsNullOrEmpty(lotNo))
-            {
-                str += $" and LotNo like '%{lotNo}%'";
-            }
-            //鍒ゆ柇鎵樼洏鍙锋槸鍚︿负绌�
-            if (!string.IsNullOrEmpty(palletNo))
-            {
-                str += $" and PalletNo like '%{palletNo}%'";
-            }
-            //鎺掑簭
-            str += " order by LotNo,SkuNo,PalletNo";
-            if (page == 0)
-            {
-                page = 1;
-            }
-            str += $" offset {((page - 1) * limit)} rows fetch next {limit} rows only;";
-            List<MateDataStockDto> mateDataStockDtos = Db.Ado.SqlQuery<MateDataStockDto>(str);
-            var com = new Common();
-            count = com.GetRowCount(sqlCount);
-            return mateDataStockDtos;
+            var list = await Db.Queryable<DataStockDetail>()
+                              .Where(a => a.IsDel == "0" && SqlFunc.IsNullOrEmpty(a.LocatNo) && SqlFunc.IsNullOrEmpty(a.WareHouseNo))
+                              .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo))
+                              .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName.Contains(skuName))
+                              .WhereIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo.Contains(lotNo))
+                              .WhereIF(!string.IsNullOrEmpty(palletNo), a => a.PalletNo.Contains(palletNo))
+                              .OrderBy(a => new { a.LotNo, a.SkuNo, a.PalletNo })
+                              .Select<MateDataStockDto>()
+                              .ToPageListAsync(page, limit, count);
+            return list;
         }
 
 
         //淇濆瓨鎸囧畾鐨勫偍浣�
-        public void SaveAppointSlot(int stockDetailId, int locateId, int userId)
+        public async Task SaveAppointSlot(int stockDetailId, int locateId)
         {
+            //搴撳瓨鏄庣粏淇℃伅
+            var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.Id == stockDetailId);
+            if (stockDetail == null)
+            {
+                throw Oops.Bah("鏈煡璇㈠埌搴撳瓨搴撳鎵樼洏鐨勪俊鎭�");
+            }
+            if (!string.IsNullOrWhiteSpace(stockDetail.LocatNo))
+            {
+                throw Oops.Bah("璇ユ墭鐩樺凡鍦ㄥ偍浣嶄笂锛屼笉鑳芥寚瀹氬偍浣嶏紝璇锋牳瀹烇紒");
+            }
+            //鍌ㄤ綅
+            var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.IsDel == "0" && m.Id == locateId);
+            if (locate == null)
+            {
+                throw Oops.Bah("鏈煡璇㈠埌鍌ㄤ綅鐨勪俊鎭�");
+            }
+            if (locate.Status != "0" || locate.Flag != "0")
+            {
+                throw Oops.Bah("璇ュ偍浣嶇姸鎬佷笉鏄┖鍌ㄤ綅鎴栨爣蹇椾笉鏄甯哥殑");
+            }
+
+            var logTask = await Db.Queryable<LogTask>().FirstAsync(m => m.IsDel == "0" && m.Type == "0" && m.PalletNo == stockDetail.PalletNo && m.Status == "1");
+            if (logTask != null)
+            {
+                throw Oops.Bah("褰撳墠鎵樼洏宸叉湁姝e湪鎵ц鐨勪换鍔★紝璇锋牳瀹炴煡鐪�");
+            }
+
+
+            //鑻ユ槸娣卞害1鐨� 鍒欏垽鏂繁搴�2鏄惁涓虹┖鍌ㄤ綅
+            if (locate.Depth == "01")
+            {
+                var locateDepth = await Db.Queryable<SysStorageLocat>().FirstAsync(a => a.IsDel == "0" && a.Row == locate.Row && a.Column == locate.Column && a.Layer == locate.Layer && a.Depth == "02");
+                if (locateDepth != null)
+                {
+                    if (locateDepth.Status != "1")
+                    {
+                        throw Oops.Bah("璇ュ偍浣嶆繁搴�2涓嶆槸鏈夌墿鍝侊紝涓嶅彲缁戝畾");
+                    }
+                }
+            }
+            //鍒ゆ柇鏄惁涓烘繁搴�2鐨� 鑻ヤ负娣卞害2 鍒欒幏鍙栨繁搴�1鍌ㄤ綅 鍒ゆ柇鏄惁涓虹┖鍌ㄤ綅
+            if (locate.Depth == "02")
+            {
+                var locateDepth = await Db.Queryable<SysStorageLocat>().FirstAsync(a => a.IsDel == "0" && a.Row == locate.Row && a.Column == locate.Column && a.Layer == locate.Layer && a.Depth == "01");
+                if (locateDepth.Status != "0" || locateDepth.Flag == "2")
+                {
+                    throw Oops.Bah("璇ュ偍浣嶆繁搴�1涓嶆槸绌哄偍浣嶆垨鏍囧織涓嶆槸姝e父鐨�");
+                }
+            }
+
+            // 鑾峰彇姝ゆ墭鐩樼殑浠诲姟鍙�
+            var taskModel = await Db.Queryable<LogTask>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == stockDetail.PalletNo && m.IsSuccess == 0 && m.Status == "0");
+
+            Db.BeginTran();
             try
             {
-
-                //搴撳瓨鏄庣粏淇℃伅
-                var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == stockDetailId);
-                if (stockDetail == null)
+                var time = DateTime.Now;
+                var taskNo = string.Empty;
+                if (taskModel == null)          // 涔嬪墠鏈寚瀹氭墭鐩�
                 {
-                    throw new Exception("鏈煡璇㈠埌搴撳瓨搴撳鎵樼洏鐨勪俊鎭�");
-                }
-                if (!string.IsNullOrWhiteSpace(stockDetail.LocatNo))
-                {
-                    throw new Exception("璇ユ墭鐩樺凡鍦ㄥ偍浣嶄笂锛屼笉鑳芥寚瀹氬偍浣嶏紝璇锋牳瀹烇紒");
-                }
-                //鍌ㄤ綅
-                var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.Id == locateId);
-                if (locate == null)
-                {
-                    throw new Exception("鏈煡璇㈠埌鍌ㄤ綅鐨勪俊鎭�");
-                }
-                if (locate.Status != "0" || locate.Flag != "0")
-                {
-                    throw new Exception("璇ュ偍浣嶇姸鎬佷笉鏄┖鍌ㄤ綅鎴栨爣蹇椾笉鏄甯哥殑");
-                }
-
-                var logTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.Type == "0" && m.PalletNo == stockDetail.PalletNo && m.Status == "1");
-                if (logTask != null)
-                {
-                    throw new Exception("褰撳墠鎵樼洏宸叉湁姝e湪鎵ц鐨勪换鍔★紝璇锋牳瀹炴煡鐪�");
-                }
-
-
-                //鑻ユ槸娣卞害1鐨� 鍒欏垽鏂繁搴�2鏄惁涓虹┖鍌ㄤ綅
-                if (locate.Depth == "01")
-                {
-                    var locateDepth = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.Row == locate.Row && a.Column == locate.Column && a.Layer == locate.Layer && a.Depth == "02");
-                    if (locateDepth != null)
+                    // 娣诲姞鍏ュ簱鏃ュ織璁板綍
+                    taskNo = new Common().GetMaxNo("TK");
+                    var task = new LogTask    //鍏ュ簱浠诲姟
                     {
-                        if (locateDepth.Status != "1")
+                        TaskNo = taskNo,
+                        Sender = "WMS",
+                        Receiver = "WCS",
+                        IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+                        SendDate = time,  //鍙戦�佹椂闂�
+                        BackDate = time,  //杩斿洖鏃堕棿
+                        StartRoadway = "",            // 璧峰宸烽亾
+                        StartLocat = "",//璧峰浣嶇疆
+                        EndLocat = locate.LocatNo,//鐩爣浣嶇疆
+                        EndRoadway = locate.RoadwayNo,  // 鐩爣宸烽亾
+                        PalletNo = stockDetail.PalletNo,//鎵樼洏鐮�
+                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        IsCancel = 1,//鏄惁鍙彇娑�
+                        IsFinish = 1,//鏄惁鍙畬鎴�
+                        Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+                        Msg = "鍏ュ簱鍙e埌=>>" + locate.LocatNo + "鍌ㄤ綅鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅
+
+                    };
+                    await Db.Insertable(task).ExecuteCommandAsync();
+
+                    locate.Status = "2";
+                    await Db.Updateable(locate).ExecuteCommandAsync();
+                }
+                else                           // 宸叉寚瀹氳繃鎵樼洏闇�鍙樻洿 
+                {
+                    // 鑾峰彇涓婃鎸囧畾鐨勫偍浣嶅湴鍧�
+                    var locateOld = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.IsDel == "0" && m.LocatNo == taskModel.EndLocat);
+                    if (locateOld != null)
+                    {
+                        if (locateOld.LocatNo == locate.LocatNo) // 鍒ゆ柇褰撳墠鎸囧畾鐨勫湴鍧�鍜屼笂娆$殑鏄惁涓�鑷达紝鑻ヤ竴鑷翠笉鍋氭洿鏀� 
                         {
-                            throw new Exception("璇ュ偍浣嶆繁搴�2涓嶆槸鏈夌墿鍝侊紝涓嶅彲缁戝畾");
+                            throw new Exception("宸叉寚瀹氱浉鍚屽偍浣嶅湴鍧�");
+                        }
+                        else // 鑻ヤ笉涓�鑷� 閲婃斁涓婃鎸囧畾鐨勫偍浣嶅湴鍧�
+                        {
+                            locateOld.Status = "0";
+                            await Db.Updateable(locateOld).ExecuteCommandAsync();
                         }
                     }
+                    locate.Status = "2";
+                    await Db.Updateable(locate).ExecuteCommandAsync();
+                    // 鏇存柊浠诲姟鍙锋寚瀹氬湴鍧�淇℃伅
+                    taskModel.EndLocat = locate.LocatNo;//鐩爣鍌ㄤ綅
+                    taskModel.EndRoadway = locate.RoadwayNo;//鐩爣宸烽亾
+                    await Db.Updateable(taskModel).ExecuteCommandAsync();
+
+                    taskNo = taskModel.TaskNo;
                 }
-                //鍒ゆ柇鏄惁涓烘繁搴�2鐨� 鑻ヤ负娣卞害2 鍒欒幏鍙栨繁搴�1鍌ㄤ綅 鍒ゆ柇鏄惁涓虹┖鍌ㄤ綅
-                if (locate.Depth == "02")
+                // 鏇存柊缁勭洏琛ㄥ贩閬撳湴鍧�鍜屽偍浣嶅湴鍧�
+                var bindModel = await Db.Queryable<BllPalletBind>().FirstAsync(m => m.IsDel == "0"
+                && m.PalletNo == stockDetail.PalletNo && m.ASNDetailNo == stockDetail.ASNDetailNo && m.ASNNo == stockDetail.ASNNo);
+                if (string.IsNullOrWhiteSpace(bindModel.TaskNo) || bindModel.TaskNo == taskNo)
                 {
-                    var locateDepth = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.Row == locate.Row && a.Column == locate.Column && a.Layer == locate.Layer && a.Depth == "01");
-                    if (locateDepth.Status != "0" || locateDepth.Flag == "2")
-                    {
-                        throw new Exception("璇ュ偍浣嶆繁搴�1涓嶆槸绌哄偍浣嶆垨鏍囧織涓嶆槸姝e父鐨�");
-                    }
+                    bindModel.TaskNo = taskNo;
+                    bindModel.WareHouseNo = locate.WareHouseNo;
+                    bindModel.RoadwayNo = locate.RoadwayNo;
+                    bindModel.LocatNo = locate.LocatNo;
+                    await Db.Updateable(bindModel).ExecuteCommandAsync();
                 }
-
-                // 鑾峰彇姝ゆ墭鐩樼殑浠诲姟鍙�
-                var taskModel = Db.Queryable<LogTask>().First(m=>m.IsDel=="0" && m.PalletNo == stockDetail.PalletNo && m.IsSuccess ==0 && m.Status =="0");
-
-                Db.BeginTran();
-                try
-                {
-                    var time = DateTime.Now;
-                    var taskNo = string.Empty;
-                    if (taskModel == null)          // 涔嬪墠鏈寚瀹氭墭鐩�
-                    {
-                        // 娣诲姞鍏ュ簱鏃ュ織璁板綍
-                        taskNo = new Common().GetMaxNo("TK");
-                        var task = new LogTask    //鍏ュ簱浠诲姟
-                        {
-                            TaskNo = taskNo,
-                            Sender = "WMS",
-                            Receiver = "WCS",
-                            IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-                            SendDate = time,  //鍙戦�佹椂闂�
-                            BackDate = time,  //杩斿洖鏃堕棿
-                            StartRoadway = "",            // 璧峰宸烽亾
-                            StartLocat = "",//璧峰浣嶇疆
-                            EndLocat = locate.LocatNo,//鐩爣浣嶇疆
-                            EndRoadway = locate.RoadwayNo,  // 鐩爣宸烽亾
-                            PalletNo = stockDetail.PalletNo,//鎵樼洏鐮�
-                            IsSend = 1,//鏄惁鍙啀娆′笅鍙�
-                            IsCancel = 1,//鏄惁鍙彇娑�
-                            IsFinish = 1,//鏄惁鍙畬鎴�
-                            Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
-                            Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
-                            OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
-                            Msg = "鍏ュ簱鍙e埌=>>" + locate.LocatNo + "鍌ㄤ綅鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅
-
-                        };
-                        Db.Insertable(task).ExecuteCommand();
-
-                        locate.Status = "2";
-                        Db.Updateable(locate).ExecuteCommand();
-                    }
-                    else                           // 宸叉寚瀹氳繃鎵樼洏闇�鍙樻洿 
-                    {
-                        // 鑾峰彇涓婃鎸囧畾鐨勫偍浣嶅湴鍧�
-                        var locateOld = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == taskModel.EndLocat);
-                        if (locateOld != null)
-                        {
-                            if (locateOld.LocatNo == locate.LocatNo) // 鍒ゆ柇褰撳墠鎸囧畾鐨勫湴鍧�鍜屼笂娆$殑鏄惁涓�鑷达紝鑻ヤ竴鑷翠笉鍋氭洿鏀� 
-                            {
-                                throw new Exception("宸叉寚瀹氱浉鍚屽偍浣嶅湴鍧�");
-                            }
-                            else // 鑻ヤ笉涓�鑷� 閲婃斁涓婃鎸囧畾鐨勫偍浣嶅湴鍧�
-                            {
-                                locateOld.Status = "0";
-                                Db.Updateable(locateOld).ExecuteCommand();
-                            }
-                        }
-                        locate.Status = "2";
-                        Db.Updateable(locate).ExecuteCommand();
-                        // 鏇存柊浠诲姟鍙锋寚瀹氬湴鍧�淇℃伅
-                        taskModel.EndLocat = locate.LocatNo;//鐩爣鍌ㄤ綅
-                        taskModel.EndRoadway = locate.RoadwayNo;//鐩爣宸烽亾
-                        Db.Updateable(taskModel).ExecuteCommand();
-
-                        taskNo = taskModel.TaskNo;
-                    }
-                    // 鏇存柊缁勭洏琛ㄥ贩閬撳湴鍧�鍜屽偍浣嶅湴鍧�
-                    var bindModel = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0"
-                    && m.PalletNo == stockDetail.PalletNo && m.ASNDetailNo == stockDetail.ASNDetailNo && m.ASNNo == stockDetail.ASNNo);
-                    if (string.IsNullOrWhiteSpace(bindModel.TaskNo) || bindModel.TaskNo == taskNo)
-                    {
-                        bindModel.TaskNo = taskNo;
-                        bindModel.WareHouseNo = locate.WareHouseNo;
-                        bindModel.RoadwayNo = locate.RoadwayNo;
-                        bindModel.LocatNo = locate.LocatNo;
-                        Db.Updateable(bindModel).ExecuteCommand();
-                    }
-                    // 鎻掑叆鎿嶄綔鏃ュ織
-                    new OperationASNServer().AddLogOperationAsn("搴撳唴浣滀笟", "搴撳鎵樼洏", stockDetail.PalletNo, "缂栬緫",
-                            $"鎸囧畾浜嗗偍浣嶏細{locate.LocatNo}銆佸崟鎹彿锛歿stockDetail.ASNNo}銆佹墭鐩樼爜锛歿stockDetail.PalletNo}鐨勪俊鎭�", userId);
-                    //鎻愪氦浜嬪姟
-                    Db.CommitTran();
-                }
-                catch (Exception e)
-                {
-                    Db.RollbackTran();
-                    throw new Exception(e.Message);
-                }
-
+                // 鎻掑叆鎿嶄綔鏃ュ織
+                new OperationASNServer().AddLogOperationAsn("搴撳唴浣滀笟", "搴撳鎵樼洏", stockDetail.PalletNo, "缂栬緫",
+                        $"鎸囧畾浜嗗偍浣嶏細{locate.LocatNo}銆佸崟鎹彿锛歿stockDetail.ASNNo}銆佹墭鐩樼爜锛歿stockDetail.PalletNo}鐨勪俊鎭�", _userManager.UserId);
+                //鎻愪氦浜嬪姟
+                Db.CommitTran();
             }
             catch (Exception e)
             {
+                Db.RollbackTran();
                 throw new Exception(e.Message);
             }
         }
diff --git a/Wms/WMS.BLL/LogServer/OperationCrServer.cs b/Wms/WMS.BLL/LogServer/OperationCrServer.cs
index 253df18..0a660f3 100644
--- a/Wms/WMS.BLL/LogServer/OperationCrServer.cs
+++ b/Wms/WMS.BLL/LogServer/OperationCrServer.cs
@@ -27,7 +27,7 @@
         {
             _userManager = userManager;
         }
-        public List<OperationDto> GetLogOperationCrList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count)
+        public async Task<List<OperationDto>> GetLogOperationCrList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, RefAsync<int> count)
         {
             try
             {
@@ -38,8 +38,7 @@
                     .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime))
                     .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(endTime).AddDays(1))
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                var total = 0;
-                var list = GetAllWhereAsync(item)
+                var list = await GetAllWhereAsync(item)
                     .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString())
                     .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id)
                     .Select((it, dic, users) => new OperationDto()
@@ -55,10 +54,8 @@
                         CreateUserName = users.RealName,
                     })
                     .OrderByDescending(it => it.CreateTime)
-                    .ToOffsetPage(page, limit, ref total);
-
-                count = total;
-                return list.OrderByDescending(m => m.CreateTime).ToList();
+                    .ToPageListAsync(page, limit, count);
+                return list;
             }
             catch (Exception e)
             {
diff --git a/Wms/WMS.BLL/LogServer/TaskServer.cs b/Wms/WMS.BLL/LogServer/TaskServer.cs
index 7a5748a..582b27e 100644
--- a/Wms/WMS.BLL/LogServer/TaskServer.cs
+++ b/Wms/WMS.BLL/LogServer/TaskServer.cs
@@ -3,6 +3,7 @@
 using System.Linq;
 using System.Linq.Expressions;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
 using Model.ModelDto.LogDto;
 using SqlSugar;
@@ -22,7 +23,7 @@
         }
 
 
-        public List<TaskDto> GetTaskList(List<string> orderType, string type, string status, string taskNo, int isSuccess, string palletNo, string msg, int page, int limit, out int count)
+        public async Task<List<TaskDto>> GetTaskList(List<string> orderType, string type, string status, string taskNo, int isSuccess, string palletNo, string msg, int page, int limit, RefAsync<int> count)
         {
             try
             {
@@ -35,8 +36,7 @@
                     .AndIF(!string.IsNullOrWhiteSpace(palletNo), it => it.PalletNo.Contains(palletNo.Trim()))
                     .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) 
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                var total = 0;
-                var data = GetAllWhereAsync(item)
+                var data = await GetAllWhereAsync(item)
                     .LeftJoin<SysUserInfor>((a,b)=>a.CreateUser == b.Id).
                     Select((a,b) => new TaskDto()
                     {
@@ -67,10 +67,9 @@
                         CreateTime = a.CreateTime
                     })
                     .OrderByDescending(a => a.TaskNo)
-                    .ToOffsetPage(page,limit,ref total);
-                count = total;
+                    .ToPageListAsync(page,limit, count);
 
-                return data.OrderByDescending(m=>m.TaskNo).ToList();
+                return data;
             }
             catch (Exception e)
             {
diff --git a/Wms/WMS.IBLL/IBllCheckServer/IStockCheckLogServer.cs b/Wms/WMS.IBLL/IBllCheckServer/IStockCheckLogServer.cs
index 6888f76..6ad57c4 100644
--- a/Wms/WMS.IBLL/IBllCheckServer/IStockCheckLogServer.cs
+++ b/Wms/WMS.IBLL/IBllCheckServer/IStockCheckLogServer.cs
@@ -1,7 +1,9 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllCheckDto;
+using SqlSugar;
 
 namespace WMS.IBLL.IBllCheckServer
 {
@@ -21,14 +23,14 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<StockCheckLogDto> GetStockCheckLogList(string crNo, string status, string palletNo, string boxNo, string skuNo, string skuName,
-            string lotNo, int page, int limit, out int count);
+        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);
 
         /// <summary>
         /// 鑾峰彇鐩樼偣璁板綍-鏁版嵁褰掓。
         /// </summary>
         /// <returns></returns>
-        public List<StockCheckLogDto> GetArchivingStockCheckLogList(string crNo, string status, string palletNo, string boxNo, string skuNo, string skuName,
+        List<StockCheckLogDto> GetArchivingStockCheckLogList(string crNo, string status, string palletNo, string boxNo, string skuNo, string skuName,
             string lotNo, int page, int limit, out int count);
     }
 }
diff --git a/Wms/WMS.IBLL/IBllCheckServer/IStockFreectSetve.cs b/Wms/WMS.IBLL/IBllCheckServer/IStockFreectSetve.cs
index f79599f..b4c9a10 100644
--- a/Wms/WMS.IBLL/IBllCheckServer/IStockFreectSetve.cs
+++ b/Wms/WMS.IBLL/IBllCheckServer/IStockFreectSetve.cs
@@ -2,6 +2,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using WMS.Entity.DataEntity;
 using WMS.Entity.SysEntity;
 
@@ -17,28 +18,28 @@
         /// <param name="SkuNo">鐗╂枡缂栫爜</param>
         /// <param name="type">0锛氳幏鍙栧彲鍐荤粨搴撳瓨 1锛氳幏鍙栧彲瑙e喕鏁版嵁</param>
         /// <returns></returns>
-        List<DataStock> ByTypeGetDataStockType(string SkuNo,int type);
+        Task<List<DataStock>> ByTypeGetDataStockType(string SkuNo,int type);
 
         /// <summary>
         /// 鑾峰彇搴撳瓨鍐荤粨淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        List<FreezeUnfreezeInfoDto> GetDataFreezeList(FreezeUnfreezeInfoDto model);
+        Task<List<FreezeUnfreezeInfoDto>> GetDataFreezeList(FreezeUnfreezeInfoDto model);
 
         /// <summary>
         /// 鑾峰彇搴撳瓨瑙e喕淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        List<FreezeUnfreezeInfoDto> GetDataUnFreezeList(FreezeUnfreezeInfoDto model);
+        Task<List<FreezeUnfreezeInfoDto>> GetDataUnFreezeList(FreezeUnfreezeInfoDto model);
 
         /// <summary>
         /// 娣诲姞鍐荤粨\瑙e喕淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        string InsertDataFreezeInfo(FreezeUnfreezeInfoDto model);
+        Task<string> InsertDataFreezeInfo(FreezeUnfreezeInfoDto model);
 
         #endregion
     }
diff --git a/Wms/WMS.IBLL/IBllCheckServer/IWarehouseOutsidePalletsServer.cs b/Wms/WMS.IBLL/IBllCheckServer/IWarehouseOutsidePalletsServer.cs
index 5afb498..f1310f8 100644
--- a/Wms/WMS.IBLL/IBllCheckServer/IWarehouseOutsidePalletsServer.cs
+++ b/Wms/WMS.IBLL/IBllCheckServer/IWarehouseOutsidePalletsServer.cs
@@ -1,7 +1,9 @@
 锘縰sing Model.ModelDto.DataDto;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 
 namespace WMS.IBLL.IBllCheckServer
 {
@@ -15,7 +17,7 @@
         /// <param name="lotNo">鎵规</param>
         /// <param name="palletNo">鎵樼洏鍙�</param>
         /// <returns></returns>
-        List<MateDataStockDto> GetPalletsOutside(string skuNo, string skuName, string lotNo, string palletNo, int page, int limit, out int count);
+        Task<List<MateDataStockDto>> GetPalletsOutside(string skuNo, string skuName, string lotNo, string palletNo, int page, int limit, RefAsync<int> count);
 
         /// <summary>
         /// 搴撳鎵樼洏鎸囧畾鍌ㄤ綅淇℃伅
@@ -23,7 +25,7 @@
         /// <param name="stockDetailId">搴撳瓨鏄庣粏ID</param>
         /// <param name="locateId">鍌ㄤ綅淇℃伅ID</param>
         /// <param name="userId">鎿嶄綔浜�</param>
-        void SaveAppointSlot(int stockDetailId, int locateId, int userId);
+        Task SaveAppointSlot(int stockDetailId, int locateId);
 
     }
 }
diff --git a/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs b/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs
index eb4074c..ee046fa 100644
--- a/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs
+++ b/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs
@@ -4,6 +4,7 @@
 using System.Threading.Tasks;
 using Model.ModelDto.LogDto;
 using Model.ModelVm.LogVm;
+using SqlSugar;
 
 namespace WMS.IBLL.ILogServer
 {
@@ -21,8 +22,8 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<OperationDto> GetLogOperationCrList(string menuName, string type, string msg, string startTime,
-            string endTime, int page, int limit, out int count);
+        Task<List<OperationDto>> GetLogOperationCrList(string menuName, string type, string msg, string startTime,
+            string endTime, int page, int limit, RefAsync<int> count);
         /// <summary>
         /// 娣诲姞搴撳唴(鐩樺簱銆佺Щ搴�)鎿嶄綔鏃ュ織
         /// </summary>
diff --git a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs
index ff31676..bd45874 100644
--- a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs
+++ b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs
@@ -1,7 +1,9 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.LogDto;
+using SqlSugar;
 using WMS.Entity.LogEntity;
 
 namespace WMS.IBLL.ILogServer
@@ -22,7 +24,7 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<TaskDto> GetTaskList(List<string> orderType, string type, string status, string taskNo, int isSuccess, string palletNo,string msg, int page, int limit, out int count);
+        Task<List<TaskDto>> GetTaskList(List<string> orderType, string type, string status, string taskNo, int isSuccess, string palletNo,string msg, int page, int limit, RefAsync<int> count);
 
         /// <summary>
         /// 淇敼浠诲姟涓嬪彂鎴愬姛
diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs
index 3d2c74c..c4c4697 100644
--- a/Wms/Wms/Controllers/BllAsnController.cs
+++ b/Wms/Wms/Controllers/BllAsnController.cs
@@ -689,12 +689,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetArrivalTaskList(GetTaskVm model)
+        public async Task<IActionResult> GetArrivalTaskList(GetTaskVm model)
         {
             try
             {
                 var type = new List<string>() { "0" };
-                var bolls = _taskSvc.GetTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, out int count);
+                RefAsync<int> count = new RefAsync<int>();
+                var bolls = await _taskSvc.GetTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, count);
 
                 return Ok(new { code = 0, count, msg = "鍏ュ簱浠诲姟淇℃伅", data = bolls });
             }
diff --git a/Wms/Wms/Controllers/BllCheckController.cs b/Wms/Wms/Controllers/BllCheckController.cs
index 79bbb0b..812b777 100644
--- a/Wms/Wms/Controllers/BllCheckController.cs
+++ b/Wms/Wms/Controllers/BllCheckController.cs
@@ -168,11 +168,12 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetStockCheckLogList(GetCheckLogVm model)
+        public async Task<IActionResult> GetStockCheckLogList(GetCheckLogVm model)
         {
             try
             {
-                var list = _stockCheckLogSvc.GetStockCheckLogList(model.CrNo, model.Status, model.PalletNo, model.BoxNo, model.SkuNo, model.SkuName, model.LotNo, model.Page, model.Limit, out int count);
+                RefAsync<int> count = new RefAsync<int>();
+                var list = await _stockCheckLogSvc.GetStockCheckLogList(model.CrNo, model.Status, model.PalletNo, model.BoxNo, model.SkuNo, model.SkuName, model.LotNo, model.Page, model.Limit, count);
 
                 return Ok(new { code = 0, count, msg = "鐩樼偣璁板綍", data = list });
             }
@@ -192,12 +193,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetCrTaskList(GetTaskVm model)
+        public async Task<IActionResult> GetCrTaskList(GetTaskVm model)
         {
             try
             {
                 var type = new List<string>() { "2", "3", "4" };
-                var bolls = _taskSvc.GetTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, out int count);
+                RefAsync<int> count = new RefAsync<int>();
+                var bolls = await _taskSvc.GetTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, count);
 
                 return Ok(new { code = 0, count, msg = "搴撳唴浠诲姟淇℃伅", data = bolls });
             }
@@ -213,11 +215,12 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetLogOperationCrList(GetOperationVm model)
+        public async Task<IActionResult> GetLogOperationCrList(GetOperationVm model)
         {
             try
             {
-                var bolls = _logSvc.GetLogOperationCrList(model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, out int count);
+                RefAsync<int> count = new RefAsync<int>();
+                var bolls = await _logSvc.GetLogOperationCrList(model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, count);
 
                 return Ok(new { code = 0, count, msg = "鍑哄簱鎿嶄綔鏃ュ織淇℃伅", data = bolls });
             }
@@ -329,9 +332,10 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetPalletsOutside(PalletsOutVm model)
+        public async Task<IActionResult> GetPalletsOutside(PalletsOutVm model)
         {
-            List<MateDataStockDto> mateDataStockDtos = _stockPallet.GetPalletsOutside(model.SkuNo, model.SkuName, model.LotNo, model.PalletNo, model.Page, model.Limit, out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            List<MateDataStockDto> mateDataStockDtos = await _stockPallet.GetPalletsOutside(model.SkuNo, model.SkuName, model.LotNo, model.PalletNo, model.Page, model.Limit, count);
             return Ok(new { code = 0, count, msg = "鑾峰彇搴撳鎵樼洏淇℃伅鎴愬姛", data = mateDataStockDtos });
         }
 
@@ -341,7 +345,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult SaveAppointSlot(SaveAppointSlotVm model)
+        public async Task<IActionResult> SaveAppointSlot(SaveAppointSlotVm model)
         {
             try
             {
@@ -356,7 +360,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _stockPallet.SaveAppointSlot(model.StockDetailId, model.LocateId, int.Parse(userId));
+                await _stockPallet.SaveAppointSlot(model.StockDetailId, model.LocateId);
 
                 return Ok(new { code = 0, count = 0, msg = "鎸囧畾鍌ㄤ綅鎴愬姛", data = "" });
             }
@@ -430,11 +434,11 @@
         /// <param name="type">0锛氳幏鍙栧彲鍐荤粨搴撳瓨 1锛氳幏鍙栧彲瑙e喕鏁版嵁</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult ByTypeGetDataStockType(string SkuNo, int type)
+        public async Task<IActionResult> ByTypeGetDataStockType(string SkuNo, int type)
         {
             try
             {
-                var models = _freect.ByTypeGetDataStockType(SkuNo, type);
+                var models = await _freect.ByTypeGetDataStockType(SkuNo, type);
 
                 return Ok(new
                 {
@@ -459,11 +463,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetDataFreezeList(FreezeUnfreezeInfoDto model)
+        public async Task<IActionResult> GetDataFreezeList(FreezeUnfreezeInfoDto model)
         {
             try
             {
-                var models = _freect.GetDataFreezeList(model);
+                var models = await _freect.GetDataFreezeList(model);
 
                 return Ok(new
                 {
@@ -488,11 +492,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetDataUnFreezeList(FreezeUnfreezeInfoDto model)
+        public async Task<IActionResult> GetDataUnFreezeList(FreezeUnfreezeInfoDto model)
         {
             try
             {
-                var models = _freect.GetDataUnFreezeList(model);
+                var models = await _freect.GetDataUnFreezeList(model);
 
                 return Ok(new
                 {
@@ -517,7 +521,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult InsertDataFreezeInfo(FreezeUnfreezeInfoDto model)
+        public async Task<IActionResult> InsertDataFreezeInfo(FreezeUnfreezeInfoDto model)
         {
             try
             {
@@ -533,7 +537,7 @@
                 }
 
                 model.CreateUser = int.Parse(UserId);
-                string strMesage = _freect.InsertDataFreezeInfo(model);
+                string strMesage = await _freect.InsertDataFreezeInfo(model);
                 //var arr = strMesage.Split(':');
                 if (!strMesage.Contains("-1"))
                 {
diff --git a/Wms/Wms/Controllers/BllSoController.cs b/Wms/Wms/Controllers/BllSoController.cs
index 6e9040d..0777712 100644
--- a/Wms/Wms/Controllers/BllSoController.cs
+++ b/Wms/Wms/Controllers/BllSoController.cs
@@ -13,6 +13,8 @@
 using Newtonsoft.Json;
 using Utility.Tools;
 using Model.InterFaceModel;
+using SqlSugar;
+using System.Threading.Tasks;
 
 namespace Wms.Controllers
 {
@@ -720,12 +722,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetExportTaskList(GetTaskVm model)
+        public async Task<IActionResult> GetExportTaskList(GetTaskVm model)
         {
             try
             {
                 var type = new List<string>(){"1","4"};
-                var bolls = _taskSvc.GetTaskList( type, model.Type,model.Status,model.TaskNo,model.IsSuccess,model.PalletNo,model.Msg,model.Page, model.Limit, out int count);
+                RefAsync<int> count = new RefAsync<int>();
+                var bolls = await _taskSvc.GetTaskList( type, model.Type,model.Status,model.TaskNo,model.IsSuccess,model.PalletNo,model.Msg,model.Page, model.Limit, count);
 
                 return Ok(new { code = 0, count, msg = "鍑哄簱浠诲姟淇℃伅", data = bolls });
             }

--
Gitblit v1.8.0