From 20ad0ae660e2669b4428c9b97f0cd5d48044d836 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期四, 11 七月 2024 07:52:26 +0800
Subject: [PATCH] Merge branch 'hwh'

---
 HTML/views/SystemSettings/PrintSetting.html       |   75 --
 Wms/Utility/Entity/ApiResponse.cs                 |    9 
 Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs |   34 
 Wms/Wms/Controllers/UpApiController.cs            |   28 
 Wms/Utility/Extension/ApiResponseActionFilter.cs  |   13 
 Wms/WMS.BLL/LogServer/OperationCrServer.cs        |   27 
 Wms/Wms/Controllers/BllCheckController.cs         |  169 +-----
 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs    | 1023 +++++++++++++++++++++-------------------
 Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs     |    7 
 Wms/Wms/Controllers/BasisController.cs            |    2 
 Wms/Wms/Controllers/DownApiController.cs          |   72 +-
 11 files changed, 710 insertions(+), 749 deletions(-)

diff --git a/HTML/views/SystemSettings/PrintSetting.html b/HTML/views/SystemSettings/PrintSetting.html
index d7e8133..514f274 100644
--- a/HTML/views/SystemSettings/PrintSetting.html
+++ b/HTML/views/SystemSettings/PrintSetting.html
@@ -154,61 +154,6 @@
 					TypeList = res.data;
 				}
 			});
-			sendData(IP + "/basis/GetRoleRightList", {}, 'get', function (res) {
-				$(function () {
-					$("#approvalBtn").hide();
-				});
-				$(function () {
-					$(".approvalBtndel").hide();
-				});
-				$(function () {
-					$(".approvalBtnupt").hide();
-				});
-				if (res.code == 200) //鎴愬姛
-				{
-					var list = res.data.filter(item => item.Layer == 0);
-					if (list) {
-						for (var i = 0; i < list.length; i++) {
-							xml = xml + '<li class="layui-nav-item">' + '<a href="javascript:;" lay-tips=' + list[i].Icon + ' lay-direction="2">' + '<span class="iconfont ' + list[i].Icon + '"></span>' + '<cite>' + list[i].MenuName + '</cite>' + '</a>';
-							var id = list[i].Id;
-							//鏌ヨ鏈夋棤瀛愯彍鍗�	
-							var count = res.data.filter(item => item.ParentId == id).length;
-							if (count > 0) {
-								xml = xml + '<dl class="layui-nav-child">';
-								getchiled(res.data, id);
-								xml = xml + '</dl>';
-							}
-							xml = xml + '</li>'
-						}
-					}
-					for (var k = 0; k < res.data.length; k++) {
-						if (res.data[k].MenuName == "娣诲姞妯℃澘") {
-							$(function () {
-								$("#approvalBtn").show();
-							});
-						}
-						if (res.data[k].MenuName == "鍒犻櫎妯℃澘") {
-							$(function () {
-								$(".approvalBtndel").show();
-							});
-						}
-						if (res.data[k].MenuName == "缂栬緫妯℃澘") {
-							$(function () {
-								$(".approvalBtnupt").show();
-							});
-						}
-					}
-				}
-				else //涓嶆垚鍔�
-				{
-					layer.msg('鑾峰彇淇℃伅澶辫触', {
-						icon: 2,
-						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-					}, function () {
-						//鍥炶皟
-					});
-				}
-			})
 			var infoOptions = {
 				elem: '#LAY-app-content-list',
 				height: 'full-95',
@@ -263,7 +208,25 @@
 						{
 							title: '鎿嶄綔', fixed: 'right', width: 200, align: 'center', toolbar: '#table-content-list'
 						}
-					]]
+					]],
+				done: function () {
+					//鏉冮檺
+					var listRole = JSON.parse(localStorage.getItem('listRole'));
+					$("#approvalBtn").hide();
+					$(".approvalBtndel").hide();
+					$(".approvalBtnupt").hide();
+					if (listRole) {
+						if (listRole.filter(s => s.MenuName == "娣诲姞妯℃澘").length > 0) {
+							$("#approvalBtn").show();
+						}
+						if (listRole.filter(s => s.MenuName == "缂栬緫妯℃澘").length > 0) {
+							$(".approvalBtnupt").show();
+						}
+						if (listRole.filter(s => s.MenuName == "鍒犻櫎妯℃澘").length > 0) {
+							$(".approvalBtndel").show();
+						}
+					}
+				}
 			};
 			//鐩戝惉鎼滅储
 			form.on('submit(LAY-app-contlist-search)', function (data) {
diff --git a/Wms/Utility/Entity/ApiResponse.cs b/Wms/Utility/Entity/ApiResponse.cs
index c88a3a1..8ac8932 100644
--- a/Wms/Utility/Entity/ApiResponse.cs
+++ b/Wms/Utility/Entity/ApiResponse.cs
@@ -9,12 +9,21 @@
         public int code { get; set; }
         public string msg { get; set; }
         public T data { get; set; }
+        public int count { get; set; }
 
         public ApiResponse(int code, string message, T data)
         {
             this.code = code;
             this.msg = message;
             this.data = data;
+
+        }
+        public ApiResponse(int code, string message, T data, int count)
+        {
+            this.code = code;
+            this.msg = message;
+            this.data = data;
+            this.count = count;
         }
     }
 }
diff --git a/Wms/Utility/Extension/ApiResponseActionFilter.cs b/Wms/Utility/Extension/ApiResponseActionFilter.cs
index f7eb80c..6f73a0c 100644
--- a/Wms/Utility/Extension/ApiResponseActionFilter.cs
+++ b/Wms/Utility/Extension/ApiResponseActionFilter.cs
@@ -1,6 +1,7 @@
 锘縰sing Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc.Filters;
+using NetTaste;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
@@ -21,10 +22,14 @@
             if (resultContext.Result is ObjectResult objectResult)
             {
                 var apiResponse = new ApiResponse<object>(
-                    context.HttpContext.Response.StatusCode,
-                    context.HttpContext.Response.StatusCode == 200 ? "璇锋眰鎴愬姛" : "閿欒",
-                    objectResult.Value
-                );
+                context.HttpContext.Response.StatusCode,
+                context.HttpContext.Response.StatusCode == 200 ? "璇锋眰鎴愬姛" : "閿欒",
+                objectResult.Value);
+
+                //if (resultContext.Result is SqlSugarPagedList)
+                //{
+                //    apiResponse.count = ((SqlSugarPagedList)resultContext.Result).Total;
+                //}
 
                 var json = JsonConvert.SerializeObject(apiResponse);
                 context.HttpContext.Response.ContentType = "application/json";
diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
index 24196ca..0af25c8 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -4,14 +4,19 @@
 using System.Linq;
 using System.Linq.Expressions;
 using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Identity;
 using Model.InterFaceModel;
 using Model.ModelDto.BllCheckDto;
 using Model.ModelDto.DataDto;
+using Model.ModelDto.SysDto;
 using Model.ModelVm;
 using Model.ModelVm.BllCheckVm;
+using Model.ModelVm.LogVm;
 using Newtonsoft.Json;
 using SqlSugar;
 using SqlSugar.Extensions;
+using Utility;
 using Utility.Tools;
 using WMS.BLL.LogServer;
 using WMS.DAL;
@@ -23,238 +28,276 @@
 using WMS.Entity.LogEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.IBllCheckServer;
+using WMS.IBLL.ILogServer;
 
 namespace WMS.BLL.BllCheckServer
 {
     public class StockCheckServer : DbHelper<BllStockCheck>, IStockCheckServer
     {
         private static readonly SqlSugarScope Db = DataContext.Db;
-        public StockCheckServer() : base(Db)
+        private readonly UserManager _userManager;
+        private readonly IOperationCRServer _operation;
+        public StockCheckServer(UserManager userManager, IOperationCRServer operation) : base(Db)
         {
+            _userManager = userManager;
+            _operation = operation;
         }
 
         //鑾峰彇鐩樼偣鍗曟嵁
-        public List<StockCheckDto> GetStockCheckList(string crNo, string status, string palletNo, string skuNo, string skuName,
-            string lotNo, string startTime, string endTime, int page, int limit, out int count)
+        public async Task<List<StockCheckDto>> GetStockCheckList(string crNo, string status, string palletNo, string skuNo, string skuName,
+            string lotNo, string startTime, string endTime, int page, int limit, RefAsync<int> count)
         {
-            try
+            var strList = new List<string>();
+
+            if (!string.IsNullOrWhiteSpace(palletNo) || !string.IsNullOrWhiteSpace(skuNo) || !string.IsNullOrWhiteSpace(skuName) || !string.IsNullOrWhiteSpace(lotNo))
             {
-                var strList = new List<string>();
-
-                if (!string.IsNullOrWhiteSpace(palletNo) || !string.IsNullOrWhiteSpace(skuNo) || !string.IsNullOrWhiteSpace(skuName) || !string.IsNullOrWhiteSpace(lotNo))
-                {
-                    Expression<Func<BllStockCheckDetail, bool>> demo = Expressionable.Create<BllStockCheckDetail>()
-                        .AndIF(!string.IsNullOrWhiteSpace(palletNo), m => m.PalletNo.Contains(palletNo.Trim()))
-                        .AndIF(!string.IsNullOrWhiteSpace(skuNo), m => m.SkuNo.Contains(skuNo.Trim()))
-                        .AndIF(!string.IsNullOrWhiteSpace(skuName), m => m.SkuName.Contains(skuName.Trim()))
-                        .AndIF(!string.IsNullOrWhiteSpace(lotNo), m => m.LotNo.Contains(lotNo.Trim()))
-                        .And(m => m.IsDel == "0")
-                        .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-
-                    var detailList = Db.Queryable<BllStockCheckDetail>().Where(demo).Select(m => m.CRNo).Distinct().ToList();
-                    strList = detailList;
-                }
-
-                Expression<Func<BllStockCheck, bool>> item = Expressionable.Create<BllStockCheck>()
-                    .AndIF(!string.IsNullOrWhiteSpace(crNo), m => m.CRNo.Contains(crNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(status), m => m.Status == int.Parse(status))
-                    .AndIF(!string.IsNullOrWhiteSpace(startTime), m => m.CheckDate >= Convert.ToDateTime(startTime))
-                    .AndIF(!string.IsNullOrWhiteSpace(endTime), m => m.CheckDate <= Convert.ToDateTime(endTime).AddDays(1))
-                    .AndIF(!string.IsNullOrWhiteSpace(palletNo), m => strList.Contains(m.CRNo))
-                    .AndIF(!string.IsNullOrWhiteSpace(skuNo), m => strList.Contains(m.CRNo))
-                    .AndIF(!string.IsNullOrWhiteSpace(skuName), m => strList.Contains(m.CRNo))
-                    .AndIF(!string.IsNullOrWhiteSpace(lotNo), m => strList.Contains(m.CRNo))
+                Expression<Func<BllStockCheckDetail, bool>> demo = Expressionable.Create<BllStockCheckDetail>()
+                    .AndIF(!string.IsNullOrWhiteSpace(palletNo), m => m.PalletNo.Contains(palletNo.Trim()))
+                    .AndIF(!string.IsNullOrWhiteSpace(skuNo), m => m.SkuNo.Contains(skuNo.Trim()))
+                    .AndIF(!string.IsNullOrWhiteSpace(skuName), m => m.SkuName.Contains(skuName.Trim()))
+                    .AndIF(!string.IsNullOrWhiteSpace(lotNo), m => m.LotNo.Contains(lotNo.Trim()))
                     .And(m => m.IsDel == "0")
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                var total = 0;
-                var list = Db.Queryable<BllStockCheck>().Where(item)
-                    .LeftJoin<SysUserInfor>((a, b) => a.AuditUser == b.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
-                    .Select((a, b, c, d) => new StockCheckDto()
-                    {
-                        Id = a.Id,
-                        CrNo = a.CRNo,
-                        CheckDate = a.CheckDate,
-                        CompleteDate = a.CompleteDate,
-                        Status = a.Status,
-                        Origin = a.Origin,
-                        AuditStatusNo = a.AuditStatusNo,
-                        IsDoubleCheck = a.IsDoubleCheck,
-                        AuditUserName = b.RealName,
-                        AuditTime = a.AuditTime,
-                        Demo = a.Demo,
 
-                        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;
-
+                var detailList = await Db.Queryable<BllStockCheckDetail>().Where(demo).Select(m => m.CRNo).Distinct().ToListAsync();
+                strList = detailList;
             }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+
+            Expression<Func<BllStockCheck, bool>> item = Expressionable.Create<BllStockCheck>()
+                .AndIF(!string.IsNullOrWhiteSpace(crNo), m => m.CRNo.Contains(crNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(status), m => m.Status == int.Parse(status))
+                .AndIF(!string.IsNullOrWhiteSpace(startTime), m => m.CheckDate >= Convert.ToDateTime(startTime))
+                .AndIF(!string.IsNullOrWhiteSpace(endTime), m => m.CheckDate <= Convert.ToDateTime(endTime).AddDays(1))
+                .AndIF(!string.IsNullOrWhiteSpace(palletNo), m => strList.Contains(m.CRNo))
+                .AndIF(!string.IsNullOrWhiteSpace(skuNo), m => strList.Contains(m.CRNo))
+                .AndIF(!string.IsNullOrWhiteSpace(skuName), m => strList.Contains(m.CRNo))
+                .AndIF(!string.IsNullOrWhiteSpace(lotNo), m => strList.Contains(m.CRNo))
+                .And(m => m.IsDel == "0")
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+            var list = await Db.Queryable<BllStockCheck>().Where(item)
+                .LeftJoin<SysUserInfor>((a, b) => a.AuditUser == b.Id)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
+                .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
+                .Select((a, b, c, d) => new StockCheckDto()
+                {
+                    Id = a.Id,
+                    CrNo = a.CRNo,
+                    CheckDate = a.CheckDate,
+                    CompleteDate = a.CompleteDate,
+                    Status = a.Status,
+                    Origin = a.Origin,
+                    AuditStatusNo = a.AuditStatusNo,
+                    IsDoubleCheck = a.IsDoubleCheck,
+                    AuditUserName = b.RealName,
+                    AuditTime = a.AuditTime,
+                    Demo = a.Demo,
+                    CreateUserName = c.RealName,
+                    UpdateUserName = d.RealName,
+                    CreateTime = a.CreateTime,
+                    UpdateTime = a.UpdateTime,
+                }).OrderByDescending(a => a.CreateTime).ToPageListAsync(page, limit, count);
+
+            return list;
         }
 
         //鑾峰彇鐩樼偣鍗曟嵁鏄庣粏
-        public List<StockCheckDetailDto> GetStockCheckDetailList(string crNo, int page, int limit, out int count)
+        public async Task<List<StockCheckDetailDto>> GetStockCheckDetailList(string crNo, int page, int limit, RefAsync<int> count)
         {
-            try
-            {
-                var total = 0;
-                var list = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == crNo)
-                    .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
-                    .Select((a, b, c) => new StockCheckDetailDto()
-                    {
-                        Id = a.Id,
-                        CrNo = a.CRNo,
-                        PalletNo = a.PalletNo,
-                        Qty = a.Qty,
-                        RealQty = a.RealQty,
-                        CheckResult = a.CheckResult,
-                        Status = a.Status,
-                        SkuNo = a.SkuNo,
-                        SkuName = a.SkuName,
-                        Standard = a.Standard,
-                        LotNo = a.LotNo,
-                        LotText = a.LotText,
-                        SupplierLot = a.SupplierLot,
+            return await Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == crNo)
+                .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
+                .Select((a, b, c) => new StockCheckDetailDto()
+                {
+                    Id = a.Id,
+                    CrNo = a.CRNo,
+                    PalletNo = a.PalletNo,
+                    Qty = a.Qty,
+                    RealQty = a.RealQty,
+                    CheckResult = a.CheckResult,
+                    Status = a.Status,
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    Standard = a.Standard,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    SupplierLot = a.SupplierLot,
 
-                        CreateUserName = b.RealName,
-                        UpdateUserName = c.RealName,
-                        CreateTime = a.CreateTime,
-                        UpdateTime = a.UpdateTime,
+                    CreateUserName = b.RealName,
+                    UpdateUserName = c.RealName,
+                    CreateTime = a.CreateTime,
+                    UpdateTime = a.UpdateTime,
 
-                    }).ToOffsetPage(page, limit, ref total);
-                count = total;
-
-                return list;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+                }).ToPageListAsync(page, limit, count);
         }
 
         //鑾峰彇搴撳瓨鏄庣粏淇℃伅锛堢洏鐐归�夋嫨鏄庣粏鏁版嵁婧愶級
-        public List<StockDetailDto> GetCheckStockDetailList(string houseNo, string roadwayNo, string locateNo, string msg, int page, int limit, out int count)
+        public async Task<List<StockDetailDto>> GetCheckStockDetailList(string houseNo, string roadwayNo, string locateNo, string msg, int page, int limit, RefAsync<int> count)
         {
-            try
-            {
-                Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
-                    .AndIF(!string.IsNullOrWhiteSpace(houseNo), m => m.WareHouseNo == houseNo)
-                    .AndIF(!string.IsNullOrWhiteSpace(roadwayNo), m => m.RoadwayNo == roadwayNo)
-                    .AndIF(!string.IsNullOrWhiteSpace(locateNo), m => m.LocatNo == locateNo)
-                    .AndIF(!string.IsNullOrWhiteSpace(msg),
-                        m => m.SkuNo.Contains(msg.Trim())
-                             || m.SkuName.Contains(msg.Trim())
-                             || m.LotNo.Contains(msg.Trim()))
-                    .And(m => m.IsDel == "0" && m.SkuNo != "100099" && m.Status == "0")
-                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-
-                var total = 0;
-                var list = Db.Queryable<DataStockDetail>().Where(item).GroupBy(m => new { m.SkuNo, m.SkuName, m.Standard, m.LotNo, m.LotText, m.SupplierLot, m.LocatNo, m.PalletNo })
-                    .Select(a => new StockDetailDto()
-                    {
-                        SkuNo = a.SkuNo,
-                        SkuName = a.SkuName,
-                        Standard = a.Standard,
-                        LotNo = a.LotNo,
-                        LotText = a.LotText,
-                        SupplierLot = a.SupplierLot,
-                        Qty = SqlFunc.AggregateSum(a.Qty),
-                        LocatNo = a.LocatNo,
-                        PalletNo = a.PalletNo
-                    }).ToOffsetPage(page, limit, ref total);
-                count = total;
-
-                return list;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
+                .AndIF(!string.IsNullOrWhiteSpace(houseNo), m => m.WareHouseNo == houseNo)
+                .AndIF(!string.IsNullOrWhiteSpace(roadwayNo), m => m.RoadwayNo == roadwayNo)
+                .AndIF(!string.IsNullOrWhiteSpace(locateNo), m => m.LocatNo == locateNo)
+                .AndIF(!string.IsNullOrWhiteSpace(msg),
+                    m => m.SkuNo.Contains(msg.Trim())
+                         || m.SkuName.Contains(msg.Trim())
+                         || m.LotNo.Contains(msg.Trim()))
+                .And(m => m.IsDel == "0" && m.SkuNo != "100099" && m.Status == "0")
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+            return await Db.Queryable<DataStockDetail>().Where(item).GroupBy(m => new { m.SkuNo, m.SkuName, m.Standard, m.LotNo, m.LotText, m.SupplierLot, m.LocatNo, m.PalletNo })
+                .Select(a => new StockDetailDto()
+                {
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    Standard = a.Standard,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    SupplierLot = a.SupplierLot,
+                    Qty = SqlFunc.AggregateSum(a.Qty),
+                    LocatNo = a.LocatNo,
+                    PalletNo = a.PalletNo
+                }).ToPageListAsync(page, limit, count);
         }
 
-        public EditStockCheckDto GetStockCheckDetailById(string crNo)
+        public async Task<EditStockCheckDto> GetStockCheckDetailById(string crNo)
         {
-            try
+            var notify = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
+            if (notify == null)
             {
-                var notify = Db.Queryable<BllStockCheck>().First(m => m.CRNo == crNo && m.IsDel == "0");
-                if (notify == null)
-                {
-                    throw new Exception($"鏈煡璇㈠埌{crNo}鐨勭洏鐐瑰崟鎹俊鎭�");
-                }
-                var detail = Db.Queryable<BllStockCheckDetail>().Where(m => m.CRNo == crNo && m.IsDel == "0").Select(m => new EditStockCheckDetailDto()
-                {
-                    SkuNo = m.SkuNo,
-                    SkuName = m.SkuName,
-                    Standard = m.Standard,
-                    LotNo = m.LotNo,
-                    LotText = m.LotText,
-                    SupplierLot = m.SupplierLot,
-                    Qty = m.Qty,
-
-                    PalletNo = m.PalletNo
-                }).ToList();
-                var data = new EditStockCheckDto()
-                {
-                    CrNo = crNo,
-                    Detail = detail
-                };
-
-                return data;
+                throw new Exception($"鏈煡璇㈠埌{crNo}鐨勭洏鐐瑰崟鎹俊鎭�");
             }
-            catch (Exception e)
+            var detail = await Db.Queryable<BllStockCheckDetail>().Where(m => m.CRNo == crNo && m.IsDel == "0").Select(m => new EditStockCheckDetailDto()
             {
-                throw new Exception(e.Message);
-            }
+                SkuNo = m.SkuNo,
+                SkuName = m.SkuName,
+                Standard = m.Standard,
+                LotNo = m.LotNo,
+                LotText = m.LotText,
+                SupplierLot = m.SupplierLot,
+                Qty = m.Qty,
+
+                PalletNo = m.PalletNo
+            }).ToListAsync();
+            var data = new EditStockCheckDto()
+            {
+                CrNo = crNo,
+                Detail = detail
+            };
+
+            return data;
         }
 
 
         //娣诲姞鐩樼偣鍗曘�佺紪杈戠洏鐐瑰崟
-        public void AddEditStockCheck(AddEditStockCheckVm model, int userId)
+        public async Task AddEditStockCheck(AddEditStockCheckVm model)
         {
-            try
+            if (model.Detail.Count == 0)
             {
-                if (model.Detail.Count == 0)
-                {
-                    throw new Exception("鐩樼偣鏄庣粏涓嶈兘涓虹┖");
-                }
-                Db.BeginTran();
-                var time = DateTime.Now;
+                throw Oops.Bah("鐩樼偣鏄庣粏涓嶈兘涓虹┖");
+            }
+            var time = DateTime.Now;
 
-                //娣诲姞
-                if (string.IsNullOrWhiteSpace(model.CrNo))
+            //娣诲姞
+            if (string.IsNullOrWhiteSpace(model.CrNo))
+            {
+                var num = await Db.Queryable<BllStockCheck>().CountAsync(m => m.IsDel == "0" && (m.Status == 0 || m.Status == 1));
+                if (num > 0)
                 {
-                    var num = Db.Queryable<BllStockCheck>().Count(m => m.IsDel == "0" && (m.Status == 0 || m.Status == 1));
-                    if (num > 0)
-                    {
-                        throw new Exception("宸叉湁绛夊緟鎵ц鐨勭洏鐐瑰崟鎹鍏堝畬鎴愭垨鍒犻櫎");
-                    }
-                    var crNo = new Common().GetMaxNo("CR");
-                    var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0");
-                    var check = new BllStockCheck()
+                    throw Oops.Bah("宸叉湁绛夊緟鎵ц鐨勭洏鐐瑰崟鎹鍏堝畬鎴愭垨鍒犻櫎");
+                }
+                var crNo = new Common().GetMaxNo("CR");
+                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0");
+                var check = new BllStockCheck()
+                {
+                    CRNo = crNo,
+                    Origin = "0",
+                    Status = 0,
+                    CreateUser = _userManager.UserId,
+                    CreateTime = time
+                };
+                var list = new List<BllStockCheckDetail>();
+                foreach (var item in model.Detail)
+                {
+                    var detail = new BllStockCheckDetail()
                     {
                         CRNo = crNo,
-                        Origin = "0",
-                        Status = 0,
-                        CreateUser = userId,
+                        PalletNo = item.PalletNo,
+                        Qty = item.Qty,
+                        Status = 0, //0锛氭湭鐩�  1锛氬凡鐩� 2锛氬凡璋冩暣
+                        SkuNo = item.SkuNo,
+                        SkuName = item.SkuName,
+                        Standard = item.Standard,
+                        LotNo = item.LotNo,
+                        LotText = item.LotText,
+                        SupplierLot = item.SupplierLot,
+                        CreateUser = _userManager.UserId,
                         CreateTime = time
                     };
-                    var list = new List<BllStockCheckDetail>();
-                    foreach (var item in model.Detail)
+                    list.Add(detail);
+                    var sd = await stockDetail.FirstAsync(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0");
+                    sd.Status = "3";
+                    Db.Updateable(sd).ExecuteCommand();
+                }
+                Db.Insertable(check).ExecuteCommand();
+                Db.Insertable(list).ExecuteCommand();
+                //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                await _operation.AddLogOperationCr(new OperationInputVm()
+                {
+                    ParentName = "搴撳唴浣滀笟",
+                    MenuName = "鐩樼偣鍗曟嵁",
+                    FkNo = crNo,
+                    TypeName = "娣诲姞",
+                    Msg = $"娣诲姞浜嗗崟鎹彿涓簕crNo}鐨勭洏鐐瑰崟淇℃伅"
+                });
+                //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕crNo}鐨勭洏鐐瑰崟淇℃伅", _userManager.UserId);
+            }
+            else //缂栬緫
+            {
+                var check = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.IsDel == "0" && m.CRNo == model.CrNo);
+                if (check == null)
+                {
+                    throw Oops.Bah("鏈煡璇㈠埌鐩樼偣鍗曟嵁鐨勪俊鎭�");
+                }
+                check.UpdateUser = _userManager.UserId;
+                check.UpdateTime = time;
+                await Db.Updateable(check).ExecuteCommandAsync();
+
+                //鐩樼偣鏄庣粏淇℃伅
+                var checkDetail = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == model.CrNo).ToList();
+
+                //鍒犻櫎鏃х殑
+                foreach (var d in checkDetail)
+                {
+                    var mq = model.Detail.Where(o => o.SkuNo == d.SkuNo && o.LotNo == d.LotNo && o.PalletNo == d.PalletNo).ToList();
+                    if (mq.Any()) //濡傛灉鏈夎繖涓墿鏂欏強鎵规鍒欒烦杩�
+                    {
+                        continue;
+                    }
+
+                    var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo && m.PalletNo == d.PalletNo && m.Status == "3").ToList();
+                    foreach (var s in sd)
+                    {
+                        s.Status = "0";
+
+                    }
+                    d.IsDel = "1";
+                    d.UpdateUser = _userManager.UserId;
+                    d.UpdateTime = time;
+                    //淇敼搴撳瓨鏄庣粏鐨勭姸鎬侊紙瑙i櫎鐩樼偣閿佸畾锛�
+                    await Db.Updateable(sd).ExecuteCommandAsync();
+                    await Db.Updateable(d).ExecuteCommandAsync();
+                }
+
+                //娣诲姞涓庝慨鏀�
+                var list = new List<BllStockCheckDetail>();
+                foreach (var item in model.Detail)
+                {
+                    var de = checkDetail.FirstOrDefault(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo);
+                    //鏂板姞椤�
+                    if (de == null)
                     {
                         var detail = new BllStockCheckDetail()
                         {
-                            CRNo = crNo,
+                            CRNo = model.CrNo,
                             PalletNo = item.PalletNo,
                             Qty = item.Qty,
                             Status = 0, //0锛氭湭鐩�  1锛氬凡鐩� 2锛氬凡璋冩暣
@@ -265,163 +308,90 @@
                             LotText = item.LotText,
                             SupplierLot = item.SupplierLot,
 
-                            CreateUser = userId,
+                            CreateUser = _userManager.UserId,
                             CreateTime = time
                         };
                         list.Add(detail);
-                        var sd = stockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0");
-                        sd.Status = "3";
-                        Db.Updateable(sd).ExecuteCommand();
-                    }
-                    Db.Insertable(check).ExecuteCommand();
-                    Db.Insertable(list).ExecuteCommand();
-                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕crNo}鐨勭洏鐐瑰崟淇℃伅", userId);
-                }
-                else //缂栬緫
-                {
-                    var check = Db.Queryable<BllStockCheck>().First(m => m.IsDel == "0" && m.CRNo == model.CrNo);
-                    if (check == null)
-                    {
-                        throw new Exception("鏈煡璇㈠埌鐩樼偣鍗曟嵁鐨勪俊鎭�");
-                    }
-                    check.UpdateUser = userId;
-                    check.UpdateTime = time;
-                    Db.Updateable(check).ExecuteCommand();
-
-                    //鐩樼偣鏄庣粏淇℃伅
-                    var checkDetail = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == model.CrNo).ToList();
-
-                    //鍒犻櫎鏃х殑
-                    foreach (var d in checkDetail)
-                    {
-                        var mq = model.Detail.Where(o => o.SkuNo == d.SkuNo && o.LotNo == d.LotNo && o.PalletNo == d.PalletNo).ToList();
-                        if (mq.Any()) //濡傛灉鏈夎繖涓墿鏂欏強鎵规鍒欒烦杩�
-                        {
-                            continue;
-                        }
-
-                        var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo && m.PalletNo == d.PalletNo && m.Status == "3").ToList();
+                        var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0").ToList();
                         foreach (var s in sd)
                         {
-                            s.Status = "0";
-
+                            s.Status = "3";
                         }
-                        d.IsDel = "1";
-                        d.UpdateUser = userId;
-                        d.UpdateTime = time;
-                        //淇敼搴撳瓨鏄庣粏鐨勭姸鎬侊紙瑙i櫎鐩樼偣閿佸畾锛�
-                        Db.Updateable(sd).ExecuteCommand();
-                        Db.Updateable(d).ExecuteCommand();
+                        await Db.Updateable(sd).ExecuteCommandAsync();
                     }
-
-                    //娣诲姞涓庝慨鏀�
-                    var list = new List<BllStockCheckDetail>();
-                    foreach (var item in model.Detail)
+                    else if (de.Qty != item.Qty)
                     {
-                        var de = checkDetail.FirstOrDefault(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo);
-                        //鏂板姞椤�
-                        if (de == null)
-                        {
-                            var detail = new BllStockCheckDetail()
-                            {
-                                CRNo = model.CrNo,
-                                PalletNo = item.PalletNo,
-                                Qty = item.Qty,
-                                Status = 0, //0锛氭湭鐩�  1锛氬凡鐩� 2锛氬凡璋冩暣
-                                SkuNo = item.SkuNo,
-                                SkuName = item.SkuName,
-                                Standard = item.Standard,
-                                LotNo = item.LotNo,
-                                LotText = item.LotText,
-                                SupplierLot = item.SupplierLot,
-
-                                CreateUser = userId,
-                                CreateTime = time
-                            };
-                            list.Add(detail);
-                            var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0").ToList();
-                            foreach (var s in sd)
-                            {
-                                s.Status = "3";
-                            }
-                            Db.Updateable(sd).ExecuteCommand();
-                        }
-                        else if (de.Qty != item.Qty)
-                        {
-                            de.Qty = item.Qty;
-                            de.UpdateUser = userId;
-                            de.UpdateTime = time;
-                            Db.Updateable(de).ExecuteCommand();
-                        }
-
+                        de.Qty = item.Qty;
+                        de.UpdateUser = _userManager.UserId;
+                        de.UpdateTime = time;
+                        await Db.Updateable(de).ExecuteCommandAsync();
                     }
 
-                    if (list.Count > 0)
-                    {
-                        Db.Insertable(list).ExecuteCommand();
-                    }
-
-                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", model.CrNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕model.CrNo}鐨勭洏鐐瑰崟淇℃伅", userId);
                 }
-                Db.CommitTran();
 
-            }
-            catch (Exception e)
-            {
-                Db.RollbackTran();
-                throw new Exception(e.Message);
+                if (list.Count > 0)
+                {
+                    await Db.Insertable(list).ExecuteCommandAsync();
+                }
+
+                //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                await _operation.AddLogOperationCr(new OperationInputVm()
+                {
+                    ParentName = "搴撳唴浣滀笟",
+                    MenuName = "鐩樼偣鍗曟嵁",
+                    FkNo = model.CrNo,
+                    TypeName = "娣诲姞",
+                    Msg = $"缂栬緫浜嗗崟鎹彿涓簕model.CrNo}鐨勭洏鐐瑰崟淇℃伅"
+                });
+                //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", model.CrNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕model.CrNo}鐨勭洏鐐瑰崟淇℃伅", _userManager.UserId);
             }
         }
 
         //鍒犻櫎鐩樼偣鍗�
-        public void DelStockCheck(int id, int userId)
+        public async Task DelStockCheck(int id)
         {
-            try
+            var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.IsDel == "0" && m.Id == id);
+            if (notice == null || notice.Status != 0)
             {
-                var notice = Db.Queryable<BllStockCheck>().First(m => m.IsDel == "0" && m.Id == id);
-                if (notice == null || notice.Status != 0)
-                {
-                    throw new Exception("鏈煡璇㈠埌鐘舵�佷负绛夊緟鎵ц鐨勭洏鐐瑰崟淇℃伅");
-                }
-
-                var detail = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToList();
-                if (detail.Count == 0)
-                {
-                    throw new Exception("鏈煡璇㈠埌鐩樼偣鍗曟嵁鏄庣粏淇℃伅");
-                }
-                Db.BeginTran();
-                var time = DateTime.Now;
-                foreach (var d in detail)
-                {
-                    d.IsDel = "1";
-                    d.UpdateTime = time;
-                    d.UpdateUser = userId;
-                    var item = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo && m.Status == "3").ToList();
-                    foreach (var i in item)
-                    {
-                        i.Status = "0";
-                    }
-                    Db.Updateable(item).ExecuteCommand();
-                }
-
-                notice.IsDel = "1";
-                notice.UpdateTime = time;
-                notice.UpdateUser = userId;
-
-                Db.Updateable(notice).ExecuteCommand();
-                Db.Updateable(detail).ExecuteCommand();
-                //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "鍒犻櫎", $"鍒犻櫎浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId);
-                Db.CommitTran();
-
+                throw Oops.Bah("鏈煡璇㈠埌鐘舵�佷负绛夊緟鎵ц鐨勭洏鐐瑰崟淇℃伅");
             }
-            catch (Exception e)
+
+            var detail = await Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToListAsync();
+            if (detail.Count == 0)
             {
-                Db.RollbackTran();
-                throw new Exception(e.Message);
+                throw Oops.Bah("鏈煡璇㈠埌鐩樼偣鍗曟嵁鏄庣粏淇℃伅");
             }
+            var time = DateTime.Now;
+            foreach (var d in detail)
+            {
+                d.IsDel = "1";
+                d.UpdateTime = time;
+                d.UpdateUser = _userManager.UserId;
+                var item = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo && m.Status == "3").ToListAsync();
+                foreach (var i in item)
+                {
+                    i.Status = "0";
+                }
+                await Db.Updateable(item).ExecuteCommandAsync();
+            }
+
+            notice.IsDel = "1";
+            notice.UpdateTime = time;
+            notice.UpdateUser = _userManager.UserId;
+
+            await Db.Updateable(notice).ExecuteCommandAsync();
+            await Db.Updateable(detail).ExecuteCommandAsync();
+            //娣诲姞鎿嶄綔鏃ュ織璁板綍
+            await _operation.AddLogOperationCr(new OperationInputVm()
+            {
+                ParentName = "搴撳唴浣滀笟",
+                MenuName = "鐩樼偣鍗曟嵁",
+                FkNo = notice.CRNo,
+                TypeName = "鍒犻櫎",
+                Msg = $"鍒犻櫎浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅"
+            });
+            //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "鍒犻櫎", $"鍒犻櫎浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId);
+
         }
 
         /// <summary>
@@ -430,24 +400,32 @@
         /// <param name="id"></param>
         /// <param name="demo"></param>
         /// <param name="userId"></param>
-        public void EditNoticeDemo(int id, string demo, int userId)
+        public async Task EditNoticeDemo(int id, string demo)
         {
             try
             {
-                var notice = Db.Queryable<BllStockCheck>().First(m => m.IsDel == "0" && m.Id == id);
+                var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.IsDel == "0" && m.Id == id);
                 if (notice == null)
                 {
                     throw new Exception("鏈煡璇㈠埌鐩樼偣鍗曟嵁淇℃伅");
                 }
                 notice.Demo = demo + "".Trim();
-                notice.UpdateUser = userId;
+                notice.UpdateUser = _userManager.UserId;
                 notice.UpdateTime = DateTime.Now;
 
                 int i = Db.Updateable(notice).ExecuteCommand();
                 if (i > 0)
                 {
                     //娣诲姞鎿嶄綔鏃ュ織
-                    new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕notice.CRNo}鐨勫娉ㄤ俊鎭�", userId);
+                    await _operation.AddLogOperationCr(new OperationInputVm()
+                    {
+                        ParentName = "搴撳唴浣滀笟",
+                        MenuName = "鐩樼偣鍗曟嵁",
+                        FkNo = notice.CRNo,
+                        TypeName = "缂栬緫",
+                        Msg = $"缂栬緫浜嗗崟鎹彿涓簕notice.CRNo}鐨勫娉ㄤ俊鎭�"
+                    });
+                    //new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕notice.CRNo}鐨勫娉ㄤ俊鎭�", userId);
                 }
             }
             catch (Exception ex)
@@ -457,39 +435,39 @@
         }
 
         //璋冩暣搴撳瓨
-        public bool StockAdjust(int id, int userId)
+        public async Task StockAdjust(int id)
         {
             try
             {
                 //鐩樼偣淇℃伅
-                var notice = Db.Queryable<BllStockCheck>().First(m => m.IsDel == "0" && m.Id == id);
+                var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.IsDel == "0" && m.Id == id);
                 if (notice == null || notice.Status != 2)
                 {
-                    throw new Exception("鏈煡璇㈠埌鐘舵�佷负鐩樼偣瀹屾垚鐨勭洏鐐瑰崟淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌鐘舵�佷负鐩樼偣瀹屾垚鐨勭洏鐐瑰崟淇℃伅");
                 }
                 if (notice == null || notice.Status != 2)
                 {
-                    throw new Exception("鏈煡璇㈠埌鐘舵�佷负鐩樼偣瀹屾垚鐨勭洏鐐瑰崟淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌鐘舵�佷负鐩樼偣瀹屾垚鐨勭洏鐐瑰崟淇℃伅");
                 }
                 //鐩樼偣鏄庣粏
-                var detail = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToList();
+                var detail = await Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToListAsync();
                 if (detail.Count == 0)
                 {
-                    throw new Exception("鏈煡璇㈠埌鐩樼偣鍗曟嵁鏄庣粏淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌鐩樼偣鍗曟嵁鏄庣粏淇℃伅");
                 }
                 //寮�鍚簨鍔�
                 Db.BeginTran();
-                var stock = Db.Queryable<DataStock>().Where(m => m.IsDel == "0").ToList();//搴撳瓨琛�
-                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0").ToList();//搴撳瓨鏄庣粏
-                var stockBox = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0").ToList();//搴撳瓨绠辨敮鏄庣粏
-                var materialList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();//鐗╂枡淇℃伅
-                var packagList = Db.Queryable<SysPackag>().Where(m => m.IsDel == "0").ToList();//鍖呰淇℃伅
+                var stock = await Db.Queryable<DataStock>().Where(m => m.IsDel == "0").ToListAsync();//搴撳瓨琛�
+                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0").ToListAsync();//搴撳瓨鏄庣粏
+                var stockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0").ToListAsync();//搴撳瓨绠辨敮鏄庣粏
+                var materialList = await Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToListAsync();//鐗╂枡淇℃伅
+                var packagList = await Db.Queryable<SysPackag>().Where(m => m.IsDel == "0").ToListAsync();//鍖呰淇℃伅
                 var time = DateTime.Now;
                 //鐩樼偣璁板綍
-                var checkLog = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToList();
+                var checkLog = await Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToListAsync();
                 if (checkLog.Count(m => m.CheckResult == null) > 0)
                 {
-                    throw new Exception($"{notice.CRNo}鍗曟嵁涓惈鏈夋湭鐩樼偣鐨勪俊鎭紝璇锋牳瀹�!");
+                    throw Oops.Bah($"{notice.CRNo}鍗曟嵁涓惈鏈夋湭鐩樼偣鐨勪俊鎭紝璇锋牳瀹�!");
                 }
                 List<BoxQtyInfo> boxQtyList = new List<BoxQtyInfo>();
 
@@ -541,10 +519,10 @@
                 foreach (var d in detail)
                 {
                     var demo = checkLog.Where(m => m.PalletNo == d.PalletNo).ToList();//鐩樼偣璁板綍
-                    //寰幆鐩樼偣璁板綍
+                                                                                      //寰幆鐩樼偣璁板綍
                     foreach (var l in demo)
                     {
-                        var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == l.SkuNo);
+                        var sku = await Db.Queryable<SysMaterials>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == l.SkuNo);
                         if (l.CheckResult == 0)//姝e父
                         {
                             if (sku.Type != "4")
@@ -552,25 +530,25 @@
                                 var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3);
                                 if (de3 == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�");
+                                    throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�");
                                 }
                                 var de2 = stockDetail.First(m => m.Id == de3.StockDetailId);
                                 if (de2 == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�");
+                                    throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�");
                                 }
                                 de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤
-                                Db.Updateable(de2).ExecuteCommand();
+                                await Db.Updateable(de2).ExecuteCommandAsync();
                             }
                             else
                             {
                                 var de2 = stockDetail.First(m => m.PalletNo == l.PalletNo && m.SkuNo == l.SkuNo);
                                 if (de2 == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅");
+                                    throw Oops.Bah($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅");
                                 }
                                 de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤
-                                Db.Updateable(de2).ExecuteCommand();
+                                await Db.Updateable(de2).ExecuteCommandAsync();
                             }
 
                         }
@@ -581,13 +559,13 @@
                                 var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3);
                                 if (de3 == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�");
+                                    throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�");
                                 }
 
                                 var de2 = stockDetail.First(m => m.Id == de3.StockDetailId);
                                 if (de2 == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�");
+                                    throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�");
                                 }
                                 de2.Status = "0";
                                 de2.Qty -= de3.Qty;
@@ -598,30 +576,29 @@
                                 }
                                 de.Qty -= de3.Qty;
 
-                                Db.Updateable(de).ExecuteCommand();
-                                Db.Updateable(de2).ExecuteCommand();
-                                Db.Deleteable(de3).ExecuteCommand();
+                                await Db.Updateable(de).ExecuteCommandAsync();
+                                await Db.Updateable(de2).ExecuteCommandAsync();
+                                await Db.Deleteable(de3).ExecuteCommandAsync();
                             }
                             else
                             {
                                 var de2 = stockDetail.First(m => m.PalletNo == l.PalletNo && m.SkuNo == l.SkuNo);
                                 if (de2 == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅");
+                                    throw Oops.Bah($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅");
                                 }
                                 de2.Status = "0";
                                 de2.Qty = l.RealQty;
                                 var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo);
                                 if (de == null)
                                 {
-                                    throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅");
+                                    throw Oops.Bah($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅");
                                 }
                                 de.Qty -= Convert.ToDecimal(l.Qty - l.RealQty);
 
-                                Db.Updateable(de).ExecuteCommand();
-                                Db.Updateable(de2).ExecuteCommand();
+                                await Db.Updateable(de).ExecuteCommandAsync();
+                                await Db.Updateable(de2).ExecuteCommandAsync();
                             }
-
                         }
                         else if (l.CheckResult == 2)//鐩樼泩
                         {
@@ -656,7 +633,7 @@
                                     ProductionTime = stockBoxInfo.ProductionTime,
                                     BitBoxMark = boxInfo.bitBoxMark,
                                 };
-                                Db.Insertable<DataBoxInfo>(databox).ExecuteCommand();
+                                await Db.Insertable<DataBoxInfo>(databox).ExecuteCommandAsync();
                                 //搴撳瓨鏄庣粏澧炲姞鏁伴噺
                                 stockDetailInfo.Qty += (int)l.RealQty;
                             }
@@ -667,12 +644,12 @@
                             }
                             stockDetailInfo.Status = "0";
 
-                            Db.Updateable(stockDetailInfo).ExecuteCommand();
+                            await Db.Updateable(stockDetailInfo).ExecuteCommandAsync();
                             //搴撳瓨澧炲姞鏁伴噺
                             var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo);
                             if (de == null)
                             {
-                                throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鐨勪俊鎭�");
+                                throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鐨勪俊鎭�");
                             }
                             if (sku.Type != "4")
                             {
@@ -683,13 +660,13 @@
                                 de.Qty += (int)(l.RealQty - l.Qty);
                             }
 
-                            Db.Updateable(de).ExecuteCommand();
+                            await Db.Updateable(de).ExecuteCommandAsync();
                         }
                     }
                     //淇敼鐩樼偣鏄庣粏
                     d.Status = 4;//鐘舵��
                     d.UpdateTime = time;
-                    d.UpdateUser = userId;
+                    d.UpdateUser = _userManager.UserId;
                     //鐩樼偣缁撴灉
                     if (d.Qty == d.RealQty)
                     {
@@ -707,18 +684,18 @@
                     {
                         d.CheckResult = 1;
                     }
-                    Db.Updateable(d).ExecuteCommand();
+                    await Db.Updateable(d).ExecuteCommandAsync();
 
                     #region 娣诲姞鍒ゆ柇鐩樼偣瀹屾墭鐩樻槸鍚︽槸闆舵墭 
                     var material = materialList.FirstOrDefault(m => m.SkuNo == d.SkuNo);
                     if (material == null)
                     {
-                        throw new Exception($"鏈煡璇㈠埌{d.SkuNo}鐨勭墿鏂欎俊鎭紱");
+                        throw Oops.Bah($"鏈煡璇㈠埌{d.SkuNo}鐨勭墿鏂欎俊鎭紱");
                     }
                     var pack = packagList.FirstOrDefault(m => m.PackagNo == material.PackagNo);
                     if (pack == null)
                     {
-                        throw new Exception($"鏈煡璇㈠埌{d.SkuNo}鐨勫寘瑁呬俊鎭紱");
+                        throw Oops.Bah($"鏈煡璇㈠埌{d.SkuNo}鐨勫寘瑁呬俊鎭紱");
                     }
                     var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
                     var bNum = 0;//绠辩墿鍝佹暟閲�
@@ -744,7 +721,7 @@
                     }
                     if (pNum == 0)
                     {
-                        throw new Exception("鏈煡璇㈠埌鐗╂枡鍖呰鎵樼鍏崇郴淇℃伅");
+                        throw Oops.Bah("鏈煡璇㈠埌鐗╂枡鍖呰鎵樼鍏崇郴淇℃伅");
                     }
                     var stockDetailInfo2 = stockDetail.First(m => m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo);//搴撳瓨鏄庣粏
                     if (stockDetailInfo2.Qty >= pNum)
@@ -756,20 +733,27 @@
                         stockDetailInfo2.BitPalletMark = "1";
                     }
 
-                    Db.Updateable(stockDetailInfo2).ExecuteCommand();
+                    await Db.Updateable(stockDetailInfo2).ExecuteCommandAsync();
                     #endregion
                 }
                 //淇鐩樼偣淇℃伅
                 notice.Status = 3;//鐘舵��
                 notice.UpdateTime = time;
-                notice.UpdateUser = userId;
-                Db.Updateable(notice).ExecuteCommand();
+                notice.UpdateUser = _userManager.UserId;
+                await Db.Updateable(notice).ExecuteCommandAsync();
                 //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "璋冩暣鍗曟嵁", $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId);
+                //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "璋冩暣鍗曟嵁", $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId);
+                await _operation.AddLogOperationCr(new OperationInputVm()
+                {
+                    ParentName = "搴撳唴浣滀笟",
+                    MenuName = "鐩樼偣鍗曟嵁",
+                    FkNo = notice.CRNo,
+                    TypeName = "璋冩暣鍗曟嵁",
+                    Msg = $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅"
+                });
 
                 //鎻愪氦浜嬪姟
                 Db.CommitTran();
-                return true;
             }
             catch (Exception e)
             {
@@ -780,7 +764,7 @@
         }
 
         //璋冩暣搴撳瓨-閽堝寮傚父鐢熸垚鐨�
-        public bool StockAdjustAuto(int id, int userId)
+        public async Task StockAdjustAuto(int id)
         {
             try
             {
@@ -788,55 +772,54 @@
                 var notice = Db.Queryable<BllStockCheck>().First(m => m.IsDel == "0" && m.Id == id);
                 if (notice == null || notice.Status != 2)
                 {
-                    throw new Exception("鏈煡璇㈠埌鐘舵�佷负鐩樼偣瀹屾垚鐨勭洏鐐瑰崟淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌鐘舵�佷负鐩樼偣瀹屾垚鐨勭洏鐐瑰崟淇℃伅");
                 }
                 //鐩樼偣鏄庣粏
                 var detail = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo).ToList();
                 if (detail.Count == 0)
                 {
-                    throw new Exception("鏈煡璇㈠埌鐩樼偣鍗曟嵁鏄庣粏淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌鐩樼偣鍗曟嵁鏄庣粏淇℃伅");
                 }
                 //寮�鍚簨鍔�
                 Db.BeginTran();
-
                 var stock = Db.Queryable<DataStock>().Where(m => m.IsDel == "0");//搴撳瓨
                 var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0");//搴撳瓨鏄庣粏
                 var stockBox = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0");//搴撳瓨绠辨敮淇℃伅
                 var time = DateTime.Now;
                 //鐩樼偣璁板綍
                 var checkLog = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == notice.CRNo);
-                if (checkLog.Count(m => m.CheckResult == null) > 0)
+                if (await checkLog.CountAsync(m => m.CheckResult == null) > 0)
                 {
                     throw new Exception($"{notice.CRNo}鍗曟嵁涓惈鏈夋湭鐩樼偣鐨勪俊鎭紝璇锋牳瀹�!");
                 }
                 foreach (var d in detail)
                 {
                     //鎵樼洏缁戝畾琛�
-                    var palletBind = Db.Queryable<BllPalletBind>().First(m => m.PalletNo == d.PalletNo);
+                    var palletBind = await Db.Queryable<BllPalletBind>().FirstAsync(m => m.PalletNo == d.PalletNo);
                     //鍌ㄤ綅琛�
-                    var storageLocat = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == palletBind.LocatNo);
+                    var storageLocat = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == palletBind.LocatNo);
                     if (storageLocat != null && storageLocat.Flag == "1")
                     {
                         //灏嗗偍浣嶆爣蹇桭lag淇敼涓猴細0锛氭甯�
                         storageLocat.Flag = "0";
-                        storageLocat.UpdateUser = userId;
+                        storageLocat.UpdateUser = _userManager.UserId;
                         storageLocat.UpdateTime = time;
 
-                        Db.Updateable(storageLocat).ExecuteCommand();
+                        await Db.Updateable(storageLocat).ExecuteCommandAsync();
                     }
                     //鏉$爜绠$悊(鎵樼洏)
-                    var pallets = Db.Queryable<SysPallets>().First(m => m.PalletNo == d.PalletNo);
+                    var pallets = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == d.PalletNo);
                     if (pallets != null && pallets.Status == "1")
                     {
                         //灏嗘墭鐩樺彿鐘舵�佸彉鏇翠负 0 鏈娇鐢�
                         pallets.Status = "0";
-                        pallets.UpdateUser = userId;
+                        pallets.UpdateUser = _userManager.UserId;
                         pallets.UpdateTime = time;
 
-                        Db.Updateable(pallets).ExecuteCommand();
+                        await Db.Updateable(pallets).ExecuteCommandAsync();
                     }
                     //鐩樼偣璁板綍
-                    var demo = checkLog.Where(m => m.PalletNo == d.PalletNo).ToList();
+                    var demo = await checkLog.Where(m => m.PalletNo == d.PalletNo).ToListAsync();
                     foreach (var l in demo)
                     {
                         if (l.CheckResult == 0)//姝e父
@@ -846,48 +829,55 @@
                         else if (l.CheckResult == 1)//鐩樹簭
                         {
                             //鐗╃悊鍒犻櫎搴撳瓨绠辨敮淇℃伅
-                            var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3);
+                            var de3 = await stockBox.FirstAsync(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3);
                             if (de3 == null)
                             {
-                                throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�");
+                                throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�");
                             }
-                            Db.Deleteable(de3).ExecuteCommand();
+                            await Db.Deleteable(de3).ExecuteCommandAsync();
                             //鐗╃悊鍒犻櫎搴撳瓨鏄庣粏
-                            var de2 = stockDetail.First(m => m.Id == de3.StockDetailId);
+                            var de2 = await stockDetail.FirstAsync(m => m.Id == de3.StockDetailId);
                             if (de2 == null)
                             {
-                                throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�");
+                                throw Oops.Bah($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�");
                             }
-                            Db.Deleteable(de2).ExecuteCommand();
+                            await Db.Deleteable(de2).ExecuteCommandAsync();
                             //鏇存敼搴撳瓨鏁伴噺鍜岄攣瀹氭暟閲�
-                            var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo);
+                            var de = await stock.FirstAsync(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo);
                             if (de == null)
                             {
-                                throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅");
+                                throw Oops.Bah($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅");
                             }
                             de.Qty -= de3.Qty;
                             de.LockQty -= de3.Qty;
 
-                            Db.Updateable(de).ExecuteCommand();
+                            await Db.Updateable(de).ExecuteCommandAsync();
                         }
                     }
                     //灏嗙洏鐐规槑缁嗙姸鎬佹敼涓� 宸茶皟鏁�
                     d.Status = 4;
                     d.UpdateTime = time;
-                    d.UpdateUser = userId;
+                    d.UpdateUser = _userManager.UserId;
 
-                    Db.Updateable(d).ExecuteCommand();
+                    await Db.Updateable(d).ExecuteCommandAsync();
                 }
                 //灏嗙洏鐐规�昏〃鐘舵�佹敼涓� 鐢熸垚璋冩暣
                 notice.Status = 3;
                 notice.UpdateTime = time;
-                notice.UpdateUser = userId;
-                Db.Updateable(notice).ExecuteCommand();
+                notice.UpdateUser = _userManager.UserId;
+                await Db.Updateable(notice).ExecuteCommandAsync();
                 //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "璋冩暣鍗曟嵁", $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId);
+                //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "璋冩暣鍗曟嵁", $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId);
+                await _operation.AddLogOperationCr(new OperationInputVm()
+                {
+                    ParentName = "搴撳唴浣滀笟",
+                    MenuName = "鐩樼偣鍗曟嵁",
+                    FkNo = notice.CRNo,
+                    TypeName = "璋冩暣鍗曟嵁",
+                    Msg = $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅"
+                });
                 //鎻愪氦浜嬪姟
                 Db.CommitTran();
-                return true;
             }
             catch (Exception e)
             {
@@ -897,7 +887,7 @@
         }
 
         //鐩樼偣涓嬪彂鍑哄簱
-        public List<OutCommandDto> CheckOutHouse(string crNo, string outMode, int userId, string url, out string str)
+        public async Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str)
         {
             try
             {
@@ -909,25 +899,25 @@
                 #endregion
                 var com = new Common();
                 //assign.IsHavePyTask();
-                var notice = Db.Queryable<BllStockCheck>().First(m => m.CRNo == crNo && m.IsDel == "0");
+                var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
                 if (notice == null)
                 {
-                    throw new Exception($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
+                    throw Oops.Bah($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
                 }
                 //鎵�鏈夎鍑哄簱鐨勭洏鐐规槑缁嗕俊鎭�(绛夊緟鐨勪俊鎭拰寰呮嫞璐х殑淇℃伅)
-                var list = Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToList();
+                var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToListAsync();
                 if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鐩樼偣鏄庣粏
                 {
-                    throw new Exception("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
+                    throw Oops.Bah("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
                 }
                 #region 
                 //瑕佸嚭搴撶殑鎵樼洏闆嗗悎
                 var outLpnList = list.Select(m => m.PalletNo).Distinct().ToList();
                 //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
-                var outStockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList();
-                var outStockBox = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList();
+                var outStockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+                var outStockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
                 //鑾峰彇鐗╂枡淇℃伅
-                var skuNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToList();
+                var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
                 var time = DateTime.Now;
                 Db.BeginTran();
                 try
@@ -959,7 +949,7 @@
                                     LotText = de.LotText,
                                     SupplierLot = de.SupplierLot,
 
-                                    CreateUser = userId,
+                                    CreateUser = _userManager.UserId,
                                     CreateTime = time
                                 };
                                 logList.Add(checkLog);
@@ -987,7 +977,7 @@
                                         LotText = b.LotText,
                                         SupplierLot = b.SupplierLot,
 
-                                        CreateUser = userId,
+                                        CreateUser = _userManager.UserId,
                                         CreateTime = time
                                     };
                                     logList.Add(checkLog);
@@ -995,7 +985,7 @@
                             }
 
                             //鐢熸垚鐩樼偣璁板綍
-                            Db.Insertable(logList).ExecuteCommand();
+                            await Db.Insertable(logList).ExecuteCommandAsync();
                         }
                         // 鍌ㄤ綅鍙�
                         var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo).LocatNo;
@@ -1010,25 +1000,25 @@
                             {
                                 //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 
                                 item.Status = 2;
-                                Db.Updateable(item).ExecuteCommand();
+                                await Db.Updateable(item).ExecuteCommandAsync();
                                 //鐩樼偣淇℃伅淇敼
                                 if (notice.Status == 0)
                                 {
                                     notice.CheckDate = DateTime.Now;
                                     notice.Status = 1;
-                                    notice.UpdateUser = userId;
+                                    notice.UpdateUser = _userManager.UserId;
                                     notice.UpdateTime = time;
-                                    Db.Updateable(notice).ExecuteCommand();
+                                    await Db.Updateable(notice).ExecuteCommandAsync();
                                 }
                                 //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
-                                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToList();
+                                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToListAsync();
                                 foreach (var s in stockDetail)
                                 {
                                     s.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
                                     s.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
                                     s.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
                                     s.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                                    Db.Updateable(s).ExecuteCommand();
+                                    await Db.Updateable(s).ExecuteCommandAsync();
                                 }
                                 flagList.Add(5);
                                 continue;
@@ -1045,20 +1035,20 @@
                             {
                                 //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鏄庣粏淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 
                                 item.Status = 2;//鐘舵�� 
-                                Db.Updateable(item).ExecuteCommand();
+                                await Db.Updateable(item).ExecuteCommandAsync();
                                 if (notice.Status == 0)
                                 {
                                     notice.CheckDate = DateTime.Now;
                                     notice.Status = 1;
-                                    notice.UpdateUser = userId;
+                                    notice.UpdateUser = _userManager.UserId;
                                     notice.UpdateTime = time;
-                                    Db.Updateable(notice).ExecuteCommand();
+                                    await Db.Updateable(notice).ExecuteCommandAsync();
                                 }
                             }
                             continue;
                         }
                         //褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
-                        var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");
+                        var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo && m.IsDel == "0");
                         if (locate == null)
                         {
                             flagList.Add(2);
@@ -1082,7 +1072,6 @@
                                 Sender = "WMS",
                                 Receiver = "WCS",
                                 IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-
                                 StartLocat = locate.LocatNo,//璧峰浣嶇疆
                                 EndLocat = outMode,//鐩爣浣嶇疆
                                 PalletNo = item.PalletNo,//鎵樼洏鐮�
@@ -1095,7 +1084,7 @@
 
                                 CreateTime = time
                             };
-                            Db.Insertable(exTask).ExecuteCommand();
+                            await Db.Insertable(exTask).ExecuteCommandAsync();
 
                             outDtoList.Add(new OutCommandDto()
                             {
@@ -1117,17 +1106,17 @@
                                 {
                                     notice.CheckDate = DateTime.Now;
                                     notice.Status = 1;
-                                    notice.UpdateUser = userId;
+                                    notice.UpdateUser = _userManager.UserId;
                                     notice.UpdateTime = time;
-                                    Db.Updateable(notice).ExecuteCommand();
+                                    await Db.Updateable(notice).ExecuteCommandAsync();
                                 }
                             }
                             locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
-                            Db.Updateable(locate).ExecuteCommand();
+                            await Db.Updateable(locate).ExecuteCommandAsync();
 
                             item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
                             item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                            Db.Updateable(item).ExecuteCommand();
+                            await Db.Updateable(item).ExecuteCommandAsync();
                             #endregion
 
                             flagList.Add(0);
@@ -1142,16 +1131,16 @@
                                 {
                                     notice.CheckDate = DateTime.Now;
                                     notice.Status = 1;
-                                    notice.UpdateUser = userId;
+                                    notice.UpdateUser = _userManager.UserId;
                                     notice.UpdateTime = time;
-                                    Db.Updateable(notice).ExecuteCommand();
+                                    await Db.Updateable(notice).ExecuteCommandAsync();
 
                                 }
                             }
                             var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "2" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
                             item.TaskNo = taskNo.TaskNo;
                             item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                            Db.Updateable(item).ExecuteCommand();
+                            await Db.Updateable(item).ExecuteCommandAsync();
 
                             #endregion
                         }
@@ -1161,7 +1150,15 @@
                         }
                     }
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
+                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
+                    await _operation.AddLogOperationCr(new OperationInputVm()
+                    {
+                        ParentName = "搴撳唴浣滀笟",
+                        MenuName = "鐩樼偣鍗曟嵁",
+                        FkNo = crNo,
+                        TypeName = "鍑哄簱",
+                        Msg = $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟"
+                    });
                     Db.CommitTran();
 
                     str = string.Empty;
@@ -1233,7 +1230,7 @@
         }
 
         //鐩樼偣鍑哄簱瀹屾垚
-        public void CheckSuccess(string taskNo, int userId)
+        public async Task CheckSuccess(string taskNo, int userId)
         {
             try
             {
@@ -1241,48 +1238,56 @@
                 var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
                 if (task == null)
                 {
-                    throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
+                    throw Oops.Bah($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
                 }
                 if (task.Status == "2")
                 {
-                    throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
+                    throw Oops.Bah("褰撳墠浠诲姟宸插畬鎴�");
                 }
                 Db.BeginTran();
                 //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
-                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
+                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToListAsync();
                 var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault();
                 //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
-                var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo);
+                var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo);
 
                 task.Status = "2";//浠诲姟鐘舵��
                 task.IsSend = 0;
                 task.IsCancel = 0;
                 task.IsFinish = 0;
                 task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
-                Db.Updateable(task).ExecuteCommand();
+                await Db.Updateable(task).ExecuteCommandAsync();
                 locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級
-                Db.Updateable(locate).ExecuteCommand();
+                await Db.Updateable(locate).ExecuteCommandAsync();
                 foreach (var item in stockDetail)
                 {
                     item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
                     item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
                     item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
                     item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                    Db.Updateable(item).ExecuteCommand();
+                    await Db.Updateable(item).ExecuteCommandAsync();
                 }
                 //鐩樼偣鏄庣粏锛堟洿鏀圭姸鎬侊級
-                var checkDetails = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToList();
+                var checkDetails = await Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToListAsync();
 
                 foreach (var item in checkDetails)
                 {
                     item.Status = 2;
-                    Db.Updateable(item).ExecuteCommand();
+                    await Db.Updateable(item).ExecuteCommandAsync();
                 }
 
-                if (userId != 0)
+                if (_userManager.UserId != 0)
                 {
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+                    await _operation.AddLogOperationCr(new OperationInputVm()
+                    {
+                        ParentName = "搴撳唴浣滀笟",
+                        MenuName = "搴撳唴鏃ュ織",
+                        FkNo = taskNo,
+                        TypeName = "瀹屾垚",
+                        Msg = $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�"
+                    });
                 }
                 Db.CommitTran();
 
@@ -1295,27 +1300,27 @@
         }
 
         //AGV绉诲簱瀹屾垚
-        public void MoveSuccess(string taskNo, int userId)
+        public async Task MoveSuccess(string taskNo)
         {
             try
             {
                 //褰撳墠浠诲姟淇℃伅
-                var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+                var task = await Db.Queryable<LogTask>().FirstAsync(m => m.TaskNo == taskNo && m.IsDel == "0");
                 if (task == null)
                 {
-                    throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
+                    throw Oops.Bah($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
                 }
                 if (task.Status == "2")
                 {
-                    throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
+                    throw Oops.Bah("褰撳墠浠诲姟宸插畬鎴�");
                 }
                 Db.BeginTran();
                 //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
-                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
+                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToListAsync();
                 var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault();
-               
+
                 //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
-                var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo);
+                var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo);
 
                 //鏇存敼浠诲姟
                 task.Status = "2";//浠诲姟鐘舵��
@@ -1325,16 +1330,16 @@
                 task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
                 Db.Updateable(task).ExecuteCommand();
                 // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級
-                locate.Status = "0"; 
+                locate.Status = "0";
                 Db.Updateable(locate).ExecuteCommand();
 
                 //鐩爣鍌ㄤ綅淇℃伅
-                var endLocate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat);
+                var endLocate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == task.EndLocat);
                 if (endLocate != null)
                 {
                     if (endLocate.Status != "0")
                     {
-                        throw new Exception("鐩爣鍌ㄤ綅鐘舵�侀潪绌哄偍浣�");
+                        throw Oops.Bah("鐩爣鍌ㄤ綅鐘舵�侀潪绌哄偍浣�");
                     }
                 }
                 //鏇存敼搴撳瓨鏄庣粏
@@ -1355,25 +1360,33 @@
                         item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
                         item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
                         item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                    }                   
-                    Db.Updateable(item).ExecuteCommand();
+                    }
+                    await Db.Updateable(item).ExecuteCommandAsync();
 
                     //鏇存敼搴撳瓨鎬昏〃
                     var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
                     stock.LockQty -= (decimal)item.Qty;
-                    Db.Updateable(stock).ExecuteCommand();
+                    await Db.Updateable(stock).ExecuteCommandAsync();
                 }
                 if (endLocate != null)
                 {
                     //鏇存敼鐩爣鍌ㄤ綅鐘舵��
                     endLocate.Status = "1";//鏈夌墿鍝�
-                    Db.Updateable(endLocate).ExecuteCommand();
+                    await Db.Updateable(endLocate).ExecuteCommandAsync();
                 }
 
-                if (userId != 0)
+                if (_userManager.UserId != 0)
                 {
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+                    await _operation.AddLogOperationCr(new OperationInputVm()
+                    {
+                        ParentName = "搴撳唴浣滀笟",
+                        MenuName = "搴撳唴鏃ュ織",
+                        FkNo = taskNo,
+                        TypeName = "瀹屾垚",
+                        Msg = $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�"
+                    });
                 }
                 Db.CommitTran();
 
@@ -1386,19 +1399,19 @@
         }
 
         //閲嶆柊涓嬪彂鐩樼偣鍑哄簱浠诲姟
-        public OutCommandDto AgainSendCheckTask(string taskNo, int userId, string url)
+        public async Task<OutCommandDto> AgainSendCheckTask(string taskNo, string url)
         {
             try
             {
-                var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+                var task = await Db.Queryable<LogTask>().FirstAsync(m => m.TaskNo == taskNo && m.IsDel == "0");
                 if (task == null)
                 {
-                    throw new Exception("鏈煡璇㈠埌浠诲姟淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌浠诲姟淇℃伅");
                 }
-                var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.PalletNo == task.PalletNo);
+                var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.PalletNo == task.PalletNo);
                 if (stockDetail == null)
                 {
-                    throw new Exception(task.PalletNo + " 褰撳墠鎵樼洏鏈湪搴撳唴锛岃鏍稿疄淇℃伅");
+                    throw Oops.Bah(task.PalletNo + " 褰撳墠鎵樼洏鏈湪搴撳唴锛岃鏍稿疄淇℃伅");
                 }
                 Db.BeginTran();
                 var locateNo = task.StartLocat;
@@ -1407,13 +1420,13 @@
                 {
                     locateNo = stockDetail.LocatNo;
                     task.StartLocat = locateNo;
-                    Db.Updateable(task).ExecuteCommand();
+                    await Db.Updateable(task).ExecuteCommandAsync();
                 }
                 var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo);
                 if (locate != null && locate.Status != "3")
                 {
                     locate.Status = "3";
-                    Db.Updateable(locate).ExecuteCommand();
+                    await Db.Updateable(locate).ExecuteCommandAsync();
                 }
                 var outDto = new OutCommandDto()
                 {
@@ -1427,7 +1440,15 @@
                     Order = 1
                 }; //鍑哄簱鏁版嵁 
                 //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "涓嬪彂", $"鐐瑰嚮涓嬪彂鎸夐挳銆侀噸鏂颁笅鍙戜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
+                //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "涓嬪彂", $"鐐瑰嚮涓嬪彂鎸夐挳銆侀噸鏂颁笅鍙戜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
+                await _operation.AddLogOperationCr(new OperationInputVm()
+                {
+                    ParentName = "搴撳唴浣滀笟",
+                    MenuName = "搴撳唴鏃ュ織",
+                    FkNo = taskNo,
+                    TypeName = "涓嬪彂",
+                    Msg = $"鐐瑰嚮涓嬪彂鎸夐挳銆侀噸鏂颁笅鍙戜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�"
+                });
                 Db.CommitTran();
                 // 姝e紡杩愯绋嬪簭鏀惧紑
                 var list = new List<string> { outDto.TaskNo };
@@ -1468,17 +1489,17 @@
         }
 
         //鍙栨秷鐩樼偣鍑哄簱浠诲姟
-        public void CancelCheckTask(string taskNo, int userId)
+        public async Task CancelCheckTask(string taskNo)
         {
             try
             {
                 Db.BeginTran();
                 try
                 {
-                    var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+                    var task = await Db.Queryable<LogTask>().FirstAsync(m => m.TaskNo == taskNo && m.IsDel == "0");
                     if (task == null)
                     {
-                        throw new Exception("鏈煡璇㈠埌浠诲姟淇℃伅");
+                        throw Oops.Bah("鏈煡璇㈠埌浠诲姟淇℃伅");
                     }
                     //淇敼浠诲姟 
                     task.IsSuccess = 0;
@@ -1487,37 +1508,45 @@
                     task.IsFinish = 0;
                     task.Status = "4";
                     task.CancelDate = DateTime.Now;
-                    Db.Updateable(task).ExecuteCommand();
+                    await Db.Updateable(task).ExecuteCommandAsync();
 
                     //淇敼鐩樼偣鏄庣粏
-                    var checkDetail = Db.Queryable<BllStockCheckDetail>().First(w => w.TaskNo == task.TaskNo);
+                    var checkDetail = await Db.Queryable<BllStockCheckDetail>().FirstAsync(w => w.TaskNo == task.TaskNo);
                     if (checkDetail == null)
                     {
-                        throw new Exception("鏈煡璇㈠埌鐩樼偣鏄庣粏淇℃伅锛岃鏍稿疄锛�");
+                        throw Oops.Bah("鏈煡璇㈠埌鐩樼偣鏄庣粏淇℃伅锛岃鏍稿疄锛�");
                     }
                     checkDetail.Status = 0;
                     checkDetail.TaskNo = "";
-                    Db.Updateable(checkDetail).ExecuteCommand();
+                    await Db.Updateable(checkDetail).ExecuteCommandAsync();
 
                     //淇敼鐩樼偣璁板綍
-                    var checkLog = Db.Queryable<BllStockCheckLog>().First(w => w.CRNo == checkDetail.CRNo && w.PalletNo == checkDetail.PalletNo && w.IsDel == "0");
+                    var checkLog = await Db.Queryable<BllStockCheckLog>().FirstAsync(w => w.CRNo == checkDetail.CRNo && w.PalletNo == checkDetail.PalletNo && w.IsDel == "0");
                     if (checkLog == null)
                     {
-                        throw new Exception("鏈煡璇㈠埌鐩樼偣璁板綍淇℃伅锛岃鏍稿疄锛�");
+                        throw Oops.Bah("鏈煡璇㈠埌鐩樼偣璁板綍淇℃伅锛岃鏍稿疄锛�");
                     }
                     checkLog.IsDel = "1";
-                    Db.Updateable(checkLog).ExecuteCommand();
+                    await Db.Updateable(checkLog).ExecuteCommandAsync();
                     //淇敼鍌ㄤ綅淇℃伅
-                    var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.StartLocat);
+                    var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.StartLocat);
                     if (locat == null)
                     {
-                        throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�");
+                        throw Oops.Bah("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�");
                     }
                     locat.Status = "1"; //鏈夌墿鍝�
-                    Db.Updateable(locat).ExecuteCommand();
+                    await Db.Updateable(locat).ExecuteCommandAsync();
 
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
+                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
+                    await _operation.AddLogOperationCr(new OperationInputVm()
+                    {
+                        ParentName = "搴撳唴浣滀笟",
+                        MenuName = "搴撳唴鏃ュ織",
+                        FkNo = taskNo,
+                        TypeName = "鍙栨秷",
+                        Msg = $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�"
+                    });
                     Db.CommitTran();
                 }
                 catch (Exception e)
@@ -1533,16 +1562,16 @@
         }
 
         //鍙栨秷AGV绉诲簱浠诲姟
-        public void CancelMoveTask(string taskNo, int userId)
+        public async Task CancelMoveTask(string taskNo)
         {
             try
             {
                 Db.BeginTran();
 
-                var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+                var task = await Db.Queryable<LogTask>().FirstAsync(m => m.TaskNo == taskNo && m.IsDel == "0");
                 if (task == null)
                 {
-                    throw new Exception("鏈煡璇㈠埌浠诲姟淇℃伅");
+                    throw Oops.Bah("鏈煡璇㈠埌浠诲姟淇℃伅");
                 }
                 //淇敼浠诲姟 
                 task.IsSuccess = 0;
@@ -1551,46 +1580,54 @@
                 task.IsFinish = 0;
                 task.Status = "4";
                 task.CancelDate = DateTime.Now;
-                Db.Updateable(task).ExecuteCommand();
+                await Db.Updateable(task).ExecuteCommandAsync();
 
                 //淇敼璧峰鍌ㄤ綅淇℃伅
-                var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.StartLocat);
+                var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.StartLocat);
                 if (locat == null)
                 {
-                    throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�");
+                    throw Oops.Bah("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�");
                 }
                 locat.Status = "1"; //鏈夌墿鍝�
                 Db.Updateable(locat).ExecuteCommand();
 
                 //淇敼鐩爣鍌ㄤ綅淇℃伅
-                var locatEnd = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.EndLocat);
+                var locatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.EndLocat);
                 if (locatEnd != null)
                 {
                     locatEnd.Status = "0"; //绌哄偍浣�
-                    Db.Updateable(locatEnd).ExecuteCommand();
-                }                
+                    await Db.Updateable(locatEnd).ExecuteCommandAsync();
+                }
 
                 //淇敼搴撳瓨鏄庣粏
-                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
+                var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
                 if (stockDetail == null)
                 {
-                    throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樻槑缁嗕俊鎭笉瀛樺湪,璇锋鏌�!");
+                    throw Oops.Bah("鎵樼洏涓婄墿鏂欏簱瀛樻槑缁嗕俊鎭笉瀛樺湪,璇锋鏌�!");
                 }
                 stockDetail.Status = "0";//寰呭垎閰�
                 stockDetail.LockQty = 0;//閿佸畾鏁伴噺
-                Db.Updateable(stockDetail).ExecuteCommand();
+                await Db.Updateable(stockDetail).ExecuteCommandAsync();
 
                 //淇敼搴撳瓨
-                var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == stockDetail.SkuNo && w.LotNo == stockDetail.LotNo);
+                var stock = await Db.Queryable<DataStock>().FirstAsync(w => w.IsDel == "0" && w.SkuNo == stockDetail.SkuNo && w.LotNo == stockDetail.LotNo);
                 if (stock == null)
                 {
-                    throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樹俊鎭笉瀛樺湪,璇锋鏌�!");
+                    throw Oops.Bah("鎵樼洏涓婄墿鏂欏簱瀛樹俊鎭笉瀛樺湪,璇锋鏌�!");
                 }
                 stock.LockQty -= (decimal)stockDetail.Qty;
-                Db.Updateable(stock).ExecuteCommand();
+                await Db.Updateable(stock).ExecuteCommandAsync();
 
                 //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
+                //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId);
+                await _operation.AddLogOperationCr(new OperationInputVm()
+                {
+                    ParentName = "搴撳唴浣滀笟",
+                    MenuName = "搴撳唴鏃ュ織",
+                    FkNo = taskNo,
+                    TypeName = "鍙栨秷",
+                    Msg = $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�"
+                });
                 Db.CommitTran();
             }
             catch (Exception e)
diff --git a/Wms/WMS.BLL/LogServer/OperationCrServer.cs b/Wms/WMS.BLL/LogServer/OperationCrServer.cs
index 8423c4d..253df18 100644
--- a/Wms/WMS.BLL/LogServer/OperationCrServer.cs
+++ b/Wms/WMS.BLL/LogServer/OperationCrServer.cs
@@ -2,8 +2,12 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Identity;
 using Model.ModelDto.LogDto;
+using Model.ModelVm.LogVm;
 using SqlSugar;
+using Utility;
 using WMS.DAL;
 using WMS.Entity.Context;
 using WMS.Entity.LogEntity;
@@ -15,8 +19,13 @@
     public class OperationCrServer: DbHelper<LogOperationCR>,IOperationCRServer
     {
         private static readonly SqlSugarScope Db = DataContext.Db;
+        private readonly UserManager _userManager;
         public OperationCrServer() : base(Db)
         {
+        }
+        public OperationCrServer(UserManager userManager) : base(Db)
+        {
+            _userManager = userManager;
         }
         public List<OperationDto> GetLogOperationCrList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count)
         {
@@ -61,9 +70,8 @@
         {
             try
             {
-                var contextDb = DataContext.Db;
-                var menu = contextDb.Queryable<SysFunctionMenu>().Where(m => m.IsDel == "0").ToList();
-                var dic = contextDb.Queryable<SysDictionary>().Where(m => m.ParentNo == "LogType" && m.IsDel == "0").ToList();
+                var menu = Db.Queryable<SysFunctionMenu>().Where(m => m.IsDel == "0").ToList();
+                var dic = Db.Queryable<SysDictionary>().Where(m => m.ParentNo == "LogType" && m.IsDel == "0").ToList();
                 var typeId = dic.FirstOrDefault(m => m.DictName == type);
 
                 var n = Add(new LogOperationCR()
@@ -85,5 +93,18 @@
                 throw new Exception(e.Message);
             }
         }
+        /// <summary>
+        /// 鏂板绯荤粺鎿嶄綔鏃ュ織
+        /// </summary>
+        /// <returns></returns>
+        public async Task<int> AddLogOperationCr(OperationInputVm input)
+        {
+            input.ParentNo = (await Db.Queryable<SysFunctionMenu>().FirstAsync(s => s.MenuName == input.ParentName && s.IsDel == "0"))?.MenuNo;
+            input.MenuNo = (await Db.Queryable<SysFunctionMenu>().FirstAsync(s => s.MenuName == input.MenuName && s.IsDel == "0"))?.MenuNo;
+            input.Type = (await Db.Queryable<SysDictionary>().FirstAsync(s => s.DictName == input.TypeName && s.IsDel == "0"))?.Id.ToString();
+            input.CreateUser = _userManager.UserId;
+            input.CreateTime = DateTime.Now;
+            return await Db.Insertable<LogOperationSys>(input).ExecuteCommandAsync();
+        }
     }
 }
diff --git a/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs b/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs
index d4a1b51..c9c34be 100644
--- a/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs
+++ b/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs
@@ -1,10 +1,12 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.InterFaceModel;
 using Model.ModelDto.BllCheckDto;
 using Model.ModelDto.DataDto;
 using Model.ModelVm.BllCheckVm;
+using SqlSugar;
 
 namespace WMS.IBLL.IBllCheckServer
 {
@@ -25,7 +27,7 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<StockCheckDto> GetStockCheckList(string crNo, string status, string palletNo, string skuNo, string skuName, string lotNo, string startTime, string endTime, int page, int limit, out int count);
+        Task<List<StockCheckDto>> GetStockCheckList(string crNo, string status, string palletNo, string skuNo, string skuName, string lotNo, string startTime, string endTime, int page, int limit, RefAsync<int> count);
 
         /// <summary>
         /// 鑾峰彇鐩樼偣鍗曟嵁鏄庣粏
@@ -35,7 +37,7 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<StockCheckDetailDto> GetStockCheckDetailList(string crNo, int page, int limit, out int count);
+        Task<List<StockCheckDetailDto>> GetStockCheckDetailList(string crNo, int page, int limit, RefAsync<int> count);
 
         /// <summary>
         /// 鑾峰彇搴撳瓨鏄庣粏淇℃伅锛堢洏鐐归�夋嫨鏄庣粏鏁版嵁婧愶級
@@ -45,28 +47,28 @@
         /// <param name="locateNo">鍌ㄤ綅鍙�</param>
         /// <param name="msg">鐗╂枡缂栫爜銆佸悕绉般�佹壒娆″彿</param>
         /// <returns></returns>
-        List<StockDetailDto> GetCheckStockDetailList(string houseNo,string roadwayNo,string locateNo,string msg, int page, int limit, out int count);
+        Task<List<StockDetailDto>> GetCheckStockDetailList(string houseNo, string roadwayNo, string locateNo, string msg, int page, int limit, RefAsync<int> count);
 
         /// <summary>
         /// 鑾峰彇缂栬緫鐩樼偣鍗曟椂淇℃伅
         /// </summary>
         /// <param name="crNo">鐩樼偣鍗曟嵁鍙�</param>
         /// <returns></returns>
-        EditStockCheckDto GetStockCheckDetailById(string crNo);
+        Task<EditStockCheckDto> GetStockCheckDetailById(string crNo);
 
         /// <summary>
         /// 娣诲姞/缂栬緫鐩樼偣鍗�
         /// </summary>
         /// <param name="model">搴撳瓨鏄庣粏闆嗗悎</param>
         /// <param name="userId"></param>
-        void AddEditStockCheck(AddEditStockCheckVm model, int userId); 
-        
+        Task AddEditStockCheck(AddEditStockCheckVm model);
+
         /// <summary>
         /// 鍒犻櫎鐩樼偣鍗�
         /// </summary>
         /// <param name="id">鐩樼偣鍗旾d</param>
         /// <param name="userId">鎿嶄綔浜�</param>
-        void DelStockCheck(int id, int userId);
+        Task DelStockCheck(int id);
 
         /// <summary>
         /// 缁存姢鐩樼偣鍗曞娉ㄤ俊鎭�
@@ -74,7 +76,7 @@
         /// <param name="id"></param>
         /// <param name="demo"></param>
         /// <param name="userId"></param>
-        void EditNoticeDemo(int id, string demo, int userId);
+        Task EditNoticeDemo(int id, string demo);
 
         /// <summary>
         /// 璋冩暣搴撳瓨骞�
@@ -82,14 +84,14 @@
         /// <param name="id"></param>
         /// <param name="userId"></param>
         /// <returns></returns>
-        bool StockAdjust(int id, int userId);
+        Task StockAdjust(int id);
         /// <summary>
         /// 璋冩暣搴撳瓨-閽堝寮傚父鐢熸垚鐨�
         /// </summary>
         /// <param name="id"></param>
         /// <param name="userId"></param>
         /// <returns></returns>
-        bool StockAdjustAuto(int id, int userId);
+        Task StockAdjustAuto(int id);
 
         //-----------------------------------------------------------------------
         /// <summary>
@@ -101,20 +103,20 @@
         /// <param name="url"></param>
         /// <param name="str"></param>
         /// <returns></returns>
-        List<OutCommandDto> CheckOutHouse(string crNo, string outMode, int userId, string url, out string str);
+        Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str);
 
         /// <summary>
         /// 鐩樼偣鍑哄簱瀹屾垚
         /// </summary>
         /// <param name="taskNo">浠诲姟鍙�</param>
         /// <param name="userId">wms锛氭搷浣滀汉 wcs锛�0</param>
-        void CheckSuccess(string taskNo, int userId);
+        Task CheckSuccess(string taskNo,int userId);
 
         //閲嶆柊涓嬪彂鐩樼偣鍑哄簱浠诲姟
-        OutCommandDto AgainSendCheckTask(string taskNo, int userId, string url);
+        Task<OutCommandDto> AgainSendCheckTask(string taskNo, string url);
 
         //鍙栨秷鐩樼偣鍑哄簱浠诲姟
-        void CancelCheckTask(string taskNo, int userId);
+        Task CancelCheckTask(string taskNo);
 
         /// <summary>
         /// 鐩樼偣缁撴灉涓婁紶erp
@@ -129,13 +131,13 @@
         /// </summary>
         /// <param name="taskNo"></param>
         /// <param name="userId"></param>
-        void MoveSuccess(string taskNo, int userId);
+        Task MoveSuccess(string taskNo);
         /// <summary>
         /// 鍙栨秷AGV绉诲簱浠诲姟
         /// </summary>
         /// <param name="taskNo"></param>
         /// <param name="userId"></param>
-        void CancelMoveTask(string taskNo, int userId);
+        Task CancelMoveTask(string taskNo);
 
         #region 鏁版嵁褰掓。
         /// <summary>
diff --git a/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs b/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs
index 44e235a..eb4074c 100644
--- a/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs
+++ b/Wms/WMS.IBLL/ILogServer/IOperationCRServer.cs
@@ -1,7 +1,9 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.LogDto;
+using Model.ModelVm.LogVm;
 
 namespace WMS.IBLL.ILogServer
 {
@@ -32,5 +34,10 @@
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
         bool AddLogOperationCr(string parentNo, string menuName, string fkNo, string type, string msg, int userId);
+        /// <summary>
+        /// 鏂板绯荤粺鎿嶄綔鏃ュ織
+        /// </summary>
+        /// <returns></returns>
+        Task<int> AddLogOperationCr(OperationInputVm input);
     }
 }
diff --git a/Wms/Wms/Controllers/BasisController.cs b/Wms/Wms/Controllers/BasisController.cs
index d1d05d1..e208bcb 100644
--- a/Wms/Wms/Controllers/BasisController.cs
+++ b/Wms/Wms/Controllers/BasisController.cs
@@ -896,7 +896,7 @@
         {
             RefAsync<int> count = new RefAsync<int>();
             var bolls = await _customerSvc.GetCustomerList(model.CustomerNo, model.CustomerName, model.Type, model.LinkMan, model.Phone, model.Page, model.Limit, count);
-            return new SqlSugarPagedList<CustomerDto>() { Items = bolls, Total = bolls.Count };
+            return new SqlSugarPagedList<CustomerDto>() { Items = bolls, Total = count };
         }
         /// <summary>
         /// 鏌ヨ鍗曟潯瀹㈡埛淇℃伅
diff --git a/Wms/Wms/Controllers/BllCheckController.cs b/Wms/Wms/Controllers/BllCheckController.cs
index 27ff38b..79bbb0b 100644
--- a/Wms/Wms/Controllers/BllCheckController.cs
+++ b/Wms/Wms/Controllers/BllCheckController.cs
@@ -16,6 +16,8 @@
 using Model.ModelVm.BllSoVm;
 using Wms.Tools;
 using System.Collections;
+using Utility;
+using SqlSugar;
 
 namespace Wms.Controllers
 {
@@ -33,6 +35,7 @@
 
         private readonly IWarehouseOutsidePalletsServer _stockPallet; //搴撳鎵樼洏
         private readonly IStockFreectSetve _freect; //瑙e喕\鍐荤粨
+        private readonly UserManager _userManager;
 
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -43,7 +46,7 @@
         /// <param name="logSvc">搴撳唴鎿嶄綔鏃ュ織Svc</param>
         /// <param name="stockPallet">搴撳鎵樼洏</param>
         /// <param name="freect">瑙e喕\鍐荤粨</param>
-        public BllCheckController(IOptions<ApiUrlConfig> setting, IStockCheckServer stockCheckSvc, IStockCheckLogServer stockCheckLogSvc, ITaskServer taskSvc, IOperationCRServer logSvc, IWarehouseOutsidePalletsServer stockPallet, IStockFreectSetve freect)
+        public BllCheckController(IOptions<ApiUrlConfig> setting, IStockCheckServer stockCheckSvc, IStockCheckLogServer stockCheckLogSvc, ITaskServer taskSvc, IOperationCRServer logSvc, IWarehouseOutsidePalletsServer stockPallet, IStockFreectSetve freect, UserManager userManager)
         {
             _config = setting.Value;
             _stockCheckSvc = stockCheckSvc;
@@ -52,6 +55,7 @@
             _logSvc = logSvc;
             _stockPallet = stockPallet;
             _freect = freect;
+            _userManager = userManager;
         }
 
         #region 鐩樼偣鍗曟嵁
@@ -62,18 +66,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetStockCheckList(GetStockCheckVm model)
+        public async Task<IActionResult> GetStockCheckList(GetStockCheckVm model)
         {
-            try
-            {
-                var bolls = _stockCheckSvc.GetStockCheckList(model.CrNo, model.Status, model.PalletNo, model.SkuNo, model.SkuName, model.LotNo, model.StartTime, model.EndTime, model.Page, model.Limit, out int count);
-
-                return Ok(new { code = 0, count, msg = "鐩樼偣鍗曚俊鎭�", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _stockCheckSvc.GetStockCheckList(model.CrNo, model.Status, model.PalletNo, model.SkuNo, model.SkuName, model.LotNo, model.StartTime, model.EndTime, model.Page, model.Limit, count);
+            return Ok(new { code = 0, count, msg = "鐩樼偣鍗曚俊鎭�", data = bolls });
         }
 
         /// <summary>
@@ -82,18 +79,12 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetStockCheckDetailList(GetStockCheckVm model)
+        public async Task<IActionResult> GetStockCheckDetailList(GetStockCheckVm model)
         {
-            try
-            {
-                var bolls = _stockCheckSvc.GetStockCheckDetailList(model.CrNo, model.Page, model.Limit, out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _stockCheckSvc.GetStockCheckDetailList(model.CrNo, model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "鐩樼偣鍗曟槑缁嗕俊鎭�", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return Ok(new { code = 0, count, msg = "鐩樼偣鍗曟槑缁嗕俊鎭�", data = bolls });
         }
         /// <summary>
         /// 鑾峰彇搴撳瓨鏄庣粏淇℃伅锛堢洏鐐归�夋嫨鏄庣粏鏁版嵁婧愶級
@@ -101,18 +92,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetCheckStockDetailList(GetStockDetailVm model)
+        public async Task<IActionResult> GetCheckStockDetailList(GetStockDetailVm model)
         {
-            try
-            {
-                var bolls = _stockCheckSvc.GetCheckStockDetailList(model.HouseNo, model.RoadwayNo, model.LocateNo, model.Msg, model.Page, model.Limit, out int count);
-
-                return Ok(new { code = 0, count, msg = "鑾峰彇搴撳瓨鏄庣粏淇℃伅", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _stockCheckSvc.GetCheckStockDetailList(model.HouseNo, model.RoadwayNo, model.LocateNo, model.Msg, model.Page, model.Limit, count);
+            return Ok(new { code = 0, count, msg = "鑾峰彇搴撳瓨鏄庣粏淇℃伅", data = bolls });
         }
 
         /// <summary>
@@ -121,18 +105,10 @@
         /// <param name="soNo"></param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetStockCheckDetailById(string crNo)
+        public async Task<IActionResult> GetStockCheckDetailById(string crNo)
         {
-            try
-            {
-                var bolls = _stockCheckSvc.GetStockCheckDetailById(crNo);
-
-                return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曠紪杈戜俊鎭�", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            var bolls = await _stockCheckSvc.GetStockCheckDetailById(crNo);
+            return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曠紪杈戜俊鎭�", data = bolls });
         }
 
         /// <summary>
@@ -141,29 +117,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult AddEditStockCheck(AddEditStockCheckVm model)
+        [UnitOfWork]
+        public async Task<IActionResult> AddEditStockCheck(AddEditStockCheckVm model)
         {
-            try
-            {
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(userId))
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                _stockCheckSvc.AddEditStockCheck(model, int.Parse(userId));
-
-                return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曟搷浣滄垚鍔�", data = "" });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = "鎿嶄綔澶辫触" + e.Message });
-            }
+            await _stockCheckSvc.AddEditStockCheck(model);
+            return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曟搷浣滄垚鍔�", data = "" });
         }
 
         /// <summary>
@@ -172,22 +130,12 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelStockCheck(IdVm model)
+        [UnitOfWork]
+        public async Task<IActionResult> DelStockCheck(IdVm model)
         {
             try
             {
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(userId))
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                _stockCheckSvc.DelStockCheck(model.Id, int.Parse(userId));
+                await _stockCheckSvc.DelStockCheck(model.Id);
 
                 return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曞垹闄ゆ垚鍔�" });
             }
@@ -204,31 +152,11 @@
         /// <param name="demo"></param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult EditNoticeDemo(int id, string demo)
+        [UnitOfWork]
+        public async Task<IActionResult> EditNoticeDemo(int id, string demo)
         {
-            try
-            {
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-                string userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(userId))
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                _stockCheckSvc.EditNoticeDemo(id, demo, int.Parse(userId));
-
-
-                return Ok(new { code = 0, msg = "缂栬緫澶囨敞鎴愬姛" });
-
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _stockCheckSvc.EditNoticeDemo(id, demo);
+            return Ok(new { code = 0, msg = "缂栬緫澶囨敞鎴愬姛" });
         }
         #endregion
 
@@ -320,7 +248,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _stockCheckSvc.AgainSendCheckTask(model.taskNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl);
+                //_stockCheckSvc.AgainSendCheckTask(model.taskNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl);
 
                 return Ok(new { code = 0, msg = "鎴愬姛涓嬪彂浠诲姟", data = "" });
             }
@@ -335,7 +263,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult CancelCheckTask(CheckTaskVm model)
+        public async Task<IActionResult> CancelCheckTask(CheckTaskVm model)
         {
             try
             {
@@ -350,7 +278,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _stockCheckSvc.CancelCheckTask(model.taskNo, int.Parse(userId));
+                await _stockCheckSvc.CancelCheckTask(model.taskNo);
 
                 return Ok(new { code = 0, msg = "鎴愬姛鍙栨秷浠诲姟", data = "" });
             }
@@ -365,7 +293,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult FinishCheckTask(CheckTaskVm model)
+        public async Task<IActionResult> FinishCheckTask(CheckTaskVm model)
         {
             try
             {
@@ -380,7 +308,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _stockCheckSvc.CheckSuccess(model.taskNo, int.Parse(userId));
+                await _stockCheckSvc.CheckSuccess(model.taskNo, int.Parse(userId));
 
                 return Ok(new { code = 0, msg = "鎴愬姛瀹屾垚浠诲姟", data = "" });
 
@@ -428,7 +356,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _stockPallet.SaveAppointSlot(model.StockDetailId,model.LocateId, int.Parse(userId));
+                _stockPallet.SaveAppointSlot(model.StockDetailId, model.LocateId, int.Parse(userId));
 
                 return Ok(new { code = 0, count = 0, msg = "鎸囧畾鍌ㄤ綅鎴愬姛", data = "" });
             }
@@ -448,22 +376,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult FinishMoveTask(CheckTaskVm model)
+        public async Task<IActionResult> FinishMoveTask(CheckTaskVm model)
         {
             try
             {
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(userId))
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                _stockCheckSvc.MoveSuccess(model.taskNo, int.Parse(userId));
+                await _stockCheckSvc.MoveSuccess(model.taskNo);
 
                 return Ok(new { code = 0, msg = "鎴愬姛瀹屾垚浠诲姟", data = "" });
             }
@@ -478,7 +395,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult CancelMoveTask(CheckTaskVm model)
+        public async Task<IActionResult> CancelMoveTask(CheckTaskVm model)
         {
             try
             {
@@ -493,7 +410,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _stockCheckSvc.CancelMoveTask(model.taskNo, int.Parse(userId));
+                await _stockCheckSvc.CancelMoveTask(model.taskNo);
 
                 return Ok(new { code = 0, msg = "鎴愬姛鍙栨秷浠诲姟", data = "" });
             }
@@ -513,11 +430,11 @@
         /// <param name="type">0锛氳幏鍙栧彲鍐荤粨搴撳瓨 1锛氳幏鍙栧彲瑙e喕鏁版嵁</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult ByTypeGetDataStockType(string SkuNo,int type)
+        public IActionResult ByTypeGetDataStockType(string SkuNo, int type)
         {
             try
             {
-                var models = _freect.ByTypeGetDataStockType(SkuNo,type);
+                var models = _freect.ByTypeGetDataStockType(SkuNo, type);
 
                 return Ok(new
                 {
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 27d21f1..fd9e65d 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -16,6 +16,8 @@
 using WMS.Entity.BllTaskEntity;
 using WMS.IBLL.IBllTaskServer;
 using Model.ModelVm.BllTaskVm;
+using Utility;
+using System.Threading.Tasks;
 
 namespace Wms.Controllers
 {
@@ -98,7 +100,7 @@
         /// <returns></returns>
         [Authorize]
         [HttpGet]
-        public IActionResult IssueOutHouse(string soNo,string unstackingMode, string outMode,string loadingAddre)
+        public IActionResult IssueOutHouse(string soNo, string unstackingMode, string outMode, string loadingAddre)
         {
             try
             {
@@ -119,10 +121,10 @@
                 //    return Ok(new { code = 1, msg = "璇烽�夋嫨鍑哄簱鍙�" });
                 //}
 
-                var list = _exNoticeSvc.IssueOutHouse(soNo,unstackingMode, outMode,loadingAddre, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl,out string str);
-                
-                return Ok(new { code = 0, msg = str , data = list }); 
-                
+                var list = _exNoticeSvc.IssueOutHouse(soNo, unstackingMode, outMode, loadingAddre, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str);
+
+                return Ok(new { code = 0, msg = str, data = list });
+
             }
             catch (Exception e)
             {
@@ -152,8 +154,8 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                var list = _exNoticeSvc.AgainSendSoTask(taskNo, int.Parse(userId),_config.WcsHost + _config.IssueComApiUrl2);
-               
+                var list = _exNoticeSvc.AgainSendSoTask(taskNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl2);
+
                 return Ok(new { code = 0, msg = "閲嶆柊涓嬪彂宸插畬鎴�", data = list });
 
 
@@ -172,7 +174,7 @@
         /// <returns></returns>
         [Authorize]
         [HttpGet]
-        public IActionResult CheckOutHouse(string crNo,string outMode)
+        public async Task<IActionResult> CheckOutHouse(string crNo, string outMode)
         {
             try
             {
@@ -187,8 +189,8 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-
-                var list = _crCheckSvc.CheckOutHouse(crNo, outMode,int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str);
+                string str = "";
+                var list = await _crCheckSvc.CheckOutHouse(crNo, outMode, _config.WcsHost + _config.IssueComApiUrl, str);
 
                 return Ok(new { code = 0, msg = str, data = list });
 
@@ -205,7 +207,7 @@
         /// <param name="taskNo"></param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult AgainSendCheckTask(string taskNo)
+        public async Task<IActionResult> AgainSendCheckTask(string taskNo)
         {
             try
             {
@@ -220,7 +222,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _crCheckSvc.AgainSendCheckTask(taskNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl2);
+                await _crCheckSvc.AgainSendCheckTask(taskNo, _config.WcsHost + _config.IssueComApiUrl2);
 
                 return Ok(new { code = 0, msg = "閲嶆柊涓嬪彂宸插畬鎴�", data = "" });
             }
@@ -251,17 +253,17 @@
                 var jsonData = JsonConvert.SerializeObject(model);
                 LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾锛�( {jsonData} ),", logStr);
 
-                 _asnPalletBindSvc.BindPalletStock(model, 0);
+                _asnPalletBindSvc.BindPalletStock(model, 0);
                 //鐢宠宸烽亾
                 var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, "W01");
                 LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
-                
+
                 return Ok(new { Success = 0, Message = "鎵樼洏缁戝畾-鐢宠宸烽亾鎴愬姛", TaskList = list });
             }
             catch (Exception e)
             {
                 LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾杩斿洖锛�( {e.Message} ),", logStr);
-                
+
                 return Ok(new ErpModel { Success = -1, Message = e.Message });
             }
         }
@@ -277,16 +279,16 @@
         public IActionResult RequestRoadWay(RequestLocate model)
         {
             var logStr = "";
-            
+
             logStr = $@".\log\WCS\WCS鐢宠宸烽亾" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            
+
             try
             {
-                 
+
                 var jsonData = JsonConvert.SerializeObject(model);
                 LogFile.SaveLogToFile($"WCS鐢宠宸烽亾锛�( {jsonData} ),", logStr);
-                
-                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, model.HouseNo );
+
+                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, model.HouseNo);
 
                 LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
                 //new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), 
@@ -336,7 +338,7 @@
             {
                 logStr = $@".\log\WCS\WCS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             }
-            
+
             try
             {
                 if (model.PalletNo.Length == 9)
@@ -351,11 +353,11 @@
                 }
 
                 string pallet = model.PalletNo.Substring(0, 8);
-                var list = _asnPalletBindSvc.RequestLocation(pallet, model.HouseNo,model.RoadwayNo);
+                var list = _asnPalletBindSvc.RequestLocation(pallet, model.HouseNo, model.RoadwayNo);
 
                 if (model.PalletNo.Length == 9)
                 {
-                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勬垚鍔熶俊鎭�",2);// int.Parse(userId)
+                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勬垚鍔熶俊鎭�", 2);// int.Parse(userId)
                     LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅鎴愬姛锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
                 }
                 else if (model.PalletNo.Length == 8)
@@ -364,7 +366,7 @@
                 }
                 if (model.PalletNo.Length == 9)
                 {
-                   
+
                 }
 
                 return Ok(new { Success = 0, Message = "鐢宠鍌ㄤ綅鎴愬姛", TaskList = list });
@@ -373,14 +375,14 @@
             {
                 if (model.PalletNo.Length == 9)
                 {
-                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0,8)}鐨勫け璐ヤ俊鎭�", 2);//int.Parse(userId)
+                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勫け璐ヤ俊鎭�", 2);//int.Parse(userId)
                     LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅澶辫触杩斿洖锛�( {e.Message} ),", logStr);
                 }
-                else if(model.PalletNo.Length == 8)
+                else if (model.PalletNo.Length == 8)
                 {
                     LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {e.Message} ),", logStr);
                 }
-                
+
                 return Ok(new ErpModel { Success = -1, Message = e.Message });
             }
         }
@@ -411,14 +413,14 @@
                     case "0"://鍏ュ簱瀹屾垚浠诲姟
                         if (model.TaskType == "0")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
                         {
-                            _asnPalletBindSvc.ArrivalSuccess(model.TaskNo,0);
+                            _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0);
                             return Ok(new WcsModel { StatusCode = 0, Msg = "鍏ュ簱瀹屾垚" });
                         }
                         break;
                     case "1"://鍑哄簱瀹屾垚浠诲姟
                         if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
                         {
-                            _exNoticeSvc.ExportSuccess(model.TaskNo,0);
+                            _exNoticeSvc.ExportSuccess(model.TaskNo, 0);
                             return Ok(new WcsModel { StatusCode = 0, Msg = "鍑哄簱瀹屾垚" });
                         }
                         else if (model.TaskType == "2")
@@ -445,8 +447,8 @@
                             //濉啓绉诲簱瀹屾垚浠g爜
                         }
                         break;
-                    default :
-                        return Ok(new WcsModel { StatusCode = -1, Msg = "浼犻�掔殑浠诲姟鐘舵�佷负澶辫触鐘舵��" });  
+                    default:
+                        return Ok(new WcsModel { StatusCode = -1, Msg = "浼犻�掔殑浠诲姟鐘舵�佷负澶辫触鐘舵��" });
                 }
                 return Ok(new WcsModel { StatusCode = -1, Msg = "浼犻�掔殑浠诲姟鐘舵�佷负澶辫触鐘舵��" });
             }
@@ -462,7 +464,7 @@
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult EmptyException(ReceiveWcsSignal model) 
+        public IActionResult EmptyException(ReceiveWcsSignal model)
         {
             var logStr = $@".\log\WCS\寮傚父鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             try
@@ -473,7 +475,7 @@
                 var bl = _exNoticeSvc.EmptyException(model);
 
                 LogFile.SaveLogToFile($"绌哄彇寮傚父锛�(鎵ц缁撴灉鎴愬姛),", logStr);
-                return Ok(new { Success = 0, Message = ""});
+                return Ok(new { Success = 0, Message = "" });
             }
             catch (Exception e)
             {
@@ -487,7 +489,7 @@
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult FullException(ReceiveWcsSignal model) 
+        public IActionResult FullException(ReceiveWcsSignal model)
         {
             var logStr = $@".\log\WCS\寮傚父鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             try
@@ -581,7 +583,7 @@
                 var orderType = _taskSvc.GetTaskOrderType(model.TaskNo);// 鍒ゆ柇鍗曟嵁绫诲瀷鍏ュ嚭绉�
                 switch (orderType)
                 {
-                   
+
                     case "1"://鍑哄簱瀹屾垚浠诲姟
                         if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
                         {
diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs
index 2d549d0..b966b0b 100644
--- a/Wms/Wms/Controllers/UpApiController.cs
+++ b/Wms/Wms/Controllers/UpApiController.cs
@@ -21,6 +21,7 @@
 using System.Text;
 using Newtonsoft.Json.Linq;
 using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
 
 namespace Wms.Controllers
 {
@@ -207,7 +208,7 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult FinishCr(AdjustStockCheckVm model)
+        public async Task<IActionResult> FinishCr(AdjustStockCheckVm model)
         {
             try
             {
@@ -222,27 +223,24 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                bool bolls = false;
+                //bool bolls = false;
                 if (model.Origin == "0")
                 {
-                    bolls = _stockCheckSvc.StockAdjust(model.Id, int.Parse(userId));
+                    await _stockCheckSvc.StockAdjust(model.Id);
                 }
                 else
                 {
-                    bolls = _stockCheckSvc.StockAdjustAuto(model.Id, int.Parse(userId));
+                    await _stockCheckSvc.StockAdjustAuto(model.Id);
                 }
-                if (bolls)
-                {
-                    //绯荤粺瀵规帴鍚庢斁寮�
-                    //var bl =_stockCheckSvc.FinishCr(model.Id,_config.ErpHost + _config.DataChangeUrl, int.Parse(userId));
-                    //if (bl)
-                    //{
-                    return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曡皟鏁翠笂浼犳垚鍔�" });
-                    //}
-                    //return Ok(new { code = 1, count = 0, msg = "鍑哄簱鍗曞叧鍗曟垚鍔熶絾涓婁紶澶辫触" });
-                }
+                //绯荤粺瀵规帴鍚庢斁寮�
+                //var bl =_stockCheckSvc.FinishCr(model.Id,_config.ErpHost + _config.DataChangeUrl, int.Parse(userId));
+                //if (bl)
+                //{
+                return Ok(new { code = 0, count = 0, msg = "鐩樼偣鍗曡皟鏁翠笂浼犳垚鍔�" });
+                //}
+                //return Ok(new { code = 1, count = 0, msg = "鍑哄簱鍗曞叧鍗曟垚鍔熶絾涓婁紶澶辫触" });
 
-                return Ok(new { code = 1, msg = "鐩樼偣鍗曡皟鏁村け璐�" });
+                //return Ok(new { code = 1, msg = "鐩樼偣鍗曡皟鏁村け璐�" });
 
             }
             catch (Exception e)

--
Gitblit v1.8.0