From 6d5c3dee0d97798f70bf965e48c3a782b3df9e7d Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期三, 10 七月 2024 10:48:25 +0800
Subject: [PATCH] Merge branch 'hwh' into Liudl

---
 HTML/js/public.js                                       |   34 
 HTML/views/BaseSetting/PackagFrom.html                  |    2 
 HTML/views/SystemSettings/InterfaceDetail.html          |  504 +++---
 Wms/WMS.BLL/SysServer/CustomerServer.cs                 |   58 
 Wms/WMS.IBLL/ISysServer/IUnitServer.cs                  |   13 
 HTML/views/ASNSetting/ArrivalLogTask.html               |    2 
 Wms/WMS.BLL/SysServer/DepartmentServer.cs               |  106 
 Wms/WMS.BLL/SysServer/InterfaceServer.cs                |  389 +---
 HTML/views/SOSetting/ExportNoticeAddFrom.html           |    4 
 HTML/views/BaseSetting/CustomerFrom.html                |    2 
 HTML/views/BaseSetting/Packag.html                      |    9 
 Wms/WMS.IBLL/ISysServer/IDepartmentServer.cs            |    6 
 Wms/WMS.IBLL/ISysServer/ICustomerServer.cs              |   15 
 HTML/views/BaseSetting/MaterialsForm.html               |    6 
 Wms/WMS.BLL/SysServer/MenuServer.cs                     |   70 
 HTML/views/SOSetting/ExportNotice.html                  |    6 
 Wms/Wms/Controllers/BasisController.cs                  | 1470 +++-----------------
 HTML/views/BaseSetting/DepartmentForm.html              |    2 
 HTML/views/BaseSetting/Unit.html                        |    9 
 Wms/WMS.Entity/Context/DataContext.cs                   |   19 
 Wms/WMS.DAL/SysInfrastructure/StorageLocatRepository.cs |    2 
 Wms/WMS.DAL/Common.cs                                   |   92 
 HTML/views/BaseSetting/Customer.html                    |    9 
 HTML/views/Archiving/WaveMage.html                      |    2 
 Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs             |   24 
 Wms/WMS.IBLL/ISysServer/IMenuServer.cs                  |    2 
 Wms/WMS.BLL/SysServer/StorageRoadwayServer.cs           |    6 
 HTML/views/BaseSetting/Materials.html                   |    8 
 HTML/views/ASNSetting/ArrivalReturnsNoticeDetail.html   |    2 
 Wms/WMS.DAL/BaseRepository.cs                           |   22 
 Wms/Wms/Controllers/SysController.cs                    |    4 
 Wms/WMS.IDAL/IBaseRepository.cs                         |   12 
 HTML/views/BaseSetting/LogisticsInfoFrom.html           |    2 
 Wms/WMS.BLL/SysServer/LogisticsInfoServer.cs            |  143 -
 Wms/WMS.BLL/SysServer/MaterialsServer.cs                |  219 --
 Wms/Wms/AutoMapperServer/AutoMapperProfile.cs           |    4 
 HTML/views/BaseSetting/Department.html                  |    8 
 Wms/WMS.BLL/SysServer/ExceptionServer.cs                |    2 
 HTML/views/QualityControl/QualityInspectionFrom.html    |    6 
 HTML/views/SystemSettings/FunSettingForm.html           |    2 
 HTML/views/SystemSettings/Interface.html                |    6 
 HTML/views/SOSetting/ExportNoticeEditFrom.html          |    4 
 Wms/WMS.BLL/SysServer/FunSettingServer.cs               |  119 -
 Wms/WMS.IBLL/ISysServer/IFunSettingServer.cs            |    6 
 Wms/WMS.BLL/SysServer/RoleRightServer.cs                |    1 
 Wms/WMS.BLL/SysServer/StorageAreaServer.cs              |    6 
 Wms/WMS.BLL/SysServer/PalletsServer.cs                  |    6 
 HTML/views/QualityControl/QualityInspection.html        |    2 
 HTML/views/Archiving/ExportNotice.html                  |    2 
 Wms/WMS.IBLL/ISysServer/IPackagServer.cs                |   11 
 Wms/WMS.IBLL/ISysServer/ILogisticsInfoServer.cs         |   15 
 HTML/views/BaseSetting/UnitFrom.html                    |    2 
 HTML/views/SystemSettings/FunSetting.html               |    8 
 HTML/views/SOSetting/WaveMage.html                      |    2 
 Wms/WMS.BLL/SysServer/DictionaryServer.cs               |    2 
 Wms/WMS.BLL/SysServer/UnitServer.cs                     |  172 +-
 HTML/views/ASNSetting/ArrivalNoticeDetail.html          |    2 
 HTML/views/SOSetting/WaveMageAddInfo.html               |    2 
 Wms/Utility/Extension/ApplicationBuilderExtensions.cs   |   27 
 Wms/WMS.IBLL/ISysServer/IInterfaceServer.cs             |   14 
 Wms/WMS.BLL/SysServer/WareHouseServer.cs                |    6 
 Wms/WMS.BLL/SysServer/PackagServer.cs                   |  388 ++---
 Wms/WMS.BLL/SysServer/StorageLocatServer.cs             |    2 
 HTML/views/BaseSetting/LogisticsInfo.html               |    9 
 64 files changed, 1,428 insertions(+), 2,683 deletions(-)

diff --git a/HTML/js/public.js b/HTML/js/public.js
index 03fbba5..879c061 100644
--- a/HTML/js/public.js
+++ b/HTML/js/public.js
@@ -13,7 +13,7 @@
 {
   sendData(IP + "/Basis/GetFunSettingByNo?funSetNo="+"Fun013", {}, 'get', function (res) {
     console.log(res.data.SetValue)
-    if (res.code == 0) { //鎴愬姛 
+    if (res.code == 200) { //鎴愬姛 
       if(res.data.IsEnable == 'NO')
       {
           pageCnt = parseInt(res.data.SetValue);
@@ -39,6 +39,15 @@
     if (!$.cookie('token')) {
       callbackFun("鐧诲綍浜轰俊鎭凡澶辨晥");
     }
+    if(isExpired = isTokenExpired($.cookie('token'))){
+      try{
+        parent.window.location.href = '/views/Login.html';
+      }
+      catch(error){
+        window.location.href = '/views/Login.html';
+      }
+      return;
+    }
   } 
   $.ajax({
     url: url,
@@ -57,9 +66,7 @@
       // console.log(status);
       callbackFun(res);
     },
-    error: function (res, status, error) {  
-      // console.log(res);
-      // console.log(status);
+    error: function (res, status, error) {
       callbackFun(res.responseJSON, status, error);
       // layer.msg(res.statusText, {
       //   icon: 2,
@@ -67,6 +74,23 @@
       // }, function() {});
     },
   });
+}
+function isTokenExpired(token) {
+  const tokenParts = token.split('.');
+  if (tokenParts.length !== 3) {
+    return true; // JWT 鏍煎紡涓嶆纭�
+  }
+  const payloadBase64 = tokenParts[1];
+  const payload = JSON.parse(atob(payloadBase64));
+  
+  if (!payload || !payload.exp) {
+    return true; // 娌℃湁鏈夋晥杞借嵎鎴栬�呮病鏈夎繃鏈熸椂闂�
+  }
+  
+  const now = Date.now() / 1000; // 褰撳墠鏃堕棿鎴筹紙绉掞級
+  const expiration = payload.exp;
+  
+  return now >= expiration;
 }
 function synData(url, data, type, callbackFun) {
   var deferred = $.Deferred();
@@ -244,7 +268,7 @@
 function GetIsSetColW()
 {
   sendData(IP + "/Basis/GetFunSettingByNo?funSetNo="+"Fun014", {}, 'get', function (res) {
-    if (res.code == 0) { //鎴愬姛 
+    if (res.code == 200) { //鎴愬姛 
       if(res.data.IsEnable == 'NO')
       {
         isSetColW=true;
diff --git a/HTML/views/ASNSetting/ArrivalLogTask.html b/HTML/views/ASNSetting/ArrivalLogTask.html
index 881a045..acaaaee 100644
--- a/HTML/views/ASNSetting/ArrivalLogTask.html
+++ b/HTML/views/ASNSetting/ArrivalLogTask.html
@@ -604,7 +604,7 @@
 					$(".shenqingClass").hide();  //鐢宠鍌ㄤ綅
 				});
 				sendData(IP + "/Basis/GetFunSettingByNo?funSetNo="+"Fun012", {}, 'get', function (res) {
-					if (res.code == 0) { //鎴愬姛 
+					if (res.code == 200) { //鎴愬姛 
 						if(res.data.IsEnable == 'NO')
 						{
 							$(function () {
diff --git a/HTML/views/ASNSetting/ArrivalNoticeDetail.html b/HTML/views/ASNSetting/ArrivalNoticeDetail.html
index 3c7406f..8243770 100644
--- a/HTML/views/ASNSetting/ArrivalNoticeDetail.html
+++ b/HTML/views/ASNSetting/ArrivalNoticeDetail.html
@@ -518,7 +518,7 @@
 					0銆�2銆�4銆�6
 				*/
 				sendData(IP + "/Basis/GetCustomerSelect", {}, 'get', function (res) {
-					if (res.code == 0) { //鎴愬姛
+					if (res.code == 200) { //鎴愬姛
 						$("#CustomerName").empty();
 						$("#CustomerName").append('<option value =""></option>');
 
diff --git a/HTML/views/ASNSetting/ArrivalReturnsNoticeDetail.html b/HTML/views/ASNSetting/ArrivalReturnsNoticeDetail.html
index 5d5845c..9a447ae 100644
--- a/HTML/views/ASNSetting/ArrivalReturnsNoticeDetail.html
+++ b/HTML/views/ASNSetting/ArrivalReturnsNoticeDetail.html
@@ -615,7 +615,7 @@
 					0銆�2銆�4銆�6
 				*/
 				sendData(IP + "/Basis/GetCustomerSelect", {}, 'get', function (res) {
-					if (res.code == 0) { //鎴愬姛
+					if (res.code == 200) { //鎴愬姛
 						$("#CustomerName").empty();
 						$("#CustomerName").append('<option value =""></option>');
 
diff --git a/HTML/views/Archiving/ExportNotice.html b/HTML/views/Archiving/ExportNotice.html
index 363100d..cbad9b0 100644
--- a/HTML/views/Archiving/ExportNotice.html
+++ b/HTML/views/Archiving/ExportNotice.html
@@ -361,7 +361,7 @@
 			// refreshTablemx(xqid);
 			//鑾峰彇鎵胯繍鍟嗙墿娴�
 			sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function (res) {
-				if (res.code == 0) { //鎴愬姛 
+				if (res.code == 200) { //鎴愬姛 
 					$("#LogisticsId").empty();
 					$("#LogisticsId").append('<option value =""></option>');
 					for (var i = 0; i < res.data.length; i++) {
diff --git a/HTML/views/Archiving/WaveMage.html b/HTML/views/Archiving/WaveMage.html
index 70f2331..2ba2158 100644
--- a/HTML/views/Archiving/WaveMage.html
+++ b/HTML/views/Archiving/WaveMage.html
@@ -191,7 +191,7 @@
             bindTable();
             //鑾峰彇鎵胯繍鍟嗙墿娴�
             sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function (res) {
-                if (res.code == 0) { //鎴愬姛 
+                if (res.code == 200) { //鎴愬姛 
                     $("#LogisticsId").empty();
                     $("#LogisticsId").append('<option value =""></option>');
                     for (var i = 0; i < res.data.length; i++) {
diff --git a/HTML/views/BaseSetting/Customer.html b/HTML/views/BaseSetting/Customer.html
index 2adf509..aad7852 100644
--- a/HTML/views/BaseSetting/Customer.html
+++ b/HTML/views/BaseSetting/Customer.html
@@ -133,6 +133,7 @@
 					height: 'full-95',
 					id: 'LAY-app-content-list',
 					where: param,
+					parseData: FnParseData,
 					contentType: 'application/json',
 					headers:{ToKen:$.cookie('token')},
 					page: true,
@@ -299,7 +300,7 @@
 							};
 							sendData(IP + "/Basis/DelsCustomer", param, 'post', function (res) {
 								console.log(res);
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -352,7 +353,7 @@
 									sendData(IP + "/Basis/AddCustomer", param, 'post',
 										function (res) {
 											console.log(res);
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 200) { //鎴愬姛
 												layer.msg(res.msg, {
 													icon: 1,
 													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -402,7 +403,7 @@
 							};
 							sendData(IP + "/Basis/DelCustomer", param, 'post', function (res) {
 								console.log(res);
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -456,7 +457,7 @@
 									sendData(IP + "/Basis/EditCustomer", param, 'post',
 										function (res) {
 											console.log(res);
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 200) { //鎴愬姛
 												layer.msg(res.msg, {
 													icon: 1,
 													time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/BaseSetting/CustomerFrom.html b/HTML/views/BaseSetting/CustomerFrom.html
index 3cd5df4..accaac8 100644
--- a/HTML/views/BaseSetting/CustomerFrom.html
+++ b/HTML/views/BaseSetting/CustomerFrom.html
@@ -117,7 +117,7 @@
 						Id: parseInt(id),
 					};
 					sendData(IP + "/Basis/GetCustomer", param, 'post', function(res) {
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							//椤甸潰璧嬪��
 							$("input[name='CustomerNo']").val(res.data.CustomerNo);
 							$("input[name='CustomerNo']").attr('disabled', 'true');
diff --git a/HTML/views/BaseSetting/Department.html b/HTML/views/BaseSetting/Department.html
index f451c9b..8b257af 100644
--- a/HTML/views/BaseSetting/Department.html
+++ b/HTML/views/BaseSetting/Department.html
@@ -95,7 +95,7 @@
 
 					sendData(IP + "/Basis/GetDepartmentList?DepartmentName=" + DepartmentName + "&&DepartmentNo=" + DepartmentNo, {}, "get", function (res) {
 						console.log(res.data);
-						if (res.code == 0)
+						if (res.code == 200)
 						{
 							//鎴愬姛
 							var list = res.data;
@@ -253,7 +253,7 @@
 										Demo: field.Demo,
 										};
 										sendData( IP + "/Basis/AddDepartment", param, "post", function (res) {
-											if (res.code == 0) //鎴愬姛
+											if (res.code == 200) //鎴愬姛
 											{
 												layer.msg(
 													res.msg,
@@ -343,7 +343,7 @@
 							msg: cusid,
 							};
 							sendData( IP + "/Basis/DelDepartment?Id="+cusid+"",{},"get",function (res) {
-								if (res.code == 0) //鎴愬姛
+								if (res.code == 200) //鎴愬姛
 								{
 									layer.msg(
 										res.msg,
@@ -410,7 +410,7 @@
 									Demo: field.Demo,
 								};
 								sendData( IP + "/Basis/ExitDepartment", param, "post", function (res) {
-									if (res.code == 0) //鎴愬姛
+									if (res.code == 200) //鎴愬姛
 									{
 										layer.msg("淇敼鎴愬姛",
 										{
diff --git a/HTML/views/BaseSetting/DepartmentForm.html b/HTML/views/BaseSetting/DepartmentForm.html
index 467ff6c..8751c40 100644
--- a/HTML/views/BaseSetting/DepartmentForm.html
+++ b/HTML/views/BaseSetting/DepartmentForm.html
@@ -57,7 +57,7 @@
 					};
 					sendData(IP + "/Basis/GetDepartmentById?Id="+param.id+"", {}, 'get', function(res) {
 						console.log(res);
-						if (res.code == 0) //鎴愬姛
+						if (res.code == 200) //鎴愬姛
 						{
 							//閮ㄩ棬鍙风紪杈戜笉鏄剧ず
 							if(res.data.DepartmentNo != "")
diff --git a/HTML/views/BaseSetting/LogisticsInfo.html b/HTML/views/BaseSetting/LogisticsInfo.html
index 7d7d190..7d5959d 100644
--- a/HTML/views/BaseSetting/LogisticsInfo.html
+++ b/HTML/views/BaseSetting/LogisticsInfo.html
@@ -137,6 +137,7 @@
                     height: h1,
                     id: 'LAY-app-content-list',
                     where: param,
+					parseData: FnParseData,
                     contentType: 'application/json',
                     headers:{ToKen:$.cookie('token')},
                     // toolbar:'#toolbarDemo',
@@ -323,7 +324,7 @@
 
                             sendData(IP + "/Basis/DelsLogisticsInfo", param, 'post', function (res) {
                                 console.log(res);
-                                if (res.code == 0) { //鎴愬姛
+                                if (res.code == 200) { //鎴愬姛
                                     layer.msg(res.msg, {
                                         icon: 1,
                                         time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -375,7 +376,7 @@
                                     };
                                     sendData(IP + "/Basis/AddLogisticsInfo", param, 'post', function (res) {
                                         console.log(res);
-                                        if (res.code == 0) { //鎴愬姛
+                                        if (res.code == 200) { //鎴愬姛
                                             layer.msg(res.msg, {
                                                 icon: 1,
                                                 time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -427,7 +428,7 @@
                             };
                             sendData(IP + "/Basis/DelLogisticsInfo", param, 'post', function (res) {
                                 console.log(res);
-                                if (res.code == 0) { //鎴愬姛
+                                if (res.code == 200) { //鎴愬姛
                                     layer.msg(res.msg, {
                                         icon: 1,
                                         time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -482,7 +483,7 @@
                                     sendData(IP + "/Basis/EditLogisticsInfo", param, 'post',
                                         function (res) {
                                             console.log(res);
-                                            if(res.code == 0) { //鎴愬姛
+                                            if(res.code == 200) { //鎴愬姛
                                                 layer.msg(res.msg, {
                                                     icon: 1,
                                                     time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/BaseSetting/LogisticsInfoFrom.html b/HTML/views/BaseSetting/LogisticsInfoFrom.html
index 6bba914..6221b36 100644
--- a/HTML/views/BaseSetting/LogisticsInfoFrom.html
+++ b/HTML/views/BaseSetting/LogisticsInfoFrom.html
@@ -113,7 +113,7 @@
                         Id: parseInt(id),
                     };
                     sendData(IP + "/Basis/GetLogisticsInfo", param, 'post', function (res) {
-                        if (res.code == 0) { //鎴愬姛
+                        if (res.code == 200) { //鎴愬姛
                             //椤甸潰璧嬪�� 
                             $("input[name='CarrierName']").val(res.data.CarrierName);
                             $("input[name='Address']").val(res.data.Address);
diff --git a/HTML/views/BaseSetting/Materials.html b/HTML/views/BaseSetting/Materials.html
index dfbbea7..441f040 100644
--- a/HTML/views/BaseSetting/Materials.html
+++ b/HTML/views/BaseSetting/Materials.html
@@ -245,7 +245,7 @@
 					
 					var url  = "/Basis/GetMateList?SkuNo="+SkuNo+"&&SkuName="+SkuName+"&&AuditStatusNo="+AuditStatusNo+"&&Type="+Type+"&&IsControlled="+IsControlled+"&&IsInspect="+IsInspect+"&&Environment="+Environment+"&CategoryNo="+CategoryNo;
 					sendData(IP + url, {}, 'get', function(res) {
-						if (res.code == 0) //鎴愬姛
+						if (res.code == 200) //鎴愬姛
 						{
 							var list = res.data;
 							$.extend(infoOptions, {
@@ -459,7 +459,7 @@
 											doing = false;
 											sendData(IP + "/Basis/AddMate", param, 'post',function(res) {
 												console.log(res);
-												if (res.code == 0) { //鎴愬姛
+												if (res.code == 200) { //鎴愬姛
 													layer.msg(res.msg, {
 														icon: 1,
 														time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -559,7 +559,7 @@
 								doing = false;
 								sendData(IP + "/Basis/DelMate?Id="+data.Id+"", {} , 'get', function(res) {
 									console.log(res);
-									if (res.code == 0) { //鎴愬姛
+									if (res.code == 200) { //鎴愬姛
 										layer.msg(res.msg, {
 											icon: 1,
 											time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -641,7 +641,7 @@
 										doing = false;
 										sendData(IP + "/Basis/ExitMate", param, 'post',
 										function(res) {
-											if (res.code == 0) //鎴愬姛
+											if (res.code == 200) //鎴愬姛
 											{
 												layer.msg("淇敼鎴愬姛", {
 													icon: 1,
diff --git a/HTML/views/BaseSetting/MaterialsForm.html b/HTML/views/BaseSetting/MaterialsForm.html
index a2ee30a..e73933f 100644
--- a/HTML/views/BaseSetting/MaterialsForm.html
+++ b/HTML/views/BaseSetting/MaterialsForm.html
@@ -279,7 +279,7 @@
 			var sel1 = false;
 			//鑾峰彇鍗曚綅涓嬫媺鑿滃崟 UnitNo
 			synData(IP + "/Basis/GetUnitList", {}, 'get', function (res) {
-				if (res.code == 0) //鎴愬姛
+				if (res.code == 200) //鎴愬姛
 				{
 					for (var i = 0; i < res.data.length; i++) {
 						$("#UnitNo").append('<option value =' + res.data[i].UnitNo + '>' + res.data[i].UnitName + '</option>');
@@ -299,7 +299,7 @@
 			var sel2 = false;
 			//鑾峰彇鍖呰涓嬫媺鑿滃崟 PackagNo
 			synData(IP + "/Basis/GetPackagList", {}, 'get', function (res) {
-				if (res.code == 0) //鎴愬姛
+				if (res.code == 200) //鎴愬姛
 				{
 					for (var i = 0; i < res.data.length; i++) {
 						$("#PackagNo").append('<option value =' + res.data[i].PackagNo + '>' + res.data[i].PackagName + '</option>');
@@ -328,7 +328,7 @@
 						UserId: id,
 					};
 					synData(IP + "/Basis/GetMateById?Id= " + getQueryString('id') + "", {}, 'get', function (res) {
-						if (res.code == 0) //鎴愬姛
+						if (res.code == 200) //鎴愬姛
 						{
 							// console.log(res.data.CategoryNo)
 							//瀹℃壒鐘舵�佺紪杈戞樉绀�
diff --git a/HTML/views/BaseSetting/Packag.html b/HTML/views/BaseSetting/Packag.html
index de43d13..84549ce 100644
--- a/HTML/views/BaseSetting/Packag.html
+++ b/HTML/views/BaseSetting/Packag.html
@@ -138,6 +138,7 @@
 				url: url,
 				method: 'post',
 				where: where,
+				parseData: FnParseData,
 				contentType: 'application/json',
 				headers:{ToKen:$.cookie('token')},
 				page: true,
@@ -334,7 +335,7 @@
 							doing = false;
 							sendData(IP + "/Basis/GetPackagList", param, 'post', function (res) {
 								console.log(res);
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -413,7 +414,7 @@
 
 									sendData(IP + "/Basis/AddPackag", param, 'post',
 										function (res) {
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 200) { //鎴愬姛
 												layer.msg(res.msg, {
 													icon: 1,
 													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -470,7 +471,7 @@
 						if (doing) {
 							doing = false;
 							sendData(IP + "/Basis/DelPackag", param, 'post', function (res) {
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -542,7 +543,7 @@
 									sendData(IP + "/Basis/EditPackag", param, 'post',
 										function (res) {
 											console.log(res);
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 200) { //鎴愬姛
 												layer.msg("淇敼鎴愬姛", {
 													icon: 1,
 													time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/BaseSetting/PackagFrom.html b/HTML/views/BaseSetting/PackagFrom.html
index 00f81dc..9bf174c 100644
--- a/HTML/views/BaseSetting/PackagFrom.html
+++ b/HTML/views/BaseSetting/PackagFrom.html
@@ -152,7 +152,7 @@
 					sendData(IP + "/Basis/GetPackagById?Id="+id, param, 'get', function(res) {
 						console.log(res);
 						//console.log(res.data.IsValid == 0);
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							//鍖呰缂栫爜
 							if (res.data.SkuNo != "") {
 								$("input[name='PackCode']").attr("disabled", "disabled")
diff --git a/HTML/views/BaseSetting/Unit.html b/HTML/views/BaseSetting/Unit.html
index af698ff..1328e03 100644
--- a/HTML/views/BaseSetting/Unit.html
+++ b/HTML/views/BaseSetting/Unit.html
@@ -109,6 +109,7 @@
 				url: url,
 				method: 'post',
 				where: where,
+				parseData: FnParseData,
 				contentType: 'application/json',
 				headers:{ToKen:$.cookie('token')},
 				page: true,
@@ -245,7 +246,7 @@
 							doing = false;
 							synData(IP + "/Basis/DelsUnit", param, 'post', function (res) {
 								console.log(res);
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -303,7 +304,7 @@
 									sendData(IP + "/Basis/AddUnit", param, 'post',
 										function (res) {
 											console.log(res);
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 200) { //鎴愬姛
 												layer.msg(res.msg, {
 													icon: 1,
 													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -404,7 +405,7 @@
 							doing = false;
 							sendData(IP + "/Basis/DelUnit", param, 'post', function (res) {
 								console.log(res);
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -462,7 +463,7 @@
 									sendData(IP + "/Basis/EditUnit", param, 'post',
 										function (res) {
 											console.log(res);
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 200) { //鎴愬姛
 												layer.msg("淇敼鎴愬姛", {
 													icon: 1,
 													time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/BaseSetting/UnitFrom.html b/HTML/views/BaseSetting/UnitFrom.html
index 4f9706f..e09867c 100644
--- a/HTML/views/BaseSetting/UnitFrom.html
+++ b/HTML/views/BaseSetting/UnitFrom.html
@@ -52,7 +52,7 @@
 					};
 					sendData(IP + "/Basis/GetUnit", param, 'post', function(res) {
 						console.log(res);
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							//椤甸潰璧嬪��
 							$("input[name='UnitNo']").val(res.data.UnitNo);
 							$("input[name='UnitName']").val(res.data.UnitName);
diff --git a/HTML/views/QualityControl/QualityInspection.html b/HTML/views/QualityControl/QualityInspection.html
index fd71631..72fa725 100644
--- a/HTML/views/QualityControl/QualityInspection.html
+++ b/HTML/views/QualityControl/QualityInspection.html
@@ -377,7 +377,7 @@
 											doing = false;
 											sendData(IP + "/Basis/AddMate", param, 'post',function(res) {
 												console.log(res);
-												if (res.code == 0) { //鎴愬姛
+												if (res.code == 200) { //鎴愬姛
 													layer.msg(res.msg, {
 														icon: 1,
 														time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/QualityControl/QualityInspectionFrom.html b/HTML/views/QualityControl/QualityInspectionFrom.html
index cf0db7a..34f566f 100644
--- a/HTML/views/QualityControl/QualityInspectionFrom.html
+++ b/HTML/views/QualityControl/QualityInspectionFrom.html
@@ -67,7 +67,7 @@
 
 					//鑾峰彇鍗曚綅涓嬫媺鑿滃崟 UnitNo
 					sendData(IP + "/Basis/GetUnitList",{},'get',function(res){
-						if(res.code == 0) //鎴愬姛
+						if(res.code == 200) //鎴愬姛
 						{
 							for (var i = 0; i < res.data.length; i++)
 							{
@@ -86,7 +86,7 @@
 					
 					//鑾峰彇鍖呰涓嬫媺鑿滃崟 PackagNo
 					sendData(IP + "/Basis/GetPackagList",{},'get',function(res){
-						if(res.code == 0) //鎴愬姛
+						if(res.code == 200) //鎴愬姛
 						{
 							for (var i = 0; i < res.data.length; i++)
 							{
@@ -115,7 +115,7 @@
                             UserId: id,
                         };
                         sendData(IP + "/Basis/GetMateById?Id= " +getQueryString('id')+ "", {}, 'get', function(res) {
-                            if (res.code == 0) //鎴愬姛
+                            if (res.code == 200) //鎴愬姛
 							{
                                	//瀹℃壒鐘舵�佺紪杈戞樉绀�
 								if(res.data.AuditStatusNo != "")
diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html
index 3f9836c..b95460c 100644
--- a/HTML/views/SOSetting/ExportNotice.html
+++ b/HTML/views/SOSetting/ExportNotice.html
@@ -472,7 +472,7 @@
 			// refreshTablemx(xqid);
 			//鑾峰彇鎵胯繍鍟嗙墿娴�
 			sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function (res) {
-				if (res.code == 0) { //鎴愬姛 
+				if (res.code == 200) { //鎴愬姛 
 					$("#LogisticsId").empty();
 					$("#LogisticsId").append('<option value =""></option>');
 					for (var i = 0; i < res.data.length; i++) {
@@ -1033,8 +1033,8 @@
 					$(".editDemoClass").hide();//澶囨敞
 					$(".checkClass").hide(); //澶嶆牳
 				});
-				sendData(IP + "/Basis/", {}, 'get', function (res) {
-					if (res.code == 0) { //鎴愬姛 
+				sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) {
+					if (res.code == 200) { //鎴愬姛 
 						for (var k = 0; k < res.data.length; k++) {
 							if (res.data[k].ParentNo == "2100") {
 								if (res.data[k].MenuName == "娣诲姞鍑哄簱鍗�") {
diff --git a/HTML/views/SOSetting/ExportNoticeAddFrom.html b/HTML/views/SOSetting/ExportNoticeAddFrom.html
index 0a0b1f1..4f4fa21 100644
--- a/HTML/views/SOSetting/ExportNoticeAddFrom.html
+++ b/HTML/views/SOSetting/ExportNoticeAddFrom.html
@@ -496,7 +496,7 @@
 				//鑾峰彇瀹㈡埛涓嬫媺妗嗕俊鎭�
 				function getCustomerList() {
 					sendData(IP + "/Basis/GetCustomerSelect", {}, 'get', function(res) {
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							$("#CustomerNo").empty();
 							$("#CustomerNo").append('<option value =""></option>');
 							for (var i = 0; i < res.data.length; i++) {
@@ -561,7 +561,7 @@
 				//鑾峰彇鐗╂祦鎵胯繍鍟嗕笅鎷夋淇℃伅
 				function getLogisticsInfoList() {
 					sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function(res) {
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							$("#LogisticsId").empty();
 							$("#LogisticsId").append('<option value =""></option>');
 							for (var i = 0; i < res.data.length; i++) {
diff --git a/HTML/views/SOSetting/ExportNoticeEditFrom.html b/HTML/views/SOSetting/ExportNoticeEditFrom.html
index b6dc461..b5412ce 100644
--- a/HTML/views/SOSetting/ExportNoticeEditFrom.html
+++ b/HTML/views/SOSetting/ExportNoticeEditFrom.html
@@ -501,7 +501,7 @@
 				//鑾峰彇瀹㈡埛涓嬫媺妗嗕俊鎭�
 				function getCustomerList(customerNo) {
 					sendData(IP + "/Basis/GetCustomerSelect", {}, 'get', function(res) {
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							var TypeNum = 0;
 								
 							switch($("#Type").val())
@@ -567,7 +567,7 @@
 				//鑾峰彇鐗╂祦鎵胯繍鍟嗕笅鎷夋淇℃伅
 				function getLogisticsInfoList(logisticsId) {
 					sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function(res) {
-						if (res.code == 0) { //鎴愬姛
+						if (res.code == 200) { //鎴愬姛
 							$("#LogisticsId").empty();
 							$("#LogisticsId").append('<option value =""></option>');
 							for (var i = 0; i < res.data.length; i++) {
diff --git a/HTML/views/SOSetting/WaveMage.html b/HTML/views/SOSetting/WaveMage.html
index 463f526..bd47d5b 100644
--- a/HTML/views/SOSetting/WaveMage.html
+++ b/HTML/views/SOSetting/WaveMage.html
@@ -263,7 +263,7 @@
 			bindTable();
             //鑾峰彇鎵胯繍鍟嗙墿娴�
             sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function(res) {
-                if (res.code == 0) { //鎴愬姛 
+                if (res.code == 200) { //鎴愬姛 
                     $("#LogisticsId").empty();
                     $("#LogisticsId").append('<option value =""></option>');
                     for (var i = 0; i < res.data.length; i++) {
diff --git a/HTML/views/SOSetting/WaveMageAddInfo.html b/HTML/views/SOSetting/WaveMageAddInfo.html
index 0a107c2..90c7c00 100644
--- a/HTML/views/SOSetting/WaveMageAddInfo.html
+++ b/HTML/views/SOSetting/WaveMageAddInfo.html
@@ -62,7 +62,7 @@
 
                 //鑾峰彇鎵胯繍鍟嗙墿娴�
                 sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function(res) {
-                    if (res.code == 0) { //鎴愬姛 
+                    if (res.code == 200) { //鎴愬姛 
                         $("#LogisticsId").empty();
                         $("#LogisticsId").append('<option value =""></option>');
                         for (var i = 0; i < res.data.length; i++) {
diff --git a/HTML/views/SystemSettings/FunSetting.html b/HTML/views/SystemSettings/FunSetting.html
index b826016..e631df5 100644
--- a/HTML/views/SystemSettings/FunSetting.html
+++ b/HTML/views/SystemSettings/FunSetting.html
@@ -104,7 +104,7 @@
 						GroupNo: GroupNo
 					};
 					sendData(IP + "/Basis/GetFunSettingList?FunSetName="+FunSetName+"&&IsEnable="+IsEnable+"&&GroupNo="+GroupNo, {}, 'get', function(res) {
-						if (res.code == 0)
+						if (res.code == 200)
 						{ //鎴愬姛
 							var list = res.data;
 							$.extend(infoOptions, {
@@ -256,7 +256,7 @@
 											doing = false;
 											sendData(IP + "/basis/AddFunSettings", param, 'post',function(res) {
 												console.log(res);
-												if (res.code == 0)
+												if (res.code == 200)
 												{ //鎴愬姛
 													layer.msg(res.msg, {
 														icon: 1,
@@ -340,7 +340,7 @@
 								doing = false;
 								sendData(IP + "/Basis/DelFunSettings?Id="+data.Id+"", {} , 'get', function(res) {
 									console.log(res);
-									if (res.code == 0)
+									if (res.code == 200)
 									{ //鎴愬姛
 										layer.msg(res.msg, {
 											icon: 1,
@@ -400,7 +400,7 @@
 										doing = false;
 										sendData(IP + "/basis/ExitFunSettings", param, 'post',
 										function(res) {
-											if (res.code == 0)
+											if (res.code == 200)
 											{ //鎴愬姛
 												layer.msg("淇敼鎴愬姛", {
 													icon: 1,
diff --git a/HTML/views/SystemSettings/FunSettingForm.html b/HTML/views/SystemSettings/FunSettingForm.html
index 6b21256..f8eebea 100644
--- a/HTML/views/SystemSettings/FunSettingForm.html
+++ b/HTML/views/SystemSettings/FunSettingForm.html
@@ -87,7 +87,7 @@
 						UserId: id,
 					};
 					sendData(IP + "/basis/GetFunSettingById?Id= " +getQueryString('id')+ "", {}, 'get', function(res) {
-						if (res.code == 0)
+						if (res.code == 200)
 						{ //鎴愬姛
 							//椤甸潰璧嬪��
 							if(res.data.FunSetNo != "")
diff --git a/HTML/views/SystemSettings/Interface.html b/HTML/views/SystemSettings/Interface.html
index 9a30161..d9365a3 100644
--- a/HTML/views/SystemSettings/Interface.html
+++ b/HTML/views/SystemSettings/Interface.html
@@ -165,6 +165,7 @@
 					height: h1,
 					id: 'LAY-app-content-list',
 					where: param,
+					parseData: FnParseData,
 					contentType: 'application/json',
 					headers:{ToKen:$.cookie('token')},
 					page: true,
@@ -295,6 +296,7 @@
 					height: h2,
 					id: 'LAY-app-content-list2',
 					where: param,
+					parseData: FnParseData,
 					contentType: 'application/json',
 					toolbar:'',
 					defaultToolbar:  '', //'print', 'exports'
@@ -460,7 +462,7 @@
 								InterfaceNo:data.InterfaceNo,
 							};
 							sendData(IP + "/Basis/DelInterface", param, 'post', function (res) {
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -494,7 +496,7 @@
 								InterfaceNo:data.InterfaceNo
 							}; 
 							sendData(IP + "/Basis/DelInterfaceDetail", param, 'post', function (res) {
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/SystemSettings/InterfaceDetail.html b/HTML/views/SystemSettings/InterfaceDetail.html
index 595c477..7ad6f30 100644
--- a/HTML/views/SystemSettings/InterfaceDetail.html
+++ b/HTML/views/SystemSettings/InterfaceDetail.html
@@ -20,7 +20,8 @@
 			margin-left: -15px;
 			margin-right: -15px;
 		}
-		.layui-table-mend{
+
+		.layui-table-mend {
 			position: relative;
 		}
 	</style>
@@ -28,66 +29,66 @@
 
 <body>
 	<div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list">
-		<div class="layui-form-item" style="padding: 20px 30px 0 0;">			
+		<div class="layui-form-item" style="padding: 20px 30px 0 0;">
 			<div class="layui-inline">
-                <label class="layui-form-label">鎺ュ彛缂栧彿</label>
-                <div class="layui-input-inline">
-                    <input type="text" id="InterfaceNo" name="InterfaceNo" autocomplete="off" class="layui-input">
-                </div>				
+				<label class="layui-form-label">鎺ュ彛缂栧彿</label>
+				<div class="layui-input-inline">
+					<input type="text" id="InterfaceNo" name="InterfaceNo" autocomplete="off" class="layui-input">
+				</div>
 			</div>
-            
+
 			<div class="layui-inline">
-                <label class="layui-form-label">鎺ュ彛鍚嶇О</label>
-                <div class="layui-input-inline">
-                    <input type="text" id="InterfaceName" name="InterfaceName" autocomplete="off" class="layui-input">
-                </div>				
+				<label class="layui-form-label">鎺ュ彛鍚嶇О</label>
+				<div class="layui-input-inline">
+					<input type="text" id="InterfaceName" name="InterfaceName" autocomplete="off" class="layui-input">
+				</div>
 			</div>
-			
+
 			<div class="layui-inline">
-                <label class="layui-form-label">鎺ュ彛鏂瑰悜</label>
-                <div class="layui-input-inline">
-                    <select name="Direction" id="Direction" lay-filter="Direction" lay-search>
-                        <option value=""></option>
-                        <option value="0">WMS=銆婼AP</option>
-                        <option value="1">WMS=銆婨RP</option>
+				<label class="layui-form-label">鎺ュ彛鏂瑰悜</label>
+				<div class="layui-input-inline">
+					<select name="Direction" id="Direction" lay-filter="Direction" lay-search>
+						<option value=""></option>
+						<option value="0">WMS=銆婼AP</option>
+						<option value="1">WMS=銆婨RP</option>
 						<option value="2">WMS=銆婱ES</option>
 						<option value="3">WMS=銆婥RM</option>
 						<option value="4">WMS=銆婳A</option>
-                    </select>
-                </div>				
-			</div>
-            
-			<div class="layui-inline">
-                <label class="layui-form-label">浼犺緭鏂瑰紡</label>
-                <div class="layui-input-inline">
-                    <select name="TransmissionMode" id="TransmissionMode" lay-filter="TransmissionMode" lay-search>
-                        <option value=""></option>
-                        <option value="0">Http+Json</option>
-                        <option value="1">Http+Xml</option>
-                    </select>
-                </div>				
-			</div>
-			
-			<div class="layui-inline">
-                <label class="layui-form-label">鏁版嵁鏉ユ簮</label>
-                <div class="layui-input-inline">
-                    <input type="text" id="DataSources" name="DataSources" autocomplete="off" class="layui-input">
-                </div>                
+					</select>
+				</div>
 			</div>
 
 			<div class="layui-inline">
-                <label class="layui-form-label">鎺ュ彛鍦板潃</label>
-                <div class="layui-input-inline">
-                    <input type="text" id="Url" name="Url" autocomplete="off" class="layui-input">
-                </div>                
+				<label class="layui-form-label">浼犺緭鏂瑰紡</label>
+				<div class="layui-input-inline">
+					<select name="TransmissionMode" id="TransmissionMode" lay-filter="TransmissionMode" lay-search>
+						<option value=""></option>
+						<option value="0">Http+Json</option>
+						<option value="1">Http+Xml</option>
+					</select>
+				</div>
 			</div>
 
 			<div class="layui-inline">
-                <label class="layui-form-label">鎺ュ彛璇存槑</label>
-                <div class="layui-input-inline">
-                    <input type="text" id="Remark" name="Remark" autocomplete="off" class="layui-input">
-                </div>                
-			</div>         
+				<label class="layui-form-label">鏁版嵁鏉ユ簮</label>
+				<div class="layui-input-inline">
+					<input type="text" id="DataSources" name="DataSources" autocomplete="off" class="layui-input">
+				</div>
+			</div>
+
+			<div class="layui-inline">
+				<label class="layui-form-label">鎺ュ彛鍦板潃</label>
+				<div class="layui-input-inline">
+					<input type="text" id="Url" name="Url" autocomplete="off" class="layui-input">
+				</div>
+			</div>
+
+			<div class="layui-inline">
+				<label class="layui-form-label">鎺ュ彛璇存槑</label>
+				<div class="layui-input-inline">
+					<input type="text" id="Remark" name="Remark" autocomplete="off" class="layui-input">
+				</div>
+			</div>
 
 			<div class="layui-inline" style="margin-left: 10px;">
 				<button class="layui-btn layui-btn-sm layuiadmin-btn-list" data-type="add">娣诲姞鏄庣粏</button>
@@ -100,9 +101,10 @@
 			<div class="layui-card">
 				<div class="layui-card-body">
 					<div style="width: 100%;right: 0;">
-						<table id="LAY-app-content-list" name="LAY-app-content-list" lay-filter="LAY-app-content-list"></table>
+						<table id="LAY-app-content-list" name="LAY-app-content-list" lay-filter="LAY-app-content-list">
+						</table>
 
-                        <script type="text/html" id="templetIsNull">							
+						<script type="text/html" id="templetIsNull">
 							{{# function GetBtn(d){
 									var html = ''; 
 									html+= '<select name="IsNull" lay-filter="SelctIsNull" data-value="'+d.IsNull+'">'+
@@ -115,7 +117,7 @@
 							{{ GetBtn(d) }}
 						</script>
 
-						<script type="text/html" id="templetFieldType">							
+						<script type="text/html" id="templetFieldType">
 							{{# function GetBtn1(d){
 									var html = ''; 
 									html+= '<select name="FieldType" lay-filter="SelctFieldType" data-value="'+d.FieldType+'">'+
@@ -130,7 +132,7 @@
 							{{ GetBtn1(d) }}
 						</script>
 
-						<script type="text/html" id="templetDataType">							
+						<script type="text/html" id="templetDataType">
 							{{# function GetBtn2(d){
 									var html = ''; 
 									html+= '<select name="DataType" lay-filter="SelctDataType" data-value="'+d.DataType+'">'+
@@ -142,7 +144,7 @@
 							}}
 							{{ GetBtn2(d) }}
 						</script>
-					</div>					
+					</div>
 
 					<script type="text/html" id="table-content-list">
 						<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"> <i class="layui-icon layui-icon-delete"></i>鍒犻櫎</a>
@@ -172,7 +174,7 @@
 				elem: '#ExpirationDate'
 				, format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚�
 			});
-			var TypeValue=$("#Type").val();
+			var TypeValue = $("#Type").val();
 
 			// table 鍩烘湰璁剧疆
 			var infoOptions = {
@@ -183,133 +185,133 @@
 				limit: 30,
 				limits: pageLimits,
 				cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
-                done: function(){	
-                    //閫変腑涓嬫媺妗嗙殑鍊�		
-                    layui.each($('select'), function (index, item) {
-                        var elem = $(item);
-                        if(elem.data('value')!='' && elem.data('value')!=undefined){
-                            elem.val(elem.data('value')).parents('table.layui-table-cell').css('overflow', 'visible');
-                        }							
-                    });
-                    form.render();
-                }, 
+				done: function () {
+					//閫変腑涓嬫媺妗嗙殑鍊�		
+					layui.each($('select'), function (index, item) {
+						var elem = $(item);
+						if (elem.data('value') != '' && elem.data('value') != undefined) {
+							elem.val(elem.data('value')).parents('table.layui-table-cell').css('overflow', 'visible');
+						}
+					});
+					form.render();
+				},
 				cols: [
-                    [{
-                        title: '搴忓彿',
-                        type: 'numbers',
-                        width: 50,
-                        align: 'center',
-                        fixed: 'left'
-                    },{
-                        field: 'Id',
-                        title: 'Id',
-                        align: 'center',
-                        hide:true,
-                        width: 100,
-                        edit: 'text'
-                    },
-                    {
-                        field: 'InterfaceNo',
-                        title: '鎺ュ彛缂栧彿',
-                        align: 'center',
-                        width: 140
-                    },
-                    {
-                        field: 'ExtField',
-                        title: '澶栫郴缁熷瓧娈�',
-                        align: 'center',
-                        width: 180,
-                        edit: 'text'
-                    }, {
-                        field: 'MapField',
-                        title: '鏄犲皠瀛楁',
-                        align: 'center',
-                        width: 180,
+					[{
+						title: '搴忓彿',
+						type: 'numbers',
+						width: 50,
+						align: 'center',
+						fixed: 'left'
+					}, {
+						field: 'Id',
+						title: 'Id',
+						align: 'center',
+						hide: true,
+						width: 100,
 						edit: 'text'
-                    }, {
-                        field: 'Field',
-                        title: '鏈郴缁熷瓧娈�',
-                        align: 'center',
-                        width: 180,
-                        edit: 'text'
-                    },{
-                        field: 'FieldType',
-                        title: '瀛楁绫诲瀷',
-                        align: 'center',
-                        width: 100,
+					},
+					{
+						field: 'InterfaceNo',
+						title: '鎺ュ彛缂栧彿',
+						align: 'center',
+						width: 140
+					},
+					{
+						field: 'ExtField',
+						title: '澶栫郴缁熷瓧娈�',
+						align: 'center',
+						width: 180,
+						edit: 'text'
+					}, {
+						field: 'MapField',
+						title: '鏄犲皠瀛楁',
+						align: 'center',
+						width: 180,
+						edit: 'text'
+					}, {
+						field: 'Field',
+						title: '鏈郴缁熷瓧娈�',
+						align: 'center',
+						width: 180,
+						edit: 'text'
+					}, {
+						field: 'FieldType',
+						title: '瀛楁绫诲瀷',
+						align: 'center',
+						width: 100,
 						templet: '#templetFieldType'
-                    }, {
-                        field: 'DataType',
-                        title: '鏁版嵁绫诲瀷',
-                        align: 'center',
-                        width: 100,
+					}, {
+						field: 'DataType',
+						title: '鏁版嵁绫诲瀷',
+						align: 'center',
+						width: 100,
 						templet: '#templetDataType'
-                    },{
-                        field: 'FieldFather',
-                        title: '鐖剁骇瀛楁',
-                        align: 'center',
-                        width: 100,
-                        edit: 'text'
-                    }, 
-                    {
-                        field: 'IsNull',
-                        title: '鍏佽涓虹┖',
-                        align: 'center',
-                        width: 100,
-                        templet: '#templetIsNull'
-                    },
-                    {
-                        field: 'Remark',
-                        title: '璇存槑',
-                        align: 'center',
-                        width: 180,
-                        edit: 'text'
-                    },{
-                        field: 'CreateUserName',
-                        title: '鍒涘缓浜�',
-                        align: 'center',
-                        hide:true,
-                        width: 100,
-                        edit: 'text'
-                    },
-                    {
-                        field: 'CreateTime',
-                        title: '鍒涘缓鏃堕棿',
-                        align: 'center',
-                        hide:true,
-                        width: 160,
-                        templet: function (d) {
-                            return formatDate(d.CreateTime);
-                        }
-                    },
-                    {
-                        field: 'UpdateUserName',
-                        title: '淇敼浜�',
-                        align: 'center',
-                        hide:true,
-                        width: 150,
-                    },
-                    {
-                        field: 'UpdateTime',
-                        title: '淇敼鏃堕棿',
-                        align: 'center',
-                        hide:true,
-                        width: 150,
-                        templet: function (d) {
-                            return formatDate(d.UpdateTime);
-                        }
-                    }, 
-                    {
-                        title: '鎿嶄綔',
-                        fixed: 'right',
-                        width: 120,
-                        align: 'center',
-                        templet: '#table-content-list'
-                    }]
-                ]
+					}, {
+						field: 'FieldFather',
+						title: '鐖剁骇瀛楁',
+						align: 'center',
+						width: 100,
+						edit: 'text'
+					},
+					{
+						field: 'IsNull',
+						title: '鍏佽涓虹┖',
+						align: 'center',
+						width: 100,
+						templet: '#templetIsNull'
+					},
+					{
+						field: 'Remark',
+						title: '璇存槑',
+						align: 'center',
+						width: 180,
+						edit: 'text'
+					}, {
+						field: 'CreateUserName',
+						title: '鍒涘缓浜�',
+						align: 'center',
+						hide: true,
+						width: 100,
+						edit: 'text'
+					},
+					{
+						field: 'CreateTime',
+						title: '鍒涘缓鏃堕棿',
+						align: 'center',
+						hide: true,
+						width: 160,
+						templet: function (d) {
+							return formatDate(d.CreateTime);
+						}
+					},
+					{
+						field: 'UpdateUserName',
+						title: '淇敼浜�',
+						align: 'center',
+						hide: true,
+						width: 150,
+					},
+					{
+						field: 'UpdateTime',
+						title: '淇敼鏃堕棿',
+						align: 'center',
+						hide: true,
+						width: 150,
+						templet: function (d) {
+							return formatDate(d.UpdateTime);
+						}
+					},
+					{
+						title: '鎿嶄綔',
+						fixed: 'right',
+						width: 120,
+						align: 'center',
+						templet: '#table-content-list'
+					}]
+				]
 			};
-            // 娓叉煋Table
-            refreshTable(null);
+			// 娓叉煋Table
+			refreshTable(null);
 			// 娓叉煋table
 			function refreshTable(data) {
 				$.extend(infoOptions, {
@@ -329,23 +331,24 @@
 					InterfaceNo: id
 				};
 				sendData(IP + "/Basis/GetInterfaceList", param, 'post', function (res) {
-					if (res.code == 0) {
-						$("input[name='InterfaceNo']").val(res.data[0].InterfaceNo);
-						$("input[name='InterfaceName']").val(res.data[0].InterfaceName);
-						$("#Direction option[value = '" + res.data[0].Direction + "']").prop("selected", true);
-						$("#TransmissionMode option[value = '" + res.data[0].TransmissionMode + "']").prop("selected", true);
-						$("input[name='Remark']").val(res.data[0].Remark);
-						$("input[name='Url']").val(res.data[0].Url);
-						$("input[name='DataSources']").val(res.data[0].DataSources);
+					if (res.code == 200) {
+						var data = res.data.Items[0];
+						$("input[name='InterfaceNo']").val(data.InterfaceNo);
+						$("input[name='InterfaceName']").val(data.InterfaceName);
+						$("#Direction option[value = '" + data.Direction + "']").prop("selected", true);
+						$("#TransmissionMode option[value = '" + data.TransmissionMode + "']").prop("selected", true);
+						$("input[name='Remark']").val(data.Remark);
+						$("input[name='Url']").val(data.Url);
+						$("input[name='DataSources']").val(data.DataSources);
 
 						$("#InterfaceNo").attr("disabled", "disabled");
 
 						var paramDetail = {
-							InterfaceNo:id
+							InterfaceNo: id
 						};
 						sendData(IP + "/Basis/GetInterfaceDetailList", paramDetail, 'post', function (res) {
-							if (res.code == 0) { //鎴愬姛
-								var data = res.data;
+							if (res.code == 200) { //鎴愬姛
+								var data = res.data.Items;
 								//椤甸潰璧嬪��
 								$.extend(infoOptions, {
 									data: data
@@ -379,51 +382,50 @@
 				if (obj.event == 'del') {
 					layer.confirm('纭畾鍒犻櫎鎺ュ彛鏄庣粏锛�', function (index) {
 						var menu = layui.table.cache["LAY-app-content-list"];
-						menu.splice(obj.tr.data('index'),1);
-						table.reload('LAY-app-content-list',{data : menu});
+						menu.splice(obj.tr.data('index'), 1);
+						table.reload('LAY-app-content-list', { data: menu });
 						layer.close(index)
 					});
 				}
 			});
 			//娣诲姞鎺ュ彛鏄庣粏
-			var MapFieldNum=0;			
+			var MapFieldNum = 0;
 			var $ = layui.$,
-            active = {
-                add: function () {					
-                    var InterfaceNo=$('#InterfaceNo').val();
-                    if(InterfaceNo==''){
-                        layer.msg("璇疯緭鍏ユ帴鍙g紪鍙凤紒", {
-                            icon: 2,
-                            time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-                        }, function () {
+				active = {
+					add: function () {
+						var InterfaceNo = $('#InterfaceNo').val();
+						if (InterfaceNo == '') {
+							layer.msg("璇疯緭鍏ユ帴鍙g紪鍙凤紒", {
+								icon: 2,
+								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+							}, function () {
 
-                        });
-                        return;
-                    }
-                    var menu = layui.table.cache["LAY-app-content-list"];
-					
-					if(MapFieldNum==0){
-						if(menu!=undefined){
-							var menuLength=menu.length-1;
-							var lastNum=menu[menuLength].MapField.replace('Field','');
-							MapFieldNum=parseInt(lastNum)+1;
+							});
+							return;
 						}
-						else{
-							MapFieldNum=MapFieldNum+1;
+						var menu = layui.table.cache["LAY-app-content-list"];
+
+						if (MapFieldNum == 0) {
+							if (menu != undefined) {
+								var menuLength = menu.length - 1;
+								var lastNum = menu[menuLength].MapField.replace('Field', '');
+								MapFieldNum = parseInt(lastNum) + 1;
+							}
+							else {
+								MapFieldNum = MapFieldNum + 1;
+							}
 						}
+						else {
+							MapFieldNum = MapFieldNum + 1;
+						}
+						if (menu == undefined) {
+							menu = []
+						}
+						var newRow = { InterfaceNo: InterfaceNo, MapField: 'Field' + MapFieldNum, IsNull: '0' };
+						menu.push(newRow);
+						refreshTable(menu);
 					}
-					else{
-						MapFieldNum=MapFieldNum+1;
-					}
-					if(menu==undefined)
-					{
-						menu=[]
-					}
-                    var newRow={InterfaceNo:InterfaceNo,MapField:'Field'+MapFieldNum,IsNull:'0'};
-                    menu.push(newRow);
-                    refreshTable(menu);
-                }
-            };
+				};
 			$('.layui-btn').on('click', function () {
 				var type = $(this).data('type');
 				active[type] ? active[type].call(this) : '';
@@ -459,48 +461,48 @@
 
 			// 淇濆瓨鎺ュ彛淇℃伅
 			form.on('submit(form1)', function (data) {
-				var InterfaceNo=$('#InterfaceNo').val();
-				if (InterfaceNo == "" || InterfaceNo ==undefined) {
+				var InterfaceNo = $('#InterfaceNo').val();
+				if (InterfaceNo == "" || InterfaceNo == undefined) {
 					layer.msg("璇疯緭鍏ユ帴鍙g紪鍙凤紒", {
 						icon: 2,
 						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 					});
 					return;
 				}
-				var InterfaceName=$('#InterfaceName').val();
-				if (InterfaceName == "" || InterfaceName ==undefined) {
+				var InterfaceName = $('#InterfaceName').val();
+				if (InterfaceName == "" || InterfaceName == undefined) {
 					layer.msg("璇疯緭鍏ユ帴鍙e悕绉帮紒", {
 						icon: 2,
 						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 					});
 					return;
 				}
-				var Direction=$('#Direction').val();
-				if (Direction == "" || Direction ==undefined) {
+				var Direction = $('#Direction').val();
+				if (Direction == "" || Direction == undefined) {
 					layer.msg("璇烽�夋嫨鎺ュ彛鏂瑰悜锛�", {
 						icon: 2,
 						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 					});
 					return;
 				}
-				var TransmissionMode=$('#TransmissionMode').val();
-				if (TransmissionMode == "" || TransmissionMode ==undefined) {
+				var TransmissionMode = $('#TransmissionMode').val();
+				if (TransmissionMode == "" || TransmissionMode == undefined) {
 					layer.msg("璇烽�夋嫨浼犺緭鏂瑰紡锛�", {
 						icon: 2,
 						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 					});
 					return;
 				}
-				var DataSources=$('#DataSources').val();
-				if (DataSources == "" || DataSources ==undefined) {
+				var DataSources = $('#DataSources').val();
+				if (DataSources == "" || DataSources == undefined) {
 					layer.msg("璇疯緭鍏ユ暟鎹潵婧愶紒", {
 						icon: 2,
 						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 					});
 					return;
 				}
-				var Url=$('#Url').val();
-				if (Url == "" || Url ==undefined) {
+				var Url = $('#Url').val();
+				if (Url == "" || Url == undefined) {
 					layer.msg("璇疯緭鍏ユ帴鍙e湴鍧�锛�", {
 						icon: 2,
 						time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -520,18 +522,18 @@
 				SetInterface();
 			});
 			//#region 浜嬩欢鏂规硶
-			
+
 			// 娣诲姞鎺ュ彛淇℃伅
 			var doing = true;
 			function SetInterface(data) {
 				var item2 = getInterfaceInfo();
-				if (item2 !=-1) {				
+				if (item2 != -1) {
 					if (doing) {
 						doing = false;
 						if (id == null) {
 							// 娣诲姞
 							sendData(IP + "/Basis/AddInterface", item2, 'post', function (res) {
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -551,7 +553,7 @@
 						else {
 							// 缂栬緫
 							sendData(IP + "/Basis/EditInterface", item2, 'post', function (res) {
-								if (res.code == 0) { //鎴愬姛
+								if (res.code == 200) { //鎴愬姛
 									layer.msg(res.msg, {
 										icon: 1,
 										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
@@ -577,7 +579,7 @@
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						}, function () { doing = true });
 					}
-				}	
+				}
 			}
 
 			// 鎻愪氦鑾峰彇鎺ュ彛淇℃伅
@@ -585,61 +587,61 @@
 				var DataList = [];
 				var menu = layui.table.cache["LAY-app-content-list"];
 				for (var i in menu) {
-					if(menu[i]==[]){
+					if (menu[i] == []) {
 						continue;
 					}
-					if (menu[i].InterfaceNo == "" || menu[i].InterfaceNo ==undefined) {
+					if (menu[i].InterfaceNo == "" || menu[i].InterfaceNo == undefined) {
 						layer.msg("璇疯緭鍏ユ帴鍙g紪鍙凤紒", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
 					}
-					if (menu[i].ExtField == "" || menu[i].ExtField ==undefined) {
+					if (menu[i].ExtField == "" || menu[i].ExtField == undefined) {
 						layer.msg("璇疯緭鍏ュ绯荤粺瀛楁锛�", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
-					}	
-					if (menu[i].MapField == "" || menu[i].MapField ==undefined) {
+					}
+					if (menu[i].MapField == "" || menu[i].MapField == undefined) {
 						layer.msg("璇疯緭鍏ユ槧灏勫瓧娈碉紒", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
 					}
-					if (menu[i].Field == "" || menu[i].Field ==undefined) {
+					if (menu[i].Field == "" || menu[i].Field == undefined) {
 						layer.msg("璇疯緭鍏ユ湰绯荤粺瀛楁锛�", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
 					}
-					if (menu[i].FieldType == "" || menu[i].FieldType ==undefined) {
+					if (menu[i].FieldType == "" || menu[i].FieldType == undefined) {
 						layer.msg("璇烽�夋嫨瀛楁绫诲瀷锛�", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
 					}
-					if (menu[i].DataType == "" || menu[i].DataType ==undefined) {
+					if (menu[i].DataType == "" || menu[i].DataType == undefined) {
 						layer.msg("璇烽�夋嫨鏁版嵁绫诲瀷锛�", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
 					}
-					if (menu[i].IsNull == "" || menu[i].IsNull ==undefined) {
+					if (menu[i].IsNull == "" || menu[i].IsNull == undefined) {
 						layer.msg("璇烽�夋嫨鍏佽涓虹┖锛�", {
 							icon: 2,
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 						return -1;
-					}				
+					}
 
 					var item = {
-						Id:menu[i].Id,
+						Id: menu[i].Id,
 						InterfaceNo: menu[i].InterfaceNo,
 						ExtField: menu[i].ExtField,
 						MapField: menu[i].MapField,
@@ -652,7 +654,7 @@
 					};
 					DataList.push(item); //灞炴��
 				}
-				
+
 				var item2 = {
 					InterfaceNo: $("#InterfaceNo").val(),
 					InterfaceName: $("#InterfaceName").val(),
@@ -660,7 +662,7 @@
 					TransmissionMode: $("#TransmissionMode").val(),
 					Remark: $("#Remark").val(),
 					Url: $("#Url").val(),
-					DataSources:$("#DataSources").val(),
+					DataSources: $("#DataSources").val(),
 					InterfaceDetail: DataList
 				}
 				return item2;
diff --git a/Wms/Utility/Extension/ApplicationBuilderExtensions.cs b/Wms/Utility/Extension/ApplicationBuilderExtensions.cs
index 5c72390..d8835b2 100644
--- a/Wms/Utility/Extension/ApplicationBuilderExtensions.cs
+++ b/Wms/Utility/Extension/ApplicationBuilderExtensions.cs
@@ -53,16 +53,23 @@
                     if (!string.IsNullOrEmpty(token))
                     {
                         var handler = new JwtSecurityTokenHandler();
-                        var jwtToken = handler.ReadJwtToken(token);
-                        var claim = jwtToken.Payload.Claims.FirstOrDefault(s => s.Type == "LoginName");
-                        //foreach (var claim in jwtToken.Payload.Claims)
-                        //{
-                        //    Console.WriteLine($"{claim.Type}: {claim.Value}");
-                        //}
-                        if (claim != null)
-                            diagnosticContext.Set("_UserName", claim.Value);
-                        else
-                            diagnosticContext.Set("_UserName", "");
+                        try
+                        {
+                            var jwtToken = handler.ReadJwtToken(token);
+                            var claim = jwtToken.Payload.Claims.FirstOrDefault(s => s.Type == "LoginName");
+                            //foreach (var claim in jwtToken.Payload.Claims)
+                            //{
+                            //    Console.WriteLine($"{claim.Type}: {claim.Value}");
+                            //}
+                            if (claim != null)
+                                diagnosticContext.Set("_UserName", claim.Value);
+                            else
+                                diagnosticContext.Set("_UserName", "");
+                        }
+                        catch (Exception)
+                        {
+
+                        }
                     }
                     //璇锋眰body
                     var requestContent = "{}";
diff --git a/Wms/WMS.BLL/SysServer/CustomerServer.cs b/Wms/WMS.BLL/SysServer/CustomerServer.cs
index 0af5d65..4105f4b 100644
--- a/Wms/WMS.BLL/SysServer/CustomerServer.cs
+++ b/Wms/WMS.BLL/SysServer/CustomerServer.cs
@@ -25,7 +25,7 @@
         }
 
 
-        public List<CustomerDto> GetCustomerList(string no,string name, int? type, string linkMan, string phone, int page, int limit, out int count)
+        public async Task<List<CustomerDto>> GetCustomerList(string no, string name, int? type, string linkMan, string phone, int page, int limit, RefAsync<int> count)
         {
             try
             {
@@ -37,10 +37,10 @@
                     .AndIF(!string.IsNullOrWhiteSpace(phone), it => it.Phone.Contains(phone.Trim()))
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
-                var data = CustomerRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
+                var data = await CustomerRst.GetAllByOrderPage(item, limit, page, out int counts)
                     .Includes(x => x.CreateUserInfo)
                     .Includes(x => x.UpdateUserInfo)
-                    .ToList();
+                    .ToListAsync();
                 count = counts;
 
                 return data.Select(m => new CustomerDto()
@@ -68,11 +68,11 @@
             }
         }
 
-        public SysCustomer GetCustomer(int id)
+        public async Task<SysCustomer> GetCustomer(int id)
         {
             try
             {
-                var data = CustomerRst.GetOneById(id);
+                var data = await CustomerRst.GetOneByIdAsync(id);
                 return data;
             }
             catch (Exception e)
@@ -81,11 +81,11 @@
             }
         }
 
-        public List<SysCustomer> GetCustomerSelect()
+        public async Task<List<SysCustomer>> GetCustomerSelect()
         {
             try
             {
-                var data = CustomerRst.GetAllAsync().ToList();
+                var data = await CustomerRst.GetAllAsync();
                 return data;
             }
             catch (Exception e)
@@ -94,17 +94,17 @@
             }
         }
 
-        public bool AddCustomer(string no, string name, int type, string address, string linkMan, string phone, string bankAccount, string creditRating, string demo, int userId)
+        public async Task<bool> AddCustomer(string no, string name, int type, string address, string linkMan, string phone, string bankAccount, string creditRating, string demo, int userId)
         {
             try
             {
                 //鍒ゆ柇鏄惁閲嶅
-                var customer = CustomerRst.GetAllWhereAsync(m => m.CustomerNo == no && m.IsDel == "0").First();
+                var customer = CustomerRst.GetAllWhere(m => m.CustomerNo == no && m.IsDel == "0").First();
                 if (customer != null)
                 {
                     throw new Exception("鐩稿悓缂栫爜鐨勫鎴峰凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
                 }
-                var num = CustomerRst.Add(new SysCustomer()
+                var num = await CustomerRst.AddAsync(new SysCustomer()
                 {
                     CustomerNo = no,
                     CustomerName = name,
@@ -125,12 +125,12 @@
             }
         }
 
-        public bool EditCustomer(int id, string no, string name, int type, string address, string linkMan, string phone,
+        public async Task<bool> EditCustomer(int id, string no, string name, int type, string address, string linkMan, string phone,
             string bankAccount, string creditRating, string demo, int userId)
         {
             try
             {
-                var customer = CustomerRst.GetOneById(id);
+                var customer = await CustomerRst.GetOneByIdAsync(id);
                 if (customer == null)
                 {
                     throw new Exception("鏈煡璇㈠埌瀹㈡埛淇℃伅");
@@ -147,7 +147,7 @@
                 customer.Demo = demo;
                 customer.UpdateUser = userId;
                 customer.UpdateTime = DateTime.Now;
-                var num = CustomerRst.Edit(customer);
+                var num = await CustomerRst.EditAsync(customer);
                 return num > 0;
             }
             catch (Exception e)
@@ -156,35 +156,21 @@
             }
         }
 
-        public bool DelCustomer(int id, int userId)
+        public async Task<bool> DelCustomer(int id, int userId)
         {
-            try
-            {
-                var num = CustomerRst.Remove(id, userId);
-                return num > 0;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var num = await CustomerRst.RemoveAsync(id, userId);
+            return num > 0;
         }
 
-        public bool DelsCustomer(List<int> ids, int userId)
+        public async Task<bool> DelsCustomer(List<int> ids, int userId)
         {
-            try
+            var list = await CustomerRst.GetAllWhere(m => ids.Contains(m.Id)).ToListAsync();
+            for (int i = 0; i < list.Count; i++)
             {
-                var list = CustomerRst.GetAllWhereAsync(m => ids.Contains(m.Id)).ToList();
-                for (int i = 0; i < list.Count; i++)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", list[i].CustomerNo, "鍒犻櫎", "鍒犻櫎瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + list[i].CustomerNo, userId);
-                }
-                var num = CustomerRst.RemoveAll(list, userId);
-                return num > 0;
+                await _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", list[i].CustomerNo, "鍒犻櫎", "鍒犻櫎瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + list[i].CustomerNo, userId);
             }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var num = await CustomerRst.RemoveAllAsync(list, userId);
+            return num > 0;
         }
     }
 }
diff --git a/Wms/WMS.BLL/SysServer/DepartmentServer.cs b/Wms/WMS.BLL/SysServer/DepartmentServer.cs
index b7d1a9c..e9129e5 100644
--- a/Wms/WMS.BLL/SysServer/DepartmentServer.cs
+++ b/Wms/WMS.BLL/SysServer/DepartmentServer.cs
@@ -7,6 +7,11 @@
 using WMS.Entity.SysEntity;
 using WMS.IBLL.ISysServer;
 using WMS.IDAL.ISysInterface;
+using SqlSugar;
+using WMS.Entity.Context;
+using Utility;
+using Microsoft.AspNetCore.Identity;
+using System.Data;
 
 namespace WMS.BLL.SysServer
 {
@@ -20,15 +25,18 @@
         /// </summary>
         private readonly IDepartmentRepository _department;
         readonly IMapper _mapper;
+        private static readonly SqlSugarScope Db = DataContext.Db;
+        private readonly UserManager _userManager;
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="server">閮ㄩ棬浠撳偍鎺ュ彛</param>
         /// <param name="mapper">automapper</param>
-        public DepartmentServer(IDepartmentRepository department, IMapper mapper)
+        public DepartmentServer(IDepartmentRepository department, IMapper mapper, UserManager userManager)
         {
             _department = department;//閮ㄩ棬
             _mapper = mapper;//automapper
+            _userManager = userManager;
         }
 
         /// <summary>
@@ -37,10 +45,15 @@
         /// <param name="DepartmentName">閮ㄩ棬鍚嶇О</param>
         /// <param name="DepartmentNo">閮ㄩ棬鍙�</param>
         /// <returns></returns>
-        public List<DepartmentDto> GetDepartmentList(string DepartmentName, string DepartmentNo)
+        public async Task<List<DepartmentDto>> GetDepartmentList(string DepartmentName, string DepartmentNo)
         {
-            List<DepartmentDto> departmentlist = _department.GetDepartmentList(DepartmentName, DepartmentNo);
-            return departmentlist;
+            return await Db.Queryable<SysDepartment>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .WhereIF(!string.IsNullOrEmpty(DepartmentNo), a => a.DepartmentNo.Contains(DepartmentNo))
+                           .WhereIF(!string.IsNullOrEmpty(DepartmentName), a => a.DepartmentName.Contains(DepartmentName))
+                           .Where(a => a.IsDel == "0")
+                           .Select<DepartmentDto>((a, b) => new DepartmentDto() { CreateUserName = b.RealName }, true)
+                           .ToListAsync();
         }
 
         /// <summary>
@@ -48,22 +61,20 @@
         /// </summary>
         /// <param name="id">閮ㄩ棬id</param>
         /// <returns></returns>
-        public SysDepartment GetDepartmentById(int id)
+        public async Task<SysDepartment> GetDepartmentById(int id)
         {
-            SysDepartment department = _department.GetDepartmentById(id);
-            return department;
+            return await Db.Queryable<SysDepartment>().FirstAsync(s => s.Id == id);
         }
 
         /// <summary>
         /// 鏍规嵁閮ㄩ棬鍙疯幏鍙栭儴闂ㄤ俊鎭�
         /// </summary>
         /// <returns></returns>
-        public int GetDepartmentByNo(string DepartmentNo)
+        public async Task<int> GetDepartmentByNo(string DepartmentNo)
         {
-            List<SysDepartment> department = _department.GetDepartmentByNo(DepartmentNo);
-            return department.Count;
+            return await Db.Queryable<SysDepartment>().CountAsync(s => s.DepartmentNo == DepartmentNo && s.IsDel == "0");
         }
-      
+
         /// <summary>
         /// 鏂板閮ㄩ棬淇℃伅
         /// </summary>
@@ -72,30 +83,18 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> AddDepartment(DepartmentDto departmentdto)
         {
-            //鎹曡幏寮傚父
-            try
+            //妯″瀷鏄犲皠
+            SysDepartment department = _mapper.Map<SysDepartment>(departmentdto);
+            //鍒ゆ柇閮ㄩ棬鍙锋槸鍚﹀敮涓�
+            int count = await GetDepartmentByNo(department.DepartmentNo);
+            if (count > 0)
             {
-                //妯″瀷鏄犲皠
-                SysDepartment department = _mapper.Map<SysDepartment>(departmentdto);
-                //鍒ゆ柇閮ㄩ棬鍙锋槸鍚﹀敮涓�
-                int count = GetDepartmentByNo(department.DepartmentNo);
-                int i = 0;
-                if (count > 0)
-                {
-                    i = 3;
-                }
-                else if (count == 0)
-                {
-                    i = await _department.AddDepartment(department);
-                }
-                 return i;
-                
+                throw Oops.Bah("閮ㄩ棬鍙峰繀椤诲敮涓�");
             }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鏂板閮ㄩ棬寮傚父", ex);
-            }
+            department.CreateTime = DateTime.Now;
+            department.CreateUser = _userManager.UserId;
+            return await Db.Insertable(department).ExecuteCommandAsync();
+
         }
 
         /// <summary>
@@ -106,18 +105,12 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> DelDepartment(SysDepartment department)
         {
-            //鎹曡幏寮傚父
-            try
-            {
-                //鍒犻櫎
-                int i = await _department.DelDepartment(department);
-                return i;
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鍒犻櫎閮ㄩ棬寮傚父", ex);
-            }
+            return await Db.Updateable<SysDepartment>()
+                           .Where(s => s.Id == department.Id)
+                           .SetColumns(s => s.IsDel == "1")
+                           .SetColumns(s => s.UpdateTime == DateTime.Now)
+                           .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                           .ExecuteCommandAsync();
         }
 
         /// <summary>
@@ -128,20 +121,15 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> ExitDepartment(DepartmentDto departmentdto)
         {
-            //鎹曡幏寮傚父
-            try
-            {
-                //妯″瀷鏄犲皠
-                SysDepartment department = _mapper.Map<SysDepartment>(departmentdto);
-                //缂栬緫
-                int i = await _department.ExitDepartment(department);
-                return i;
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("缂栬緫閮ㄩ棬寮傚父", ex);
-            }
+            SysDepartment department = _mapper.Map<SysDepartment>(departmentdto);
+            int count = await Db.Queryable<SysDepartment>().CountAsync(s => s.DepartmentNo == departmentdto.DepartmentNo && s.Id != departmentdto.Id && s.IsDel == "0");
+            if (count > 0)
+                throw Oops.Bah("閮ㄩ棬鍙峰繀椤诲敮涓�");
+            department.UpdateUser = _userManager.UserId;
+            department.UpdateTime = DateTime.Now;
+            return await Db.Updateable(department)
+                .UpdateColumns(s => new { s.DepartmentNo, s.DepartmentName, s.Demo, s.UpdateUser, s.UpdateTime })
+                .ExecuteCommandAsync();
         }
     }
 }
diff --git a/Wms/WMS.BLL/SysServer/DictionaryServer.cs b/Wms/WMS.BLL/SysServer/DictionaryServer.cs
index 1103cad..101813b 100644
--- a/Wms/WMS.BLL/SysServer/DictionaryServer.cs
+++ b/Wms/WMS.BLL/SysServer/DictionaryServer.cs
@@ -31,7 +31,7 @@
         {
             try
             {
-                var data = _dic.GetAllWhereAsync(m => m.ParentNo == parentNo && m.Level == "1").OrderBy(m => m.Ord).ToList();
+                var data = _dic.GetAllWhere(m => m.ParentNo == parentNo && m.Level == "1").OrderBy(m => m.Ord).ToList();
                 return data;
             }
             catch (Exception e)
diff --git a/Wms/WMS.BLL/SysServer/ExceptionServer.cs b/Wms/WMS.BLL/SysServer/ExceptionServer.cs
index 901b136..e14c80e 100644
--- a/Wms/WMS.BLL/SysServer/ExceptionServer.cs
+++ b/Wms/WMS.BLL/SysServer/ExceptionServer.cs
@@ -57,7 +57,7 @@
                     .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type)
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
-                var data = await ExceptionRst.GetAllByOrderPageAsync(item, limit, page, out int counts).ToListAsync();
+                var data = await ExceptionRst.GetAllByOrderPage(item, limit, page, out int counts).ToListAsync();
                 return data;
             }
             catch (Exception e)
diff --git a/Wms/WMS.BLL/SysServer/FunSettingServer.cs b/Wms/WMS.BLL/SysServer/FunSettingServer.cs
index dca6393..8f0606c 100644
--- a/Wms/WMS.BLL/SysServer/FunSettingServer.cs
+++ b/Wms/WMS.BLL/SysServer/FunSettingServer.cs
@@ -12,6 +12,8 @@
 using WMS.Entity.SysEntity;
 using WMS.IBLL.ISysServer;
 using WMS.IDAL.ISysInterface;
+using Utility;
+using Microsoft.AspNetCore.Identity;
 
 namespace WMS.BLL.SysServer
 {
@@ -24,15 +26,17 @@
         /// </summary>
         private readonly IFunSettingRepository _setting;
         private readonly IMapper _mapper;
+        private readonly UserManager _userManager;
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="setting">鍔熻兘璁惧畾</param>
         /// <param name="mapper">automapper</param>
-        public FunSettingServer(IFunSettingRepository setting, IMapper mapper) : base(Db)
+        public FunSettingServer(IFunSettingRepository setting, IMapper mapper, UserManager userManager) : base(Db)
         {
             _setting = setting;//鍔熻兘璁惧畾
             _mapper = mapper;//automapper
+            _userManager = userManager;
         }
 
 
@@ -43,11 +47,16 @@
         /// <param name="IsEnable">寮�鍚姸鎬�</param>
         /// <param name="GroupNo">缁勫彿</param>
         /// <returns></returns>
-        public List<FunSettingDto> GetFunSettingList(string FunSetName, string IsEnable, string GroupNo)
+        public async Task<List<FunSettingDto>> GetFunSettingList(string FunSetName, string IsEnable, string GroupNo)
         {
-
-            List<FunSettingDto> settinglist = _setting.GetFunSettingList(FunSetName, IsEnable, GroupNo);
-            return settinglist;
+            return await Db.Queryable<SysFunSetting>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .WhereIF(!string.IsNullOrEmpty(FunSetName), a => a.FunSetName.Contains(FunSetName))
+                           .WhereIF(!string.IsNullOrEmpty(GroupNo), a => a.GroupNo.Contains(GroupNo))
+                           .WhereIF(!string.IsNullOrEmpty(IsEnable), a => a.IsEnable == IsEnable)
+                           .Where(a => a.IsDel == "0")
+                           .Select<FunSettingDto>((a, b) => new FunSettingDto() { CreateName = b.RealName }, true)
+                           .ToListAsync();
         }
 
         /// <summary>
@@ -55,10 +64,9 @@
         /// </summary>
         /// <param name="id">鍔熻兘id</param>
         /// <returns></returns>
-        public SysFunSetting GetFunSettingById(int id)
+        public async Task<SysFunSetting> GetFunSettingById(int id)
         {
-            SysFunSetting settinglist = _setting.GetFunSettingById(id);
-            return settinglist;
+            return await Db.Queryable<SysFunSetting>().FirstAsync(s => s.Id == id);
         }
 
         /// <summary>
@@ -66,18 +74,9 @@
         /// </summary>
         /// <param name="funSetNo">鍔熻兘缂栧彿</param>
         /// <returns></returns>
-        public SysFunSetting GetFunSettingByNo(string funSetNo)
+        public async Task<SysFunSetting> GetFunSettingByNo(string funSetNo)
         {
-            try
-            {
-                var list = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == funSetNo);
-                return list;
-            }
-            catch (Exception ex)
-            {
-
-                throw ex;
-            }
+            return await Db.Queryable<SysFunSetting>().FirstAsync(a => a.IsDel == "0" && a.FunSetNo == funSetNo);
         }
 
         ///// <summary>
@@ -99,36 +98,16 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> AddFunSettings(FunSettingDto settingdto)
         {
-            //鎹曡幏寮傚父
-            try
+            //鏄犲皠妯″瀷
+            SysFunSetting setting = _mapper.Map<SysFunSetting>(settingdto);
+            var setData = await Db.Queryable<SysFunSetting>().FirstAsync(m => m.IsDel == "0" && m.GroupNo == settingdto.GroupNo && m.SetValue == settingdto.SetValue);
+            if (setData != null)
             {
-                //鏄犲皠妯″瀷
-                SysFunSetting setting = _mapper.Map<SysFunSetting>(settingdto);
-                //鍒ゆ柇鍔熻兘缂栧彿鏄惁鍞竴
-                var set = GetFunSettingByNo(setting.FunSetNo);
-                int i = 0;
-                if (set != null)
-                {
-                    i = 3;
-                }
-                else if (set == null)
-                {
-                    var setData = Db.Queryable<SysFunSetting>()
-                        .First(m => m.IsDel == "0" && m.GroupNo == settingdto.GroupNo && m.SetValue==settingdto.SetValue);
-                    if (setData!=null)
-                    {
-                        throw new Exception("鍚岀粍鍐呰瀹氬�奸噸澶�");
-                    }
-                    //鏂板
-                    i = await _setting.AddFunSettings(setting);
-                }
-                return i;
+                throw Oops.Bah("鍚岀粍鍐呰瀹氬�奸噸澶�");
             }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception(ex.Message);
-            }
+            setting.CreateTime = DateTime.Now;
+            setting.CreateUser = _userManager.UserId;
+            return await Db.Insertable(setting).ExecuteCommandAsync();
         }
 
         /// <summary>
@@ -139,18 +118,12 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> DelFunSettings(SysFunSetting funSetting)
         {
-            //鎹曡幏寮傚父
-            try
-            {
-                //鍒犻櫎
-                int i = await _setting.DelFunSettings(funSetting);
-                return i;
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鍒犻櫎鍔熻兘寮傚父", ex);
-            }
+            return await Db.Updateable<SysFunSetting>()
+                           .Where(s => s.Id == funSetting.Id)
+                           .SetColumns(s => s.IsDel == "1")
+                           .SetColumns(s => s.UpdateTime == DateTime.Now)
+                           .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                           .ExecuteCommandAsync();
         }
 
         /// <summary>
@@ -161,27 +134,19 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> ExitFunSettings(FunSettingDto settingdto)
         {
-            //鎹曡幏寮傚父
-            try
-            {
-                //鏄犲皠妯″瀷
-                SysFunSetting setting = _mapper.Map<SysFunSetting>(settingdto);
+            SysFunSetting setting = _mapper.Map<SysFunSetting>(settingdto);
 
-                var setData = Db.Queryable<SysFunSetting>()
-                    .First(m => m.IsDel == "0" && m.GroupNo == settingdto.GroupNo && m.SetValue == settingdto.SetValue && m.Id!=settingdto.Id);
-                if (setData != null)
-                {
-                    throw new Exception("鍚岀粍鍐呰瀹氬�奸噸澶�");
-                }
-                //缂栬緫
-                int i = await _setting.ExitFunSettings(setting);
-                return i;
-            }
-            catch (Exception ex)
+            var setData = await Db.Queryable<SysFunSetting>()
+                .FirstAsync(m => m.IsDel == "0" && m.GroupNo == settingdto.GroupNo && m.SetValue == settingdto.SetValue && m.Id != settingdto.Id);
+            if (setData != null)
             {
-                //鎶涘嚭寮傚父
-                throw new Exception(ex.Message);
+                throw Oops.Bah("鍚岀粍鍐呰瀹氬�奸噸澶�");
             }
+            setting.UpdateUser = _userManager.UserId;
+            setting.UpdateTime = DateTime.Now;
+            return await Db.Updateable(setting)
+                .UpdateColumns(s => new { s.FunSetName, s.SetValue, s.FunText, s.IsEnable, s.Ord, s.GroupNo, s.UpdateUser, s.UpdateTime })
+                .ExecuteCommandAsync();
         }
     }
 }
diff --git a/Wms/WMS.BLL/SysServer/InterfaceServer.cs b/Wms/WMS.BLL/SysServer/InterfaceServer.cs
index a256b34..20bc4aa 100644
--- a/Wms/WMS.BLL/SysServer/InterfaceServer.cs
+++ b/Wms/WMS.BLL/SysServer/InterfaceServer.cs
@@ -1,4 +1,6 @@
-锘縰sing Model.ModelDto.SysDto;
+锘縰sing AutoMapper;
+using Model.ModelDto.LogDto;
+using Model.ModelDto.SysDto;
 using Model.ModelVm.SysVm;
 using Newtonsoft.Json;
 using SqlSugar;
@@ -7,8 +9,11 @@
 using System.Linq;
 using System.Reflection;
 using System.Text;
+using System.Threading.Tasks;
+using Utility;
 using WMS.DAL;
 using WMS.Entity.Context;
+using WMS.Entity.LogEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.ILogServer;
 using WMS.IBLL.ISysServer;
@@ -20,9 +25,13 @@
         private static readonly SqlSugarScope Db = DataContext.Db;
 
         private readonly IOperationSysServer _operation; //鎿嶄綔鏃ュ織
-        public InterfaceServer(IOperationSysServer operation)
+        private readonly UserManager _userManager;
+        private readonly IMapper _mapper;
+        public InterfaceServer(IOperationSysServer operation, IMapper mapper, UserManager userManager)
         {
             _operation = operation;
+            _userManager = userManager;
+            _mapper = mapper;//automapper
         }
         /// <summary>
         /// 鑾峰彇鎺ュ彛鍒楄〃
@@ -30,50 +39,23 @@
         /// <param name="model"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        public List<InterfaceDto> GetInterfaceList(InterfaceVm model, out int count)
+        public async Task<SqlSugarPagedList<InterfaceDto>> GetInterfaceList(InterfaceVm model)
         {
-            string sqlString = string.Empty;
-            string sqlCount = string.Empty;
-            string sqlPub = string.Empty;
-            try
-            {
-                sqlCount += "SELECT DISTINCT COUNT(tb1.Id) FROM SysInterface AS tb1 ";
-
-                sqlString += "SELECT DISTINCT tb1.*,tb2.RealName as CreateUserName,tb3.RealName as UpdateUserName FROM SysInterface AS tb1 ";
-                sqlPub += "LEFT JOIN SysUserInfor AS tb2 ON tb1.CreateUser = tb2.Id ";
-                sqlPub += "LEFT JOIN SysUserInfor AS tb3 ON tb1.UpdateUser = tb3.Id ";
-                sqlPub += $"WHERE tb1.IsDel=0 ";
-                if (!string.IsNullOrEmpty(model.InterfaceNo))
-                {
-                    sqlPub += $"AND tb1.InterfaceNo LIKE '%{model.InterfaceNo}%' ";
-                }
-                if (!string.IsNullOrEmpty(model.InterfaceName))
-                {
-                    sqlPub += $"AND tb1.InterfaceName LIKE '%{model.InterfaceName}%' ";
-                }
-                if (!string.IsNullOrEmpty(model.Direction))
-                {
-                    sqlPub += $"AND tb1.Direction = '{model.Direction}' ";
-                }
-                sqlCount += sqlPub;
-                sqlPub += " order by tb1.Id ";
-                if (model.Page == 0)
-                {
-                    model.Page = 1;
-                }
-                sqlString += sqlPub + $" offset {((model.Page - 1) * model.Limit)} rows fetch next {model.Limit} rows only;";
-
-                var com = new Common();
-                count = com.GetRowCount(sqlCount);
-
-                var modelList = Db.Ado.SqlQuery<InterfaceDto>(sqlString);
-
-                return modelList;
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
+            return await Db.Queryable<SysInterface>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
+                           .Where(a => a.IsDel == "0")
+                           .WhereIF(!string.IsNullOrEmpty(model.InterfaceNo), a => a.InterfaceNo.Contains(model.InterfaceNo))
+                           .WhereIF(!string.IsNullOrEmpty(model.InterfaceName), a => a.InterfaceName.Contains(model.InterfaceName))
+                           .WhereIF(!string.IsNullOrEmpty(model.Direction), a => a.Direction == model.Direction)
+                           .OrderBy(a => a.Id)
+                           .Select<InterfaceDto>((a, b, c) => new InterfaceDto()
+                           {
+                               Id = a.Id,
+                               CreateUserName = b.RealName,
+                               UpdateUserName = c.RealName,
+                           }, true)
+                           .ToPagedListAsync(model.Page, model.Limit);
         }
         /// <summary>
         /// 鑾峰彇鎺ュ彛鏄庣粏鍒楄〃
@@ -81,39 +63,20 @@
         /// <param name="model"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        public List<InterfaceDetailDto> GetInterfaceDetailList(InterfaceDetailVm model, out int count)
+        public async Task<SqlSugarPagedList<InterfaceDetailDto>> GetInterfaceDetailList(InterfaceDetailVm model)
         {
-            string sqlString = string.Empty;
-            string sqlCount = string.Empty;
-            int rowCount = 1;
-            try
-            {
-                if (model.Page == 0)
-                {
-                    model.Page = 1;
-                }
-                sqlCount += $"SELECT COUNT(ID) FROM SysInterfaceDetail where InterfaceNo = '{model.InterfaceNo}' and isdel = '0';";
-                var com = new Common();
-                count = com.GetRowCount(sqlCount);
-                if (count != 0)
-                {
-                    rowCount = count;
-                }
-
-                sqlString += "SELECT tb1.*,tb2.RealName as CreateUserName,tb3.RealName as UpdateUserName FROM SysInterfaceDetail AS tb1 ";
-                sqlString += "LEFT JOIN SysUserInfor AS tb2 ON tb1.CreateUser = tb2.Id ";
-                sqlString += "LEFT JOIN SysUserInfor AS tb3 ON tb1.UpdateUser = tb3.Id ";
-                sqlString += $"WHERE tb1.InterfaceNo = '{model.InterfaceNo}' AND tb1.IsDel = '0' order by tb1.Id ";
-                sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;";
-
-                var modelList = Db.Ado.SqlQuery<InterfaceDetailDto>(sqlString);
-
-                return modelList;
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
+            return await Db.Queryable<SysInterfaceDetail>()
+                           .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                           .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
+                           .Where(a => a.IsDel == "0")
+                           .WhereIF(!string.IsNullOrEmpty(model.InterfaceNo), a => a.InterfaceNo == model.InterfaceNo)
+                           .Select<InterfaceDetailDto>((a, b, c) => new InterfaceDetailDto()
+                           {
+                               Id = a.Id,
+                               CreateUserName = b.RealName,
+                               UpdateUserName = c.RealName,
+                           }, true)
+                           .ToPagedListAsync(model.Page, model.Limit);
         }
 
         /// <summary>
@@ -121,63 +84,27 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public string AddInterface(InterfaceVm model)
+        public async Task AddInterface(InterfaceVm model)
         {
-            string strMessage = "";
-            string sqlString = string.Empty;
-            string sqlDetailStr = string.Empty;
-            try
+            if (await Db.Queryable<SysInterface>().AnyAsync(s => s.InterfaceNo == model.InterfaceNo))
             {
-                string sqlCount = $"SELECT COUNT(ID) FROM SysInterface where InterfaceNo = '{model.InterfaceNo}' and isdel = '0';";
-                var com = new Common().GetRowCount(sqlCount);
-                if (com > 0)
-                {
-                    strMessage = "-1:鎺ュ彛缂栧彿宸插瓨鍦紝璇峰嬁閲嶅娣诲姞锛�";
-                    return strMessage;
-                }
-                //鎺ュ彛鎬讳俊鎭�
-                sqlString += "Insert into SysInterface (InterfaceNo,InterfaceName,Direction,TransmissionMode,Remark,Url,DataSources,CreateUser) values ( ";
-                sqlString += $"'{model.InterfaceNo}','{model.InterfaceName}','{model.Direction}','{model.TransmissionMode}','{model.Remark}','{model.Url}','{model.DataSources}','{model.CreateUser}' );";
-
-                //鎺ュ彛鏄庣粏
-                var detailModels = model.InterfaceDetail;
-                foreach (InterfaceDetailVm detailModel in detailModels)
-                {
-                    sqlDetailStr += "Insert into SysInterfaceDetail (InterfaceNo,ExtField,MapField,Field,";
-                    sqlDetailStr += "FieldType,DataType,IsNull,Remark,FieldFather,CreateUser) values ( ";
-                    sqlDetailStr += $"'{model.InterfaceNo}','{detailModel.ExtField}','{detailModel.MapField}','{detailModel.Field}', ";
-                    sqlDetailStr += $"'{detailModel.FieldType}','{detailModel.DataType}','{detailModel.IsNull}','{detailModel.Remark}','{detailModel.FieldFather}','{model.CreateUser}'); ";
-                }
-
-                if (sqlDetailStr == string.Empty)
-                {
-                    return strMessage;
-                }
-                Db.Ado.BeginTran();
-
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                var rowDetailCount = 1;
-                if (sqlDetailStr.Length > 0)
-                {
-                    rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
-                }
-                Db.Ado.CommitTran();
-                if (rowCount > 0 && rowDetailCount > 0)
-                {
-                    //缁存姢鎿嶄綔鏃ュ織
-                    _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "娣诲姞", $"娣诲姞浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser));
-                    return strMessage;
-                }
-                else
-                {
-                    Db.Ado.RollbackTran();
-                    return "-2:娣诲姞澶辫触鏁版嵁鍥炴粴!";
-                }
+                throw Oops.Bah("鎺ュ彛缂栧彿宸插瓨鍦紝璇峰嬁閲嶅娣诲姞");
             }
-            catch (Exception ex)
+            SysInterface modInterface = _mapper.Map<SysInterface>(model);
+            modInterface.CreateUser = _userManager.UserId;
+            modInterface.CreateTime = DateTime.Now;
+            await Db.Insertable<SysInterface>(modInterface).ExecuteCommandAsync();
+
+            List<SysInterfaceDetail> listDetails = new List<SysInterfaceDetail>();
+            foreach (InterfaceDetailVm detailModel in model.InterfaceDetail)
             {
-                throw new Exception(ex.Message);
+                SysInterfaceDetail modDetail = _mapper.Map<SysInterfaceDetail>(detailModel);
+                modDetail.CreateTime = modInterface.CreateTime;
+                modDetail.CreateUser = _userManager.UserId;
+                listDetails.Add(modDetail);
             }
+            await Db.Insertable(listDetails).ExecuteCommandAsync();
+
         }
 
         /// <summary>
@@ -185,50 +112,44 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public string EditInterface(InterfaceVm model)
+        public async Task EditInterface(InterfaceVm model)
         {
-            string strMessage = "";
-            string sqlString = string.Empty;
-            string sqlDetailStr = string.Empty;
-            try
+            SysInterface modInterface = _mapper.Map<SysInterface>(model);
+            modInterface.UpdateUser = _userManager.UserId;
+            modInterface.UpdateTime = DateTime.Now;
+            await Db.Updateable(modInterface)
+                .UpdateColumns(s => new { s.InterfaceName, s.Direction, s.TransmissionMode, s.Remark, s.Url, s.DataSources, s.UpdateTime, s.UpdateUser })
+                .ExecuteCommandAsync();
+
+            var listDetails = await Db.Queryable<SysInterfaceDetail>().Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0").ToListAsync();
+            foreach (SysInterfaceDetail dbDetailModel in listDetails)
             {
-                sqlString = "UPDATE SysInterface SET ";
-                sqlString += $"InterfaceName = '{model.InterfaceName}',Direction = '{model.Direction}',";
-                sqlString += $"TransmissionMode = '{model.TransmissionMode}',Remark = '{model.Remark}',Url = '{model.Url}',DataSources = '{model.DataSources}', ";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}'";
-
-                var detailModels = model.InterfaceDetail;
-                sqlDetailStr += $"SELECT * FROM SysInterfaceDetail WHERE InterfaceNo = '{model.InterfaceNo}' and isDel = '0';";
-                var dbDetailModels = DataContext.Db.Ado.SqlQuery<SysInterfaceDetail>(sqlDetailStr);
-
-                sqlDetailStr = string.Empty;
-                // 澶勭悊宸插垹闄ょ殑鏄庣粏
-                foreach (SysInterfaceDetail dbDetailModel in dbDetailModels)
+                if (!model.InterfaceDetail.Any(s => s.Id == dbDetailModel.Id))
                 {
-                    if (detailModels.Count(it => it.Id == dbDetailModel.Id) == 0)
-                    {
-                        sqlDetailStr += $"UPDATE SysInterfaceDetail SET IsDel = '1',";
-                        sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                        sqlDetailStr += $"WHERE Id = {dbDetailModel.Id};";
-                    }
+                    await Db.Updateable<SysInterfaceDetail>()
+                    .SetColumns(s => s.IsDel == "1")
+                    .SetColumns(s => s.UpdateTime == DateTime.Now)
+                    .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                    .Where(s => s.Id == dbDetailModel.Id && s.IsDel == "0")
+                    .ExecuteCommandAsync();
                 }
+            }
 
-                // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏
-                foreach (InterfaceDetailVm detailModel in detailModels)
+            // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏
+            foreach (InterfaceDetailVm detailModel in model.InterfaceDetail)
+            {
+                if (detailModel.Id == 0 || detailModel.Id == null)
                 {
-                    if (detailModel.Id == 0 || detailModel.Id == null)
-                    {
-                        sqlDetailStr += "Insert into SysInterfaceDetail (InterfaceNo,ExtField,MapField,Field,";
-                        sqlDetailStr += "FieldType,DataType,IsNull,Remark,FieldFather,CreateUser) values ( ";
-                        sqlDetailStr += $"'{model.InterfaceNo}','{detailModel.ExtField}','{detailModel.MapField}','{detailModel.Field}', ";
-                        sqlDetailStr += $"'{detailModel.FieldType}','{detailModel.DataType}','{detailModel.IsNull}','{detailModel.Remark}','{detailModel.FieldFather}','{model.CreateUser}'); ";
-                    }
-                    else
-                    {
-                        //鍒ゆ柇鏄惁鏇存敼
-                        int rowNum = dbDetailModels
-                            .Count(it => it.Id == detailModel.Id
+                    var modDetail = _mapper.Map<SysInterfaceDetail>(detailModel);
+                    modDetail.CreateTime = DateTime.Now;
+                    modDetail.CreateUser = _userManager.UserId;
+                    modDetail.UpdateUser = _userManager.UserId;
+                    modDetail.UpdateTime = DateTime.Now;
+                    await Db.Insertable(modDetail).ExecuteCommandAsync();
+                }
+                else
+                {
+                    int rowNum = listDetails.Count(it => it.Id == detailModel.Id
                                          && it.ExtField == detailModel.ExtField
                                          && it.MapField == detailModel.MapField
                                          && it.Field == detailModel.Field
@@ -237,44 +158,17 @@
                                          && it.IsNull == detailModel.IsNull
                                          && it.Remark == detailModel.Remark
                                          && it.FieldFather == detailModel.FieldFather);
-                        if (rowNum > 0)
-                        {
-                            continue;
-                        }
-
-                        sqlDetailStr += $"UPDATE SysInterfaceDetail SET ";
-                        sqlDetailStr += $"ExtField = '{detailModel.ExtField}',MapField = '{detailModel.MapField}',Field='{detailModel.Field}',FieldFather='{detailModel.FieldFather}', ";
-                        sqlDetailStr += $"FieldType = '{detailModel.FieldType}',DataType = '{detailModel.DataType}', ";
-                        sqlDetailStr += $"IsNull = '{detailModel.IsNull}',Remark = '{detailModel.Remark}', ";
-                        sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                        sqlDetailStr += $"WHERE Id = {detailModel.Id};";
+                    if (rowNum > 0)
+                    {
+                        continue;
                     }
+                    var modDetail = _mapper.Map<SysInterfaceDetail>(detailModel);
+                    modDetail.UpdateUser = _userManager.UserId;
+                    modDetail.UpdateTime = DateTime.Now;
+                    await Db.Updateable<SysInterfaceDetail>(modDetail)
+                        .UpdateColumns(s => new { s.ExtField, s.MapField, s.Field, s.FieldFather, s.FieldType, s.DataType, s.IsNull, s.Remark, s.UpdateUser, s.UpdateTime })
+                        .ExecuteCommandAsync();
                 }
-
-                Db.Ado.BeginTran();
-
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                var rowDetailCount = 1;
-                if (sqlDetailStr.Length > 0)
-                {
-                    rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
-                }
-                Db.Ado.CommitTran();
-                if (rowCount > 0 && rowDetailCount > 0)
-                {
-                    //缁存姢鎿嶄綔鏃ュ織
-                    _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "缂栬緫", $"缂栬緫浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser));
-                    return strMessage;
-                }
-                else
-                {
-                    Db.Ado.RollbackTran();
-                    return "-2:娣诲姞澶辫触鏁版嵁鍥炴粴!";
-                }
-            }
-            catch (Exception ex)
-            {
-                throw ex;
             }
         }
 
@@ -283,36 +177,21 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public string DelInterface(InterfaceVm model)
+        public async Task DelInterface(InterfaceVm model)
         {
-            try
-            {
-                string sqlString = "";
-                // 鍒犻櫎鎬�
-                sqlString = $"UPDATE SysInterface SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}';";
+            await Db.Updateable<SysInterface>()
+                    .SetColumns(s => s.IsDel == "1")
+                    .SetColumns(s => s.UpdateTime == DateTime.Now)
+                    .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                    .Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0")
+                    .ExecuteCommandAsync();
 
-                // 鍒犻櫎鏄庣粏
-                sqlString += $"UPDATE SysInterfaceDetail SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}';";
-                Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-
-                if (rowCount < 2)
-                {
-                    Db.RollbackTran();
-                    return "-1:鍒犻櫎澶辫触锛�";
-                }
-                Db.Ado.CommitTran();
-                _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "鍒犻櫎", $"鍒犻櫎浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser));
-                return "";
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
+            await Db.Updateable<SysInterfaceDetail>()
+                    .SetColumns(s => s.IsDel == "1")
+                    .SetColumns(s => s.UpdateTime == DateTime.Now)
+                    .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                    .Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0")
+                    .ExecuteCommandAsync();
         }
 
         /// <summary>
@@ -320,34 +199,16 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public string DelInterfaceDetail(InterfaceDetailVm model)
+        public async Task DelInterfaceDetail(InterfaceDetailVm model)
         {
-            try
-            {
-                string sqlString = "";
-
-                // 鍒犻櫎鏄庣粏
-                sqlString += $"UPDATE SysInterfaceDetail SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE Id = '{model.Id}';";
-                Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-
-                if (rowCount < 1)
-                {
-                    Db.RollbackTran();
-                    return "-1:鍒犻櫎澶辫触锛�";
-                }
-                Db.Ado.CommitTran();
-                _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "鍒犻櫎", $"鍒犻櫎浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}锛屾湰绯荤粺瀛楁涓簕model.Field}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser));
-                return "";
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
+            await Db.Updateable<SysInterfaceDetail>()
+                    .SetColumns(s => s.IsDel == "1")
+                    .SetColumns(s => s.UpdateTime == DateTime.Now)
+                    .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                    .Where(s => s.Id == model.Id)
+                    .ExecuteCommandAsync();
         }
-        
+
         //public void ceshi()
         //{
         //    string interfaceNo = "A0001";
@@ -360,7 +221,7 @@
         /// </summary>
         /// <param name="InterfaceNo">鎺ュ彛缂栧彿</param>
         /// <param name="param">瀛樺偍杩囩▼鍙傛暟</param>
-        public void RespondResult(string InterfaceNo,string param)
+        public void RespondResult(string InterfaceNo, string param)
         {
             try
             {
@@ -427,13 +288,13 @@
                     var response = Utility.Tools.HttpHelper.DoPost(interfaceModel.Url, jsonData, interfaceModel.InterfaceName, interfaceModel.Remark);
                 }
                 else
-                { 
-                
-                }               
+                {
+
+                }
             }
             catch (Exception ex)
-            { 
-            
+            {
+
             }
         }
         /// <summary>
@@ -455,7 +316,7 @@
         }
     }
     public class RequestData
-    { 
+    {
         public string Field1 { get; set; }
         public string Field2 { get; set; }
         public string Field3 { get; set; }
diff --git a/Wms/WMS.BLL/SysServer/LogisticsInfoServer.cs b/Wms/WMS.BLL/SysServer/LogisticsInfoServer.cs
index 59815d9..cb334f7 100644
--- a/Wms/WMS.BLL/SysServer/LogisticsInfoServer.cs
+++ b/Wms/WMS.BLL/SysServer/LogisticsInfoServer.cs
@@ -24,7 +24,7 @@
             _operation = operation;
         }
 
-        public List<LogisticsInfoDto> GetLogisticsInfoList(string name, string linkMan, string phone, string licensePlate, string type, int page, int limit, out int count)
+        public async Task<List<LogisticsInfoDto>> GetLogisticsInfoList(string name, string linkMan, string phone, string licensePlate, string type, int page, int limit, RefAsync<int> count)
         {
             try
             {
@@ -36,9 +36,9 @@
                     .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type)
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
-                var data = LogisticsInfoRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
+                var data = await LogisticsInfoRst.GetAllByOrderPage(item, limit, page, out int counts)
                     .Includes(x => x.CreateUserInfo)
-                    .Includes(x => x.UpdateUserInfo).ToList();
+                    .Includes(x => x.UpdateUserInfo).ToListAsync();
                 count = counts;
                 return data.Select(m => new LogisticsInfoDto()
                 {
@@ -64,117 +64,74 @@
             }
         }
 
-        public SysLogisticsInfo GetLogisticsInfo(int id)
+        public async Task<SysLogisticsInfo> GetLogisticsInfo(int id)
         {
-            try
-            {
-                var data = LogisticsInfoRst.GetOneById(id);
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var data = await LogisticsInfoRst.GetOneByIdAsync(id);
+            return data;
         }
 
-        public List<SysLogisticsInfo> GetLogisticsInfoSelect()
+        public async Task<List<SysLogisticsInfo>> GetLogisticsInfoSelect()
         {
-            try
-            {
-                var data = LogisticsInfoRst.GetAllAsync().ToList();
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var data = await LogisticsInfoRst.GetAllAsync();
+            return data;
         }
 
-        public bool AddLogisticsInfo(AddLogisticsInfoVm model, int userId)
+        public async Task<bool> AddLogisticsInfo(AddLogisticsInfoVm model, int userId)
         {
-            try
+            var num = await LogisticsInfoRst.AddAsync(new SysLogisticsInfo()
             {
-
-                var num = LogisticsInfoRst.Add(new SysLogisticsInfo()
-                {
-                    CarrierName = model.CarrierName,
-                    Address = model.Address,
-                    LinkMan = model.LinkMan,
-                    Phone = model.Phone,
-                    BankAccount = model.BankAccount,
-                    CreditRating = model.CreditRating,
-                    LicensePlate = model.LicensePlate,
-                    Type = model.Type,
-                    Demo = model.Demo,
-                    CreateUser = userId
-                });
-                return num > 0;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+                CarrierName = model.CarrierName,
+                Address = model.Address,
+                LinkMan = model.LinkMan,
+                Phone = model.Phone,
+                BankAccount = model.BankAccount,
+                CreditRating = model.CreditRating,
+                LicensePlate = model.LicensePlate,
+                Type = model.Type,
+                Demo = model.Demo,
+                CreateUser = userId
+            });
+            return num > 0;
         }
 
-        public bool EditLogisticsInfo(EditLogisticsInfoVm model, int userId)
+        public async Task<bool> EditLogisticsInfo(EditLogisticsInfoVm model, int userId)
         {
-            try
+            var logistics = await LogisticsInfoRst.GetOneByIdAsync(model.Id);
+            if (logistics == null)
             {
-                var logistics = LogisticsInfoRst.GetOneById(model.Id);
-                if (logistics == null)
-                {
-                    throw new Exception("鏈煡璇㈠埌鐗╂祦淇℃伅");
-                }
+                throw new Exception("鏈煡璇㈠埌鐗╂祦淇℃伅");
+            }
 
-                logistics.CarrierName = model.CarrierName;
-                logistics.Address = model.Address;
-                logistics.LinkMan = model.LinkMan;
-                logistics.Phone = model.Phone;
-                logistics.BankAccount = model.BankAccount;
-                logistics.CreditRating = model.CreditRating;
-                logistics.LicensePlate = model.LicensePlate;
-                logistics.Type = model.Type;
-                logistics.Demo = model.Demo;
-                logistics.UpdateUser = userId;
-                logistics.UpdateTime = DateTime.Now;
-                var num = LogisticsInfoRst.Edit(logistics);
-                return num > 0;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            logistics.CarrierName = model.CarrierName;
+            logistics.Address = model.Address;
+            logistics.LinkMan = model.LinkMan;
+            logistics.Phone = model.Phone;
+            logistics.BankAccount = model.BankAccount;
+            logistics.CreditRating = model.CreditRating;
+            logistics.LicensePlate = model.LicensePlate;
+            logistics.Type = model.Type;
+            logistics.Demo = model.Demo;
+            logistics.UpdateUser = userId;
+            logistics.UpdateTime = DateTime.Now;
+            var num = await LogisticsInfoRst.EditAsync(logistics);
+            return num > 0;
         }
 
-        public bool DelLogisticsInfo(int id, int userId)
+        public async Task<bool> DelLogisticsInfo(int id, int userId)
         {
-            try
-            {
-                var num = LogisticsInfoRst.Remove(id, userId);
-                return num > 0;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var num = await LogisticsInfoRst.RemoveAsync(id, userId);
+            return num > 0;
         }
 
-        public bool DelsLogisticsInfo(List<int> ids, int userId)
+        public async Task<bool> DelsLogisticsInfo(List<int> ids, int userId)
         {
-            try
+            var list = await LogisticsInfoRst.GetAllWhere(m => ids.Contains(m.Id)).ToListAsync();
+            for (int i = 0; i < list.Count; i++)
             {
-                var list = LogisticsInfoRst.GetAllWhereAsync(m => ids.Contains(m.Id)).ToList();
-                for (int i = 0; i < list.Count; i++)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", list[i].CarrierName, "鍒犻櫎", "鍒犻櫎鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + list[i].CarrierName, Convert.ToInt32(userId));
-                }
-                var num = LogisticsInfoRst.RemoveAll(list, userId);
-                return num > 0;
+                await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", list[i].CarrierName, "鍒犻櫎", "鍒犻櫎鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + list[i].CarrierName, Convert.ToInt32(userId));
             }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var num = LogisticsInfoRst.RemoveAll(list, userId);
+            return num > 0;
         }
     }
 }
diff --git a/Wms/WMS.BLL/SysServer/MaterialsServer.cs b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
index 2e80823..6b0d9c7 100644
--- a/Wms/WMS.BLL/SysServer/MaterialsServer.cs
+++ b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
@@ -9,6 +9,7 @@
 using AutoMapper;
 using Model.ModelDto.SysDto;
 using SqlSugar;
+using Utility;
 using WMS.DAL;
 using WMS.Entity.Context;
 using WMS.Entity.SysEntity;
@@ -25,75 +26,20 @@
         public IMaterialsRepository _mate { get; set; }
         private readonly IMapper _mapper;
         private static readonly SqlSugarScope Db = DataContext.Db;
+        private readonly UserManager _userManager;
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="mate">鐗╂枡缂栫爜</param>
         /// <param name="mapper">automapper</param>
-        public MaterialsServer(IMaterialsRepository mate, IMapper mapper) : base(Db)
+        public MaterialsServer(IMaterialsRepository mate, IMapper mapper, UserManager userManager) : base(Db)
         {
             _mate = mate; //鐗╂枡缂栫爜
             _mapper = mapper; //automapper
+            _userManager = userManager;
         }
 
         #region wms
-
-        //public List<MaterialsDto> GetMaterialsList(string skuNo, string skuName, string type, string isInspect, int page, int limit, out int count)
-        //{
-        //    try
-        //    {
-        //        Expression<Func<SysMaterials, bool>> item = Expressionable.Create<SysMaterials>()
-        //            .AndIF(!string.IsNullOrWhiteSpace(skuNo), it => it.SkuNo.Contains(skuNo.Trim()))
-        //            .AndIF(!string.IsNullOrWhiteSpace(skuName), it => it.SkuName.Contains(skuName.Trim()))
-        //            .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type)
-        //            .AndIF(!string.IsNullOrWhiteSpace(isInspect), it => it.IsInspect == isInspect)
-        //            .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-
-        //        var data = _mate.GetAllByOrderPageAsync(item, limit, page, out int counts)
-        //            .Includes(x => x.TypeInfo)
-        //            .Includes(x => x.EnvironmentInfo)
-        //            .Includes(x => x.UnitInfo)
-        //            .Includes(x => x.PackagInfo)
-        //            .Includes(x => x.CreateUserInfo)
-        //            .Includes(x => x.UpdateUserInfo)
-        //            .ToList();
-        //        count = counts;
-
-        //        return data.Select(m => new MaterialsDto()
-        //        {
-        //            Id = m.Id,
-        //            SkuNo = m.SkuNo,
-        //            SkuName = m.SkuName,
-        //            Standard = m.Standard,
-        //            AuditStatusNo = m.AuditStatusNo,
-        //            Type = m.Type,
-        //            TypeName = m.TypeInfo == null ? "" : m.TypeInfo.DictName,
-        //            IsControlled = m.IsControlled,
-        //            IsInspect = m.IsInspect,
-        //            Origin = m.Origin,
-        //            UnitNo = m.UnitNo,
-        //            UnitName = m.UnitInfo == null ? "" : m.UnitInfo.UnitName,
-        //            PackagNo = m.PackagNo,
-        //            PackagName = m.PackagInfo == null ? "" : m.PackagInfo.PackagName,
-        //            Environment = m.Environment,
-        //            EnvironmentName = m.EnvironmentInfo == null ? "" : m.EnvironmentInfo.DictName,
-        //            Weight = m.Weight,
-        //            Warranty = m.Warranty,
-        //            Price = m.Price,
-        //            Demo = m.Demo,
-
-        //            CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.UserName,
-        //            UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.UserName,
-        //            CreateTime = m.CreateTime,
-        //            UpdateTime = m.UpdateTime
-        //        }).ToList();
-        //    }
-        //    catch (Exception e)
-        //    {
-        //        throw new Exception(e.Message);
-        //    }
-        //}
-
 
         /// <summary>
         /// 鑾峰彇鐗╂枡淇℃伅鍒楄〃
@@ -107,10 +53,21 @@
         /// <param name="environment">瀛樺偍鐜</param>
         /// <param name="categoryNo">绫诲埆缂栫爜</param>
         /// <returns></returns>
-        public List<MaterialsDto> GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment, string categoryNo)
+        public Task<List<MaterialsDto>> GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment, string categoryNo)
         {
-            List<MaterialsDto> matedto = _mate.GetMateList(skuNo, skuName, auditStatusNo, type, isControlled, isInspect, environment, categoryNo);
-            return matedto;
+            return Db.Queryable<SysMaterials>()
+                     .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                     .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo))
+                     .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuNo.Contains(skuName))
+                     .WhereIF(!string.IsNullOrEmpty(auditStatusNo), a => a.AuditStatusNo == auditStatusNo)
+                     .WhereIF(!string.IsNullOrEmpty(type), a => a.Type == type)
+                     .WhereIF(!string.IsNullOrEmpty(isControlled), a => a.IsControlled == isControlled)
+                     .WhereIF(!string.IsNullOrEmpty(isInspect), a => a.IsInspect == isInspect)
+                     .WhereIF(!string.IsNullOrEmpty(environment), a => a.Environment == environment)
+                     .WhereIF(!string.IsNullOrEmpty(categoryNo), a => a.CategoryNo == categoryNo)
+                     .Where(a => a.IsDel == "0")
+                     .Select<MaterialsDto>((a, b) => new MaterialsDto() { CreateUserName = b.RealName }, true)
+                     .ToListAsync();
         }
 
         /// <summary>
@@ -118,10 +75,9 @@
         /// </summary>
         /// <param name="id">鐗╂枡id</param>
         /// <returns></returns>
-        public SysMaterials GetMateById(int id)
+        public async Task<SysMaterials> GetMateById(int id)
         {
-            SysMaterials mate = _mate.GetMateById(id);
-            return mate;
+            return await Db.Queryable<SysMaterials>().FirstAsync(s => s.Id == id);
         }
 
         /// <summary>
@@ -129,10 +85,9 @@
         /// </summary>
         /// <param name="SkuNo">鐗╂枡缂栧彿</param>
         /// <returns></returns>
-        public int GetMateByNo(string SkuNo)
+        public async Task<int> GetMateByNo(string SkuNo)
         {
-            List<SysMaterials> mate = _mate.GetMateByNo(SkuNo);
-            return mate.Count;
+            return await Db.Queryable<SysMaterials>().CountAsync(s => s.SkuNo == SkuNo && s.IsDel == "0");
         }
 
         /// <summary>
@@ -143,42 +98,22 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> AddMate(MaterialsDto matedto)
         {
-            //鎹曡幏寮傚父
-            try
-            {
-                int count = GetMateByNo(matedto.SkuNo);
-
-                if (count > 0)
-                {
-                    throw new Exception("绯荤粺涓凡瀛樺湪璇ョ墿鏂�");
-                }
-                if (string.IsNullOrWhiteSpace(matedto.PackagNo))
-                {
-                    throw new Exception("鍖呰淇℃伅涓嶈兘涓虹┖");
-                }
-
-
-                //鏄犲皠妯″瀷
-                SysMaterials mate = _mapper.Map<SysMaterials>(matedto);
-                mate.AuditStatusNo = "9"; //瀹℃牳鐘舵��
-                mate.Type = mate.Type; //绫诲瀷
-                mate.IsControlled = string.IsNullOrWhiteSpace(mate.IsControlled) ? "0" : mate.IsControlled; //鏄惁鍙楁帶
-                mate.IsInspect = string.IsNullOrWhiteSpace(mate.IsInspect) ? "0" : mate.IsInspect; //鏄惁鍏嶆
-                mate.IsPasteCode = string.IsNullOrWhiteSpace(mate.IsPasteCode) ? "0" : mate.IsPasteCode; //鏄惁鍏嶆
-                mate.Origin = "WMS"; //鏉ユ簮
-                mate.IsDel = "0";
-                mate.CreateTime = Db.GetDate();
-                Db.BeginTran();
-                Db.Insertable(mate).ExecuteCommand();
-                Db.CommitTran();
-                return 1;
-            }
-            catch (Exception ex)
-            {
-                Db.RollbackTran();
-                //鎶涘嚭寮傚父
-                throw new Exception(ex.Message);
-            }
+            if (string.IsNullOrWhiteSpace(matedto.PackagNo))
+                throw Oops.Bah("鍖呰淇℃伅涓嶈兘涓虹┖");
+            if (await GetMateByNo(matedto.SkuNo) > 0)
+                throw Oops.Bah("绯荤粺涓凡瀛樺湪璇ョ墿鏂�");
+            //鏄犲皠妯″瀷
+            SysMaterials mate = _mapper.Map<SysMaterials>(matedto);
+            mate.AuditStatusNo = "9"; //瀹℃牳鐘舵��
+            mate.Type = mate.Type; //绫诲瀷
+            mate.IsControlled = string.IsNullOrWhiteSpace(mate.IsControlled) ? "0" : mate.IsControlled; //鏄惁鍙楁帶
+            mate.IsInspect = string.IsNullOrWhiteSpace(mate.IsInspect) ? "0" : mate.IsInspect; //鏄惁鍏嶆
+            mate.IsPasteCode = string.IsNullOrWhiteSpace(mate.IsPasteCode) ? "0" : mate.IsPasteCode; //鏄惁鍏嶆
+            mate.Origin = "WMS"; //鏉ユ簮
+            mate.IsDel = "0";
+            mate.CreateTime = DateTime.Now;
+            mate.CreateUser = _userManager.UserId;
+            return await Db.Insertable(mate).ExecuteCommandAsync();
         }
 
         /// <summary>
@@ -189,18 +124,12 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> DelMate(SysMaterials mate)
         {
-            //鎹曡幏寮傚父
-            try
-            {
-                //鍒犻櫎
-                int i = await _mate.DelMate(mate);
-                return i;
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鍒犻櫎鐗╂枡寮傚父", ex);
-            }
+            return await Db.Updateable<SysMaterials>()
+                           .Where(s => s.Id == mate.Id)
+                           .SetColumns(s => s.IsDel == "1")
+                           .SetColumns(s => s.UpdateTime == DateTime.Now)
+                           .SetColumns(s => s.UpdateUser == _userManager.UserId)
+                           .ExecuteCommandAsync();
         }
 
         /// <summary>
@@ -211,43 +140,27 @@
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         public async Task<int> ExitMate(MaterialsDto matedto)
         {
-            //鎹曡幏寮傚父
-            try
+            if (matedto.AdventTime > 365 && matedto.AdventTime < 30)
             {
-                if (matedto.AdventTime > 365 && matedto.AdventTime < 30)
-                {
-                    return 2;
-                }
-                else if (string.IsNullOrWhiteSpace(matedto.PackagNo))
-                {
-                    throw new Exception("鍖呰涓嶈兘涓虹┖");
-                }
-                //else if (matedto.LowInventory > 1000)
-                //{
-                //    return 4;
-                //}
-                else
-                {
-                    //鏄犲皠妯″瀷
-                    SysMaterials mate = _mapper.Map<SysMaterials>(matedto);
-                    //缂栬緫
-                    //鏍规嵁id鑾峰彇鐗╂枡淇℃伅
-                    var list = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.Id == mate.Id);
-                    //mate.CategoryNo = list.CategoryNo;
-                    mate.Origin = list.Origin;
-                    mate.CreateUser = list.CreateUser;
-                    mate.UpdateTime = Db.GetDate();
-                    mate.CreateTime = list.CreateTime;
-
-                    int i = Db.Updateable(mate).ExecuteCommand();
-                    return i;
-                }
+                throw Oops.Bah("涓存湡澶╂暟涓嶅彲澶т簬365鍙婂皬浜�30");
             }
-            catch (Exception ex)
+            else if (string.IsNullOrWhiteSpace(matedto.PackagNo))
             {
-                //鎶涘嚭寮傚父
-                throw new Exception(ex.Message);
+                throw Oops.Bah("鍖呰涓嶈兘涓虹┖");
             }
+            //鏄犲皠妯″瀷
+            SysMaterials mate = _mapper.Map<SysMaterials>(matedto);
+            //缂栬緫
+            //鏍规嵁id鑾峰彇鐗╂枡淇℃伅
+            var modMaterial = await Db.Queryable<SysMaterials>().FirstAsync(a => a.IsDel == "0" && a.Id == mate.Id);
+            //mate.CategoryNo = list.CategoryNo;
+            mate.Origin = modMaterial.Origin;
+            mate.CreateUser = modMaterial.CreateUser;
+            mate.UpdateTime = DateTime.Now;
+            mate.UpdateUser = _userManager.UserId;
+            mate.CreateTime = modMaterial.CreateTime;
+            int i = Db.Updateable(mate).ExecuteCommand();
+            return i;
         }
 
         #region 鍖呰 鍗曚綅
@@ -256,20 +169,18 @@
         /// 鑾峰彇璁¢噺鍗曚綅淇℃伅鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public List<SysUnit> GetUnitList()
+        public async Task<List<SysUnit>> GetUnitList()
         {
-            List<SysUnit> unitlist = _mate.GetUnitList();
-            return unitlist;
+            return await Db.Queryable<SysUnit>().Where(s => s.IsDel == "0").ToListAsync();
         }
 
         /// <summary>
         /// 鑾峰彇鍖呰淇℃伅鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public List<SysPackag> GetPackagList()
+        public async Task<List<SysPackag>> GetPackagList()
         {
-            List<SysPackag> packlist = _mate.GetPackagList();
-            return packlist;
+            return await Db.Queryable<SysPackag>().Where(s => s.IsDel == "0").ToListAsync();
         }
 
         #endregion
diff --git a/Wms/WMS.BLL/SysServer/MenuServer.cs b/Wms/WMS.BLL/SysServer/MenuServer.cs
index 6c4dfa5..90a7cd3 100644
--- a/Wms/WMS.BLL/SysServer/MenuServer.cs
+++ b/Wms/WMS.BLL/SysServer/MenuServer.cs
@@ -19,7 +19,7 @@
     /// <summary>
     /// 鑿滃崟鏈嶅姟瀹炶返
     /// </summary>
-    public class MenuServer : DbHelper<SysFunctionMenu>,IMenuServer
+    public class MenuServer : DbHelper<SysFunctionMenu>, IMenuServer
     {
         private static readonly SqlSugarScope Db = DataContext.Db;
 
@@ -45,10 +45,13 @@
         /// </summary>
         /// <param name="menuDto">鑿滃崟Dto</param>
         /// <returns></returns>
-        public List<FunctionMenuVm> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level = "")
+        public async Task<List<FunctionMenuVm>> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level = "")
         {
-            string str = "select menu1.Id,menu1.MenuNo,menu1.MenuName,menu2.MenuName ParentName,menu1.ParentNo,menu1.Ord,menu1.Url,menu1.level,menu1.IsEnable,menu1.Demo,menu1.IsDel,menu1.CreateTime,menu1.CreateUser,menu1.UpdateTime,menu1.UpdateUser,user1.RealName CreateUserName from SysFunctionMenu menu1 left join sysfunctionmenu menu2 on menu1.parentNo = menu2.MenuNo join SysUserInfor user1 on menu1.CreateUser = user1.id  where menu1.IsDel = '0' and menu1.IsEnable = '0' ";
-
+            //string str = "select menu1.Id,menu1.MenuNo,menu1.MenuName,menu2.MenuName ParentName,menu1.ParentNo,menu1.Ord,menu1.Url,menu1.level,menu1.IsEnable,menu1.Demo,menu1.IsDel,menu1.CreateTime,menu1.CreateUser,menu1.UpdateTime,menu1.UpdateUser,user1.RealName CreateUserName from SysFunctionMenu menu1 left join sysfunctionmenu menu2 on menu1.parentNo = menu2.MenuNo join SysUserInfor user1 on menu1.CreateUser = user1.id  where menu1.IsDel = '0' and menu1.IsEnable = '0' ";
+            var queryAble = Db.Queryable<SysFunctionMenu>()
+                .LeftJoin<SysFunctionMenu>((a, b) => a.ParentNo == b.MenuNo)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id);
+            var exp = Expressionable.Create<SysFunctionMenu, SysFunctionMenu, SysUserInfor>();
             //鍒ゆ柇椤甸潰鑿滃崟
             if (!string.IsNullOrEmpty(MenuNo))
             {
@@ -59,28 +62,33 @@
                     if (level == "1")
                     {
                         //椤甸潰
-                        str += $" and menu1.MenuNo = '{MenuNo}'";
+                        exp.And((a, b, c) => a.MenuNo == MenuNo);
+                        //str += $" and menu1.MenuNo = '{MenuNo}'";
                     }
                     if (level == "2")
                     {
                         //鎸夐挳
-                        str += $" and menu1.ParentNo = '{MenuNo}'";
+                        exp.And((a, b, c) => a.ParentNo == MenuNo);
+                        //str += $" and menu1.ParentNo = '{MenuNo}'";
                     }
                     if (level == "0")
                     {
                         //妯″潡
-                        str += $" and menu1.ParentNo = '{MenuNo}'";
+                        exp.And((a, b, c) => a.ParentNo == MenuNo);
+                        //str += $" and menu1.ParentNo = '{MenuNo}'";
                     }
                 }
                 else
                 {
                     if (!string.IsNullOrEmpty(MenuName))
                     {
-                        str += $" and menu1.ParentNo = '{MenuNo}'";
+                        exp.And((a, b, c) => a.ParentNo == MenuNo);
+                        //str += $" and menu1.ParentNo = '{MenuNo}'";
                     }
                     else
                     {
-                        str += $" and (menu1.ParentNo = '{MenuNo}' or menu1.MenuNo = '{MenuNo}')";
+                        exp.And((a, b, c) => a.ParentNo == MenuNo || a.MenuNo == MenuNo);
+                        //str += $" and (menu1.ParentNo = '{MenuNo}' or menu1.MenuNo = '{MenuNo}')";
 
                     }
                 }
@@ -95,17 +103,20 @@
                     if (level == "1")
                     {
                         //椤甸潰
-                        str += $" and menu1.ParentNo = '{pMenuNo}'";
+                        exp.And((a, b, c) => a.ParentNo == pMenuNo);
+                        //str += $" and menu1.ParentNo = '{pMenuNo}'";
                     }
                     if (level == "2")
                     {
                         //鎸夐挳
-                        str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
+                        exp.And((a, b, c) => SqlFunc.Subqueryable<SysFunctionMenu>().Where(d => d.ParentNo == pMenuNo && a.ParentNo == d.MenuNo).Any());
+                        //str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
                     }
                     if (level == "0")
                     {
                         //妯″潡
-                        str += $" and menu1.MenuNo= '{pMenuNo}'";
+                        exp.And((a, b, c) => a.MenuNo == pMenuNo);
+                        //str += $" and menu1.MenuNo= '{pMenuNo}'";
                     }
                 }
                 else
@@ -113,32 +124,51 @@
                     //鍒ゆ柇鑿滃崟鍚嶇О鏄惁涓虹┖
                     if (!string.IsNullOrEmpty(MenuName) && string.IsNullOrEmpty(MenuNo))
                     {
-                        str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
+                        queryAble.Where(a => SqlFunc.Subqueryable<SysFunctionMenu>().Where(d => d.ParentNo == pMenuNo && a.ParentNo == d.MenuNo).Any());
+                        //str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
                     }
                     else
                     {
-                        str += $" and  ( menu1.ParentNo = '{pMenuNo}' or menu1.MenuNo = '{pMenuNo}' or menu1.ParentNo in (select MenuNo from SysFunctionmenu where ParentNo = {pMenuNo}) )";
+                        exp.And((a, b, c) => a.ParentNo == pMenuNo || a.MenuNo == pMenuNo || SqlFunc.Subqueryable<SysFunctionMenu>().Where(d => d.ParentNo == pMenuNo && a.ParentNo == d.MenuNo).Any());
+                        //str += $" and  ( menu1.ParentNo = '{pMenuNo}' or menu1.MenuNo = '{pMenuNo}' or menu1.ParentNo in (select MenuNo from SysFunctionmenu where ParentNo = {pMenuNo}) )";
                     }
                 }
             }
             //鍒ゆ柇鑿滃崟鍚嶇О涓庣紪鍙锋槸鍚︿负绌�
             if (!string.IsNullOrEmpty(MenuName))
             {
-                str += $" and menu1.MenuName like '%{MenuName}%'";
+                exp.And((a, b, c) => a.MenuName.Contains(MenuName));
+                //str += $" and menu1.MenuName like '%{MenuName}%'";
                 //鍒ゆ柇鐖剁骇鑿滃崟鏄惁涓虹┖
                 if (!string.IsNullOrEmpty(pMenuNo) && string.IsNullOrEmpty(MenuNo))
                 {
-                    str += $" or menu1.MenuNo in (select MenuNo from SysFunctionMenu where ( ParentNo = '{pMenuNo}' or MenuNo='{pMenuNo}' ) and MenuName like '%{MenuName}%')";
+                    exp.Or((a, b, c) => SqlFunc.Subqueryable<SysFunctionMenu>().Where(e => (e.ParentNo == pMenuNo || e.MenuNo == pMenuNo && MenuName.Contains(MenuName)) && e.MenuNo == a.MenuNo).Any());
+                    //str += $" or menu1.MenuNo in (select MenuNo from SysFunctionMenu where ( ParentNo = '{pMenuNo}' or MenuNo='{pMenuNo}' ) and MenuName like '%{MenuName}%')";
                 }
             }
             //鍒ゆ柇鑿滃崟灞傜骇
             if (!string.IsNullOrEmpty(level))
             {
-                str += $" and menu1.Level = '{level}'";
+                exp.And((a, b, c) => a.Level == level);
+                //str += $" and menu1.Level = '{level}'";
             }
-            str += " order by menu1.MenuNo,menu1.Ord";
-            List<FunctionMenuVm> menulist = _menu.GetMenuList(str);
-            return menulist;
+            return await queryAble.Where(exp.ToExpression()).OrderBy((a, b, c) => a.MenuNo).OrderBy((a, b, c) => a.Ord)
+                .Select<FunctionMenuVm>((a, b, c) => new FunctionMenuVm()
+                {
+                    Id = a.Id,
+                    MenuNo = a.MenuNo,
+                    MenuName = a.MenuName,
+                    ParentNo = a.ParentNo,
+                    ParentName = b.MenuName,
+                    Ord = a.Ord,
+                    Url = a.Url,
+                    Level = a.Level,
+                    IsEnable = a.IsEnable,
+                    Demo = a.Demo,
+                    CreateTime = a.CreateTime,
+                    CreateUser = a.CreateUser,
+                    CreateUserName = c.RealName,
+                }, true).ToListAsync();
         }
 
         /// <summary>
diff --git a/Wms/WMS.BLL/SysServer/PackagServer.cs b/Wms/WMS.BLL/SysServer/PackagServer.cs
index 394029a..d6ca134 100644
--- a/Wms/WMS.BLL/SysServer/PackagServer.cs
+++ b/Wms/WMS.BLL/SysServer/PackagServer.cs
@@ -9,6 +9,8 @@
 using WMS.IBLL.ISysServer;
 using WMS.IDAL.ISysInterface;
 using Model.ModelVm.SysVm;
+using System.Threading.Tasks;
+using Utility;
 
 namespace WMS.BLL.SysServer
 {
@@ -29,7 +31,7 @@
         /// <param name="packagName">鍖呰鍚嶇О</param>
         /// <param name="level">绛夌骇</param>
         /// <returns>鍖呰闆嗗悎</returns>
-        public List<PackagDto> GetPackagList(string packagNo, string packagName, int? level, int page, int limit, out int count)
+        public async Task<List<PackagDto>> GetPackagList(string packagNo, string packagName, int? level, int page, int limit, RefAsync<int> count)
         {
             try
             {
@@ -39,9 +41,9 @@
                     .AndIF(level != null, it => it.Level.Equals(level))
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
-                var data = PackagRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
+                var data = await PackagRst.GetAllByOrderPage(item, limit, page, out int counts)
                     .Includes(x => x.CreateUserInfo)
-                    .Includes(x => x.UpdateUserInfo).ToList();
+                    .Includes(x => x.UpdateUserInfo).ToListAsync();
                 count = counts;
 
                 return data.Select(m => new PackagDto()
@@ -83,10 +85,9 @@
         /// </summary>
         /// <param name="id">鍖呰id</param>
         /// <returns></returns>
-        public SysPackag GetPackagById(int id)
+        public async Task<SysPackag> GetPackagById(int id)
         {
-            SysPackag packag = PackagRst.GetOneById(id);
-            return packag;
+            return await PackagRst.GetOneByIdAsync(id);
         }
 
         /// <summary>
@@ -94,101 +95,88 @@
         /// </summary>
         /// <param name="model">鍖呰淇℃伅</param>
         /// <returns>true锛氭垚鍔�  flase锛氬け璐�</returns>
-        public int AddPackag(AddEditPackagVm model)
+        public async Task<int> AddPackag(AddEditPackagVm model)
         {
-            try
+            var rowCount = await PackagRst.GetAllWhere(m => m.PackagNo == model.PackagNo).CountAsync();
+            if (rowCount > 0)
             {
-                var rowCount = PackagRst.GetAllWhereAsync(m => m.PackagNo == model.PackagNo).Count();
-                if (rowCount > 0)
-                {
-                    throw new Exception("鍖呰缂栧彿宸插瓨鍦�!");
-                }
+                throw Oops.Bah("鍖呰缂栧彿宸插瓨鍦�!");
+            }
 
-                rowCount = PackagRst.GetAllWhereAsync(m => m.PackagName == model.PackagName).Count();
-                if (rowCount > 0)
-                {
-                    throw new Exception("鍖呰鍚嶇О宸插瓨鍦�!");
-                }
+            rowCount = await PackagRst.GetAllWhere(m => m.PackagName == model.PackagName).CountAsync();
+            if (rowCount > 0)
+            {
+                throw Oops.Bah("鍖呰鍚嶇О宸插瓨鍦�!");
+            }
 
-                SysPackag packagModel = new SysPackag();
-                packagModel.PackagNo = model.PackagNo;
-                packagModel.PackagName = model.PackagName;
-                packagModel.Level = 0;
+            SysPackag packagModel = new SysPackag();
+            packagModel.PackagNo = model.PackagNo;
+            packagModel.PackagName = model.PackagName;
+            packagModel.Level = 0;
 
-                //鍒ゆ柇浜旂骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L5Num) && !string.IsNullOrEmpty(model.L5Name))
-                {
-                    packagModel.L5Num = int.Parse(model.L5Num);
-                    packagModel.L5Name = model.L5Name;
-                    packagModel.Level += 1;
-                    //鍒ゆ柇鍥涚骇鍖呰鏄惁涓虹┖
-                    if (string.IsNullOrEmpty(model.L4Num) && string.IsNullOrEmpty(model.L4Name))
-                    {
-                        return 2;
-                    }
-                }
+            //鍒ゆ柇浜旂骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L5Num) && !string.IsNullOrEmpty(model.L5Name))
+            {
+                packagModel.L5Num = int.Parse(model.L5Num);
+                packagModel.L5Name = model.L5Name;
+                packagModel.Level += 1;
                 //鍒ゆ柇鍥涚骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L4Num) && !string.IsNullOrEmpty(model.L4Name))
+                if (string.IsNullOrEmpty(model.L4Num) && string.IsNullOrEmpty(model.L4Name))
                 {
-                    packagModel.L4Num = int.Parse(model.L4Num);
-                    packagModel.L4Name = model.L4Name;
-                    packagModel.Level += 1;
-                    //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
-                    if (string.IsNullOrEmpty(model.L3Num) && string.IsNullOrEmpty(model.L3Name))
-                    {
-                        return 2;
-                    }
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇娣诲姞!");
                 }
-                //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L3Num) && !string.IsNullOrEmpty(model.L3Name))
-                {
-                    packagModel.L3Num = int.Parse(model.L3Num);
-                    packagModel.L3Name = model.L3Name;
-                    packagModel.Level += 1;
-                    //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
-                    if (string.IsNullOrEmpty(model.L2Num) && string.IsNullOrEmpty(model.L2Name))
-                    {
-                        return 2;
-                    }
-                }
-                //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L2Num) && !string.IsNullOrEmpty(model.L2Name))
-                {
-                    packagModel.L2Num = int.Parse(model.L2Num);
-                    packagModel.L2Name = model.L2Name;
-                    packagModel.Level += 1;
-                    //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
-                    if (string.IsNullOrEmpty(model.L1Num) && string.IsNullOrEmpty(model.L1Name))
-                    {
-                        return 2;
-                    }
-                }
-                //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
-                if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
-                {
-                    packagModel.L1Num = int.Parse(model.L1Num);
-                    packagModel.L1Name = model.L1Name;
-                    packagModel.Level += 1;
-                }
-                else
-                {
-                    return 2;
-                }
-
-                packagModel.CreateUser = (int)model.CreateUser;
-
-                int rowNum = PackagRst.Add(packagModel);
-                if (rowNum > 0)
-                {
-                    return 1;
-                }
-
-                return 0;
             }
-            catch (Exception e)
+            //鍒ゆ柇鍥涚骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L4Num) && !string.IsNullOrEmpty(model.L4Name))
             {
-                throw new Exception(e.Message);
+                packagModel.L4Num = int.Parse(model.L4Num);
+                packagModel.L4Name = model.L4Name;
+                packagModel.Level += 1;
+                //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
+                if (string.IsNullOrEmpty(model.L3Num) && string.IsNullOrEmpty(model.L3Name))
+                {
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇娣诲姞!");
+                }
             }
+            //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L3Num) && !string.IsNullOrEmpty(model.L3Name))
+            {
+                packagModel.L3Num = int.Parse(model.L3Num);
+                packagModel.L3Name = model.L3Name;
+                packagModel.Level += 1;
+                //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
+                if (string.IsNullOrEmpty(model.L2Num) && string.IsNullOrEmpty(model.L2Name))
+                {
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇娣诲姞!");
+                }
+            }
+            //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L2Num) && !string.IsNullOrEmpty(model.L2Name))
+            {
+                packagModel.L2Num = int.Parse(model.L2Num);
+                packagModel.L2Name = model.L2Name;
+                packagModel.Level += 1;
+                //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
+                if (string.IsNullOrEmpty(model.L1Num) && string.IsNullOrEmpty(model.L1Name))
+                {
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇娣诲姞!");
+                }
+            }
+            //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
+            if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
+            {
+                packagModel.L1Num = int.Parse(model.L1Num);
+                packagModel.L1Name = model.L1Name;
+                packagModel.Level += 1;
+            }
+            else
+            {
+                throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇娣诲姞!");
+            }
+
+            packagModel.CreateUser = (int)model.CreateUser;
+
+            return await PackagRst.AddAsync(packagModel);
         }
 
         /// <summary>
@@ -196,117 +184,109 @@
         /// </summary>
         /// <param name="model">鍖呰淇℃伅</param>
         /// <returns>true锛氭垚鍔�  flase锛氬け璐�</returns>
-        public int EditPackag(AddEditPackagVm model)
+        public async Task<int> EditPackag(AddEditPackagVm model)
         {
-            try
+            if (string.IsNullOrEmpty(model.PackagName))
             {
-                if (string.IsNullOrEmpty(model.PackagName))
+                var date = await PackagRst.GetAllWhere(m => m.Id != model.Id && (m.PackagName == model.PackagName)).CountAsync();
+                if (date > 0)
                 {
-                    var date = PackagRst.GetAllWhereAsync(m => m.Id != model.Id && (m.PackagName == model.PackagName)).Count();
-                    if (date > 0)
-                    {
-                        throw new Exception("鍖呰鍚嶇О宸插瓨鍦�!");
-                    }
+                    throw Oops.Bah("鍖呰鍚嶇О宸插瓨鍦�!");
                 }
-                var packagItems = PackagRst.GetOneById(model.Id);
-                packagItems.Id = model.Id; //id
-                packagItems.PackagNo = model.PackagNo; //鍖呰缂栧彿
-                packagItems.PackagName = model.PackagName; //鍖呰鎻忚堪
-                //packagItems.IsDel = model.IsDel; 鍘熷洜: 淇敼鏃朵笉闇�瑕佷慨鏀笽sDel瀛楁
-                packagItems.UpdateTime = DateTime.Now; //淇敼鏃堕棿
-                packagItems.UpdateUser = model.CreateUser; //淇敼浜�
-                packagItems.Level = 0;
+            }
+            var packagItems = PackagRst.GetOneById(model.Id);
+            packagItems.Id = model.Id; //id
+            packagItems.PackagNo = model.PackagNo; //鍖呰缂栧彿
+            packagItems.PackagName = model.PackagName; //鍖呰鎻忚堪
+                                                       //packagItems.IsDel = model.IsDel; 鍘熷洜: 淇敼鏃朵笉闇�瑕佷慨鏀笽sDel瀛楁
+            packagItems.UpdateTime = DateTime.Now; //淇敼鏃堕棿
+            packagItems.UpdateUser = model.CreateUser; //淇敼浜�
+            packagItems.Level = 0;
 
-                //鍒ゆ柇浜旂骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L5Num) && !string.IsNullOrEmpty(model.L5Name))
-                {
-                    packagItems.L5Num = int.Parse(model.L5Num);
-                    packagItems.L5Name = model.L5Name;
-                    packagItems.Level += 1;
-                    //鍒ゆ柇鍥涚骇鍖呰鏄惁涓虹┖
-                    if (string.IsNullOrEmpty(model.L4Num) && string.IsNullOrEmpty(model.L4Name))
-                    {
-                        return 2;
-                    }
-                }
-                else
-                {
-                    packagItems.L5Num = null;
-                    packagItems.L5Name = null;
-                }
+            //鍒ゆ柇浜旂骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L5Num) && !string.IsNullOrEmpty(model.L5Name))
+            {
+                packagItems.L5Num = int.Parse(model.L5Num);
+                packagItems.L5Name = model.L5Name;
+                packagItems.Level += 1;
                 //鍒ゆ柇鍥涚骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L4Num) && !string.IsNullOrEmpty(model.L4Name))
+                if (string.IsNullOrEmpty(model.L4Num) && string.IsNullOrEmpty(model.L4Name))
                 {
-                    packagItems.L4Num = int.Parse(model.L4Num);
-                    packagItems.L4Name = model.L4Name;
-                    packagItems.Level += 1;
-                    //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
-                    if (string.IsNullOrEmpty(model.L3Num) && string.IsNullOrEmpty(model.L3Name))
-                    {
-                        return 2;
-                    }
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇淇敼 璇烽噸鏂拌緭鍏�");
                 }
-                else
-                {
-                    packagItems.L4Num = null;
-                    packagItems.L4Name = null;
-                }
-                //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L3Num) && !string.IsNullOrEmpty(model.L3Name))
-                {
-                    packagItems.L3Num = int.Parse(model.L3Num);
-                    packagItems.L3Name = model.L3Name;
-                    packagItems.Level += 1;
-                    //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
-                    if (string.IsNullOrEmpty(model.L2Num) && string.IsNullOrEmpty(model.L2Name))
-                    {
-                        return 2;
-                    }
-                }
-                else
-                {
-                    packagItems.L3Num = null;
-                    packagItems.L3Name = null;
-                }
-                //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
-                if (!string.IsNullOrEmpty(model.L2Num) && !string.IsNullOrEmpty(model.L2Name))
-                {
-                    packagItems.L2Num = int.Parse(model.L2Num);
-                    packagItems.L2Name = model.L2Name;
-                    packagItems.Level += 1;
-                    //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
-                    if (string.IsNullOrEmpty(model.L1Num) && string.IsNullOrEmpty(model.L1Name))
-                    {
-                        return 2;
-                    }
-                }
-                else
-                {
-                    packagItems.L3Num = null;
-                    packagItems.L3Name = null;
-                }
-                //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
-                if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
-                {
-                    packagItems.L1Num = int.Parse(model.L1Num);
-                    packagItems.L1Name = model.L1Name;
-                    packagItems.Level += 1;
-                }
-                else
-                {
-                    packagItems.L1Num = null;
-                    packagItems.L1Name = null;
-
-                    return 2;
-                }
-
-                var rowCount = PackagRst.Edit(packagItems);
-                return rowCount;
             }
-            catch (Exception e)
+            else
             {
-                throw new Exception(e.Message);
+                packagItems.L5Num = null;
+                packagItems.L5Name = null;
             }
+            //鍒ゆ柇鍥涚骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L4Num) && !string.IsNullOrEmpty(model.L4Name))
+            {
+                packagItems.L4Num = int.Parse(model.L4Num);
+                packagItems.L4Name = model.L4Name;
+                packagItems.Level += 1;
+                //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
+                if (string.IsNullOrEmpty(model.L3Num) && string.IsNullOrEmpty(model.L3Name))
+                {
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇淇敼 璇烽噸鏂拌緭鍏�");
+                }
+            }
+            else
+            {
+                packagItems.L4Num = null;
+                packagItems.L4Name = null;
+            }
+            //鍒ゆ柇涓夌骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L3Num) && !string.IsNullOrEmpty(model.L3Name))
+            {
+                packagItems.L3Num = int.Parse(model.L3Num);
+                packagItems.L3Name = model.L3Name;
+                packagItems.Level += 1;
+                //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
+                if (string.IsNullOrEmpty(model.L2Num) && string.IsNullOrEmpty(model.L2Name))
+                {
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇淇敼 璇烽噸鏂拌緭鍏�");
+                }
+            }
+            else
+            {
+                packagItems.L3Num = null;
+                packagItems.L3Name = null;
+            }
+            //鍒ゆ柇浜岀骇鍖呰鏄惁涓虹┖
+            if (!string.IsNullOrEmpty(model.L2Num) && !string.IsNullOrEmpty(model.L2Name))
+            {
+                packagItems.L2Num = int.Parse(model.L2Num);
+                packagItems.L2Name = model.L2Name;
+                packagItems.Level += 1;
+                //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
+                if (string.IsNullOrEmpty(model.L1Num) && string.IsNullOrEmpty(model.L1Name))
+                {
+                    throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇淇敼 璇烽噸鏂拌緭鍏�");
+                }
+            }
+            else
+            {
+                packagItems.L3Num = null;
+                packagItems.L3Name = null;
+            }
+            //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
+            if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
+            {
+                packagItems.L1Num = int.Parse(model.L1Num);
+                packagItems.L1Name = model.L1Name;
+                packagItems.Level += 1;
+            }
+            else
+            {
+                packagItems.L1Num = null;
+                packagItems.L1Name = null;
+
+                throw Oops.Bah("鍖呰绛夌骇涓嶅彲瓒婄骇淇敼 璇烽噸鏂拌緭鍏�");
+            }
+
+            return await PackagRst.EditAsync(packagItems);
         }
 
         /// <summary>
@@ -314,27 +294,19 @@
         /// </summary>
         /// <param name="packagId">鍖呰淇℃伅涓婚敭ID</param>
         /// <returns>true锛氭垚鍔�  flase锛氬け璐�</returns>
-        public bool DelPackag(int packagId, int userId)
+        public async Task<bool> DelPackag(int packagId, int userId)
         {
-            try
+            var packagItems = await PackagRst.GetOneByIdAsync(packagId);
+            if (packagItems == null)
             {
-                var packagItems = PackagRst.GetOneById(packagId);
-                if (packagItems == null)
-                {
-                    throw new Exception("鍖呰淇℃伅涓嶅瓨鍦紒");
-                }
-
-                packagItems.IsDel = "1";
-                packagItems.UpdateTime = DateTime.Now;
-                packagItems.UpdateUser = userId;
-
-                var rowCount = PackagRst.Edit(packagItems);
-                return rowCount > 0;
+                throw Oops.Bah("鍖呰淇℃伅涓嶅瓨鍦紒");
             }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+
+            packagItems.IsDel = "1";
+            packagItems.UpdateTime = DateTime.Now;
+            packagItems.UpdateUser = userId;
+
+            return await PackagRst.EditAsync(packagItems) > 0;
         }
     }
 }
diff --git a/Wms/WMS.BLL/SysServer/PalletsServer.cs b/Wms/WMS.BLL/SysServer/PalletsServer.cs
index adbdd82..8a7c445 100644
--- a/Wms/WMS.BLL/SysServer/PalletsServer.cs
+++ b/Wms/WMS.BLL/SysServer/PalletsServer.cs
@@ -46,7 +46,7 @@
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
 
-                var data = PalletsRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
+                var data = PalletsRst.GetAllByOrderPage(item, limit, page, out int counts)
                     .Includes(x => x.CreateUserInfo)
                     .ToList();
                 count = counts;
@@ -77,12 +77,12 @@
 
                 if (!string.IsNullOrWhiteSpace(palletNo))
                 {
-                    var code = PalletsRst.GetAllWhereAsync(m => m.PalletNo == palletNo).First();
+                    var code = PalletsRst.GetAllWhere(m => m.PalletNo == palletNo).First();
                     return code.PalletNo;
                 }
                 else
                 {
-                    var code = PalletsRst.GetAllAsync().OrderByDescending(m => m.PalletNo).First();
+                    var code = PalletsRst.GetAll().OrderByDescending(m => m.PalletNo).First();
 
                     if (code != null)
                     {
diff --git a/Wms/WMS.BLL/SysServer/RoleRightServer.cs b/Wms/WMS.BLL/SysServer/RoleRightServer.cs
index 8579b02..c177d6b 100644
--- a/Wms/WMS.BLL/SysServer/RoleRightServer.cs
+++ b/Wms/WMS.BLL/SysServer/RoleRightServer.cs
@@ -57,6 +57,7 @@
                             .LeftJoin<SysRoles>((a, b, c) => a.RoleNo == c.RoleNo)
                             .Where((a, b, c) => a.IsDel == "0" && b.IsDel == "0" && c.IsDel == "0")
                             .Where((a, b, c) => a.RoleNo == modUser.RoleNo)
+                            .OrderBy((a, b, c) => b.Ord)
                             .Select<RoleRightDto>()
                             .ToListAsync();
         }
diff --git a/Wms/WMS.BLL/SysServer/StorageAreaServer.cs b/Wms/WMS.BLL/SysServer/StorageAreaServer.cs
index 1dc557a..d81dd61 100644
--- a/Wms/WMS.BLL/SysServer/StorageAreaServer.cs
+++ b/Wms/WMS.BLL/SysServer/StorageAreaServer.cs
@@ -49,7 +49,7 @@
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
 
-                var data = AreaRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
+                var data = AreaRst.GetAllByOrderPage(item, limit, page, out int counts)
                     .Includes(x => x.WareHouseInfo)
                     .Includes(x => x.TemperatureInfo)
                     .Includes(x => x.CreateUserInfo)
@@ -125,7 +125,7 @@
         {
             try
             {
-                var data = AreaRst.GetAllAsync().ToList();
+                var data = AreaRst.GetAll().ToList();
                 if (!string.IsNullOrWhiteSpace(wareHouseNo))
                 {
                     data = data.Where(m => m.WareHouseNo == wareHouseNo).ToList();
@@ -225,7 +225,7 @@
             try
             {
                 //鍒ゆ柇闄ゅ綋鍓峣d淇℃伅浠ュ鏄惁鍚湁缂栧彿鍜屽悕绉�
-                var bol = AreaRst.GetAllAsync()
+                var bol = AreaRst.GetAll()
                     .Any(m => m.Id != id && m.AreaName == name.Trim());
                 if (bol)
                 {
diff --git a/Wms/WMS.BLL/SysServer/StorageLocatServer.cs b/Wms/WMS.BLL/SysServer/StorageLocatServer.cs
index bdff30e..f3ffb62 100644
--- a/Wms/WMS.BLL/SysServer/StorageLocatServer.cs
+++ b/Wms/WMS.BLL/SysServer/StorageLocatServer.cs
@@ -59,7 +59,7 @@
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
 
-                var data = LocatRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
+                var data = LocatRst.GetAllByOrderPage(item, limit, page, out int counts)
                     .Includes(x => x.WareHouseInfo)
                     .Includes(x => x.AreaInfo)
                     .Includes(x => x.RoadwayInfo)
diff --git a/Wms/WMS.BLL/SysServer/StorageRoadwayServer.cs b/Wms/WMS.BLL/SysServer/StorageRoadwayServer.cs
index 323cb58..e05062c 100644
--- a/Wms/WMS.BLL/SysServer/StorageRoadwayServer.cs
+++ b/Wms/WMS.BLL/SysServer/StorageRoadwayServer.cs
@@ -42,7 +42,7 @@
                    .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type)
                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
-                var data = RoadwayRst.GetAllByOrderPageAsync(item, limit, page,out int counts)
+                var data = RoadwayRst.GetAllByOrderPage(item, limit, page,out int counts)
                     .Includes(x => x.WareHouseInfo)
                     .Includes(x => x.TemperatureInfo)
                     .Includes(x => x.CreateUserInfo)
@@ -99,7 +99,7 @@
         {
             try
             {
-                var data = RoadwayRst.GetAllAsync().ToList();
+                var data = RoadwayRst.GetAll().ToList();
                 if (!string.IsNullOrWhiteSpace(wareHouseNo))
                 {
                     data = data.Where(m => m.WareHouseNo == wareHouseNo).ToList();
@@ -137,7 +137,7 @@
                     throw new Exception("涓烘煡璇㈠埌褰撳墠宸烽亾淇℃伅");
                 }
                 //鍒ゆ柇闄ゅ綋鍓峣d淇℃伅浠ュ鏄惁鍚湁缂栧彿鍜屽悕绉�
-                var bol = RoadwayRst.GetAllAsync().Any(m => m.Id != id && m.RoadwayNo== roadway.RoadwayNo && m.RoadwayName == roadwayName.Trim());
+                var bol = RoadwayRst.GetAll().Any(m => m.Id != id && m.RoadwayNo== roadway.RoadwayNo && m.RoadwayName == roadwayName.Trim());
                 if (bol)
                 {
                     throw new Exception("褰撳墠宸烽亾鍙锋垨宸烽亾鍚嶇О宸插瓨鍦�");
diff --git a/Wms/WMS.BLL/SysServer/UnitServer.cs b/Wms/WMS.BLL/SysServer/UnitServer.cs
index a406675..47838d7 100644
--- a/Wms/WMS.BLL/SysServer/UnitServer.cs
+++ b/Wms/WMS.BLL/SysServer/UnitServer.cs
@@ -33,55 +33,39 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        public List<UnitDto> GetUnitList(string unitNo, string unitName, int page, int limit, out int count)
+        public async Task<List<UnitDto>> GetUnitList(string unitNo, string unitName, int page, int limit, RefAsync<int> count)
         {
-            try
+            Expression<Func<SysUnit, bool>> item = Expressionable.Create<SysUnit>() //鍒涘缓琛ㄨ揪寮�
+                .AndIF(!string.IsNullOrWhiteSpace(unitNo), it => it.UnitNo.Contains(unitNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(unitName), it => it.UnitName.Contains(unitName.Trim()))
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+
+
+            var data = await UnitRst.GetAllByOrderPage(item, limit, page, out int counts)
+                .Includes(x => x.CreateUserInfo)
+                .Includes(x => x.UpdateUserInfo).ToListAsync();
+            count = counts;
+            return data.Select(m => new UnitDto()
             {
-                Expression<Func<SysUnit, bool>> item = Expressionable.Create<SysUnit>() //鍒涘缓琛ㄨ揪寮�
-                    .AndIF(!string.IsNullOrWhiteSpace(unitNo), it => it.UnitNo.Contains(unitNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(unitName), it => it.UnitName.Contains(unitName.Trim()))
-                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-
-
-                var data = UnitRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
-                    .Includes(x => x.CreateUserInfo)
-                    .Includes(x => x.UpdateUserInfo).ToList();
-                count = counts;
-                return data.Select(m => new UnitDto()
-                {
-                    Id = m.Id,
-                    UnitNo = m.UnitNo,
-                    UnitName = m.UnitName,
-                    Abbrev = m.Abbrev,
-                    CreateTime = m.CreateTime,
-                    CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.RealName,
-                    UpdateTime = m.UpdateTime,
-                    UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.RealName
-                }).ToList();
-
-
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+                Id = m.Id,
+                UnitNo = m.UnitNo,
+                UnitName = m.UnitName,
+                Abbrev = m.Abbrev,
+                CreateTime = m.CreateTime,
+                CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.RealName,
+                UpdateTime = m.UpdateTime,
+                UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.RealName
+            }).ToList();
         }
         /// <summary>
         /// 鑾峰彇鍗曟潯鍗曚綅淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        public SysUnit GetUnit(int id)
+        public async Task<SysUnit> GetUnit(int id)
         {
-            try
-            {
-                var data = UnitRst.GetOneById(id);
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var data = await UnitRst.GetOneByIdAsync(id);
+            return data;
         }
         /// <summary>
         /// 娣诲姞鍗曚綅淇℃伅
@@ -90,13 +74,13 @@
         /// <param name="abbrev">缂╁啓</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        public bool AddUnit(string unitName, string abbrev, int userId)
+        public async Task<bool> AddUnit(string unitName, string abbrev, int userId)
         {
             try
             {
                 if (string.IsNullOrEmpty(abbrev))
                 {
-                    var date = UnitRst.GetAllWhereAsync(m => m.UnitName == unitName).Count();
+                    var date = await UnitRst.GetAllWhere(m => m.UnitName == unitName).CountAsync();
                     if (date > 0)
                     {
                         throw new Exception("鍗曚綅鍚嶇О閲嶅");
@@ -104,7 +88,7 @@
                 }
                 else
                 {
-                    var date = UnitRst.GetAllWhereAsync(m => m.UnitName == unitName || m.Abbrev == abbrev).Count();
+                    var date = await UnitRst.GetAllWhere(m => m.UnitName == unitName || m.Abbrev == abbrev).CountAsync();
                     if (date > 0)
                     {
                         throw new Exception("鍗曚綅鍚嶇О鎴栬嫳鏂囩缉鍐欓噸澶�");
@@ -112,9 +96,9 @@
                 }
 
                 //鑷姩UnitCode澶勭悊
-                var unitList = UnitRst.GetAllAsync().OrderByDescending(m => m.UnitNo);
+                var unitList = UnitRst.GetAll().OrderByDescending(m => m.UnitNo);
                 var code = "01";
-                if (unitList != null && unitList.Count()>0)
+                if (unitList != null && unitList.Count() > 0)
                 {
                     var unitCode = unitList.First().UnitNo;
                     var str = unitCode.Substring(0, 1);
@@ -122,7 +106,7 @@
                     code = str == "0" ? (str2 == "9" ? (int.Parse(str2) + 1).ToString() : "0" + (int.Parse(str2) + 1)) : (int.Parse(unitCode) + 1).ToString();
                 }
 
-                var num = UnitRst.Add(new SysUnit()
+                var num = await UnitRst.AddAsync(new SysUnit()
                 {
                     UnitNo = code,
                     UnitName = unitName,
@@ -131,7 +115,7 @@
                 });
                 if (num > 0)
                 {
-                    _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", code, "娣诲姞", "娣诲姞璁¢噺鍗曚綅 鍗曚綅鍙凤細" + code, Convert.ToInt32(userId));
+                    await _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", code, "娣诲姞", "娣诲姞璁¢噺鍗曚綅 鍗曚綅鍙凤細" + code, Convert.ToInt32(userId));
                 }
                 return num > 0;
             }
@@ -148,83 +132,69 @@
         /// <param name="abbrev">缂╁啓</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        public bool EditUnit(int id, string unitName, string abbrev, int userId)
+        public async Task<bool> EditUnit(int id, string unitName, string abbrev, int userId)
         {
-            try
+            if (string.IsNullOrEmpty(abbrev))
             {
-                if (string.IsNullOrEmpty(abbrev))
+                var date = await UnitRst.GetAllWhere(m => m.Id != id && m.UnitName == unitName).CountAsync();
+                if (date > 0)
                 {
-                    var date = UnitRst.GetAllWhereAsync(m => m.Id != id && m.UnitName == unitName).Count();
-                    if (date > 0)
-                    {
-                        throw new Exception("鍗曚綅鍚嶇О閲嶅");
-                    }
+                    throw new Exception("鍗曚綅鍚嶇О閲嶅");
                 }
-                else
-                {
-                    var date = UnitRst.GetAllWhereAsync(m => m.Id != id && (m.UnitName == unitName || m.Abbrev == abbrev)).Count();
-                    if (date > 0)
-                    {
-                        throw new Exception("鍗曚綅鍚嶇О鎴栬嫳鏂囩缉鍐欓噸澶�");
-                    }
-                }
-
-                //鑷姩UnitCode澶勭悊
-                var unit = UnitRst.GetOneById(id);
-                if (unit == null)
-                {
-                    throw new Exception("鏈煡璇㈠埌鍗曚綅淇℃伅");
-                }
-                unit.UnitName = unitName;
-                unit.Abbrev = abbrev;
-                unit.UpdateUser = userId;
-                unit.UpdateTime = DateTime.Now;
-
-                var num = UnitRst.Edit(unit);
-                return num > 0;
             }
-            catch (Exception e)
+            else
             {
-                throw new Exception(e.Message);
+                var date = await UnitRst.GetAllWhere(m => m.Id != id && (m.UnitName == unitName || m.Abbrev == abbrev)).CountAsync();
+                if (date > 0)
+                {
+                    throw new Exception("鍗曚綅鍚嶇О鎴栬嫳鏂囩缉鍐欓噸澶�");
+                }
             }
+
+            //鑷姩UnitCode澶勭悊
+            var unit = UnitRst.GetOneById(id);
+            if (unit == null)
+            {
+                throw new Exception("鏈煡璇㈠埌鍗曚綅淇℃伅");
+            }
+            unit.UnitName = unitName;
+            unit.Abbrev = abbrev;
+            unit.UpdateUser = userId;
+            unit.UpdateTime = DateTime.Now;
+
+            var num = await UnitRst.EditAsync(unit);
+            return num > 0;
         }
 
-        public bool DelUnit(int id, int userId)
+        public async Task<bool> DelUnit(int id, int userId)
         {
-            try
+            var unit = UnitRst.GetOneById(id);
+            if (unit == null)
             {
-                var unit = UnitRst.GetOneById(id);
-                if (unit == null)
-                {
-                    throw new Exception("鏈煡璇㈠埌鍗曚綅淇℃伅");
-                }
-                int num = UnitRst.Remove(id, userId);
-                if (num > 0)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", unit.UnitNo, "鍒犻櫎", "鍒犻櫎璁¢噺鍗曚綅 鍗曚綅鍙凤細" + unit.UnitNo, Convert.ToInt32(userId));
-                }
+                throw new Exception("鏈煡璇㈠埌鍗曚綅淇℃伅");
+            }
+            int num = await UnitRst.RemoveAsync(id, userId);
+            if (num > 0)
+            {
+                await _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", unit.UnitNo, "鍒犻櫎", "鍒犻櫎璁¢噺鍗曚綅 鍗曚綅鍙凤細" + unit.UnitNo, Convert.ToInt32(userId));
+            }
 
-                return num > 0;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            return num > 0;
         }
 
-        public bool DelsUnit(List<int> ids, int userId)
+        public async Task<bool> DelsUnit(List<int> ids, int userId)
         {
             try
             {
-                var list = UnitRst.GetAllWhereAsync(m => ids.Contains(m.Id)).ToList();
+                var list = await UnitRst.GetAllWhere(m => ids.Contains(m.Id)).ToListAsync();
                 if (list.Count > 0)
                 {
                     for (int i = 0; i < list.Count; i++)
                     {
-                        _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", list[i].UnitNo, "鍒犻櫎", "鍒犻櫎璁¢噺鍗曚綅 鍗曚綅鍙凤細" + list[i].UnitNo, Convert.ToInt32(userId));
+                        await _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", list[i].UnitNo, "鍒犻櫎", "鍒犻櫎璁¢噺鍗曚綅 鍗曚綅鍙凤細" + list[i].UnitNo, Convert.ToInt32(userId));
                     }
                 }
-                var num = UnitRst.RemoveAll(list, userId);
+                var num = await UnitRst.RemoveAllAsync(list, userId);
                 return num > 0;
             }
             catch (Exception e)
diff --git a/Wms/WMS.BLL/SysServer/WareHouseServer.cs b/Wms/WMS.BLL/SysServer/WareHouseServer.cs
index 515515b..1bee3e8 100644
--- a/Wms/WMS.BLL/SysServer/WareHouseServer.cs
+++ b/Wms/WMS.BLL/SysServer/WareHouseServer.cs
@@ -42,7 +42,7 @@
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
                 
-                var data = WareHouseRst.GetAllByOrderPageAsync(item, limit, page,out int counts)
+                var data = WareHouseRst.GetAllByOrderPage(item, limit, page,out int counts)
                     .Includes(x => x.TypeInfo)
                     .Includes(x => x.TemperatureInfo)
                     .Includes(x => x.CreateUserInfo)
@@ -108,7 +108,7 @@
             try
             {
                 //鍒ゆ柇闄ゅ綋鍓峣d淇℃伅浠ュ鏄惁鍚湁缂栧彿鍜屽悕绉�
-                var bol = await WareHouseRst.GetAllAsync()
+                var bol = await WareHouseRst.GetAll()
                     .AnyAsync(m => m.Id != id && (m.WareHouseNo == no.Trim() || m.WareHouseName == name.Trim()));
                 if (bol)
                 {
@@ -155,7 +155,7 @@
         {
             try
             {
-                var list = await WareHouseRst.GetAllAsync().ToListAsync();
+                var list = await WareHouseRst.GetAll().ToListAsync();
                 return list;
             }
             catch (Exception e)
diff --git a/Wms/WMS.DAL/BaseRepository.cs b/Wms/WMS.DAL/BaseRepository.cs
index b72953c..1547c2a 100644
--- a/Wms/WMS.DAL/BaseRepository.cs
+++ b/Wms/WMS.DAL/BaseRepository.cs
@@ -120,37 +120,41 @@
             return model.FirstOrDefault();
         }
         
-        public SqlSugar.ISugarQueryable<T> GetAllAsync()
+        public SqlSugar.ISugarQueryable<T> GetAll()
         {
             var data =_db.Queryable<T>().Where(m=>m.IsDel =="0");
             return data;
         }
-        public SqlSugar.ISugarQueryable<T> GetAllWhereAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
+        public async Task<List<T>> GetAllAsync()
         {
-            var data = GetAllAsync().Where(predicate);
+            return await _db.Queryable<T>().Where(m => m.IsDel == "0").ToListAsync();
+        }
+        public SqlSugar.ISugarQueryable<T> GetAllWhere(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
+        {
+            var data = GetAll().Where(predicate);
             return data;
         }
-        public SqlSugar.ISugarQueryable<T> GetAllByOrderAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate, bool asc = true)
+        public SqlSugar.ISugarQueryable<T> GetAllByOrder(System.Linq.Expressions.Expression<Func<T, bool>> predicate, bool asc = true)
         {
             var type = OrderByType.Asc;
             if (!asc)
             {
                 type = OrderByType.Desc;
             }
-            var data = GetAllWhereAsync(predicate).OrderBy(m => m.CreateTime, type);
+            var data = GetAllWhere(predicate).OrderBy(m => m.CreateTime, type);
             return data;
         }
-        public SqlSugar.ISugarQueryable<T> GeTAllByPageAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate, int pageSize, int pageIndex,out int count )
+        public SqlSugar.ISugarQueryable<T> GeTAllByPage(System.Linq.Expressions.Expression<Func<T, bool>> predicate, int pageSize, int pageIndex,out int count )
         {
-            var list = GetAllWhereAsync(predicate);
+            var list = GetAllWhere(predicate);
             count = list.Count();
             var data = list.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
             return data;
         }
 
-        public SqlSugar.ISugarQueryable<T> GetAllByOrderPageAsync(System.Linq.Expressions.Expression<Func<T, bool>> predicate, int pageSize, int pageIndex, out int count , bool asc = true)
+        public SqlSugar.ISugarQueryable<T> GetAllByOrderPage(System.Linq.Expressions.Expression<Func<T, bool>> predicate, int pageSize, int pageIndex, out int count , bool asc = true)
         {
-            var list = GetAllByOrderAsync(predicate, asc);
+            var list = GetAllByOrder(predicate, asc);
             count = list.Count();
             var data = list.Skip(pageSize * (pageIndex-1)).Take(pageSize);
 
diff --git a/Wms/WMS.DAL/Common.cs b/Wms/WMS.DAL/Common.cs
index 61515e2..3b87b65 100644
--- a/Wms/WMS.DAL/Common.cs
+++ b/Wms/WMS.DAL/Common.cs
@@ -5,7 +5,10 @@
 using System.Data;
 using System.Linq;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
+using Model.ModelDto.SysDto;
+using SqlSugar;
 using WMS.Entity.BllAsnEntity;
 using WMS.Entity.BllCheckEntity;
 using WMS.Entity.BllQualityEntity;
@@ -33,15 +36,16 @@
             {
                 var Db = DataContext.Db;
                 //鑾峰彇鍌ㄤ綅淇℃伅
-                var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
-                var locate = Db.Ado.SqlQuery<SysStorageLocat>(sql).First();
+                //var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
+                var locate = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.LocatNo == locateNo).First();
                 if (locate == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勪俊鎭�");
                 }
                 //鑾峰彇娣卞害涓�2鐨勫偍浣嶄俊鎭�
-                var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '01'; ";
-                var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                //var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '01'; ";
+                //var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                var data = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.Row == locate.Row && s.Column == locate.Column && s.Layer == locate.Layer && s.Depth == "01").First();
                 if (data == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勯噷闈㈠偍浣嶄俊鎭�");
@@ -66,15 +70,17 @@
             {
                 var Db = DataContext.Db;
                 //鑾峰彇鍌ㄤ綅淇℃伅
-                var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
-                var locate = Db.Ado.SqlQuery<SysStorageLocat>(sql).First();
+                //var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
+                //var locate = Db.Ado.SqlQuery<SysStorageLocat>(sql).First();
+                var locate = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.LocatNo == locateNo).First();
                 if (locate == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勪俊鎭�");
                 }
                 //鑾峰彇娣卞害涓�2鐨勫偍浣嶄俊鎭�
-                var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '02'; ";
-                var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                //var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '02'; ";
+                //var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                var data = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.Row == locate.Row && s.Column == locate.Column && s.Layer == locate.Layer && s.Depth == "02").First();
                 if (data == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勯噷闈㈠偍浣嶄俊鎭�");
@@ -107,9 +113,22 @@
             var lie = int.Parse(oldAddress.Substring(2, 2));
             var ceng = int.Parse(oldAddress.Substring(4, 2));
 
-            var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;";
+            //var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;";
 
-            var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+            //var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+            var listArea = category.AreaNo.Split(',');
+            var addressModels = Db.Queryable<SysStorageLocat>()
+                                  .Where(s => s.Flag == "0" && s.Status == "0" && s.Depth == "02" && s.RoadwayNo == roadWay && listArea.Contains(s.AreaNo))
+                                  .Select(s => new AddressCls()
+                                  {
+                                      LocatNo = s.LocatNo,
+                                      Row = s.Row,
+                                      Column = s.Column,
+                                      Layer = s.Layer,
+                                      DistNum = SqlFunc.Abs(s.Row - row) + SqlFunc.Abs(s.Column - lie) + SqlFunc.Abs(s.Layer - ceng)
+                                  })
+                                  .OrderBy(s => s.DistNum)
+                                  .ToList();
             if (addressModels.Count > 0)   // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅
             {
                 var listLocaete = new List<string>();
@@ -120,8 +139,9 @@
 
                     // 鍒ゆ柇鐩爣搴撲綅鐨勫搴撲綅鏄惁瀛樺湪璐х墿   (姝e父鎯呭喌涓嬫鍦ㄧЩ鍏ユ儏鍐典笉瀛樺湪锛屽洜涓虹Щ搴撳厛绉诲叆閲岄潰锛屽悗绉诲叆澶栭潰)
                     //SlotStatus 0: 绌哄偍浣� 1锛氭湁璐�  2锛氭鍦ㄥ叆搴�  3锛氭鍦ㄥ嚭搴�   4锛氭鍦ㄧЩ鍏�  5锛氭鍦ㄧЩ鍑�
-                    sqlString = $"select count(*) from SysStorageLocat where LocatNo = '{addressee}' and Status = '0' and Flag in ('0','1') ; ";
-                    var rowNum = Db.Ado.SqlQuery<int>(sqlString).First();
+                    //sqlString = $"select count(*) from SysStorageLocat where LocatNo = '{addressee}' and Status = '0' and Flag in ('0','1') ; ";
+                    //var rowNum = Db.Ado.SqlQuery<int>(sqlString).First();
+                    var rowNum = Db.Queryable<SysStorageLocat>().Count(s => s.LocatNo == addressee && s.Status == "0" && (s.Flag == "0" || s.Flag == "1"));
                     if (rowNum == 0)
                     {
                         continue;
@@ -136,11 +156,23 @@
             if (nowAddress == "")
             {
                 // 鍒ゆ柇鍚屽贩閬撳鎺掔┖搴撲綅
-                sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum 
-                                from SysStorageLocat 
-                                where Flag = '0' and Status = '0' and Depth = '01' and RoadwayNo = '{roadWay}' and AreaNo  in '{category}' 
-                                order by distNum;";
-                var adderModeling = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+                //sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum 
+                //                from SysStorageLocat 
+                //                where Flag = '0' and Status = '0' and Depth = '01' and RoadwayNo = '{roadWay}' and AreaNo  in '{category}' 
+                //                order by distNum;";
+                //var adderModeling = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+                var adderModeling = Db.Queryable<SysStorageLocat>()
+                                  .Where(s => s.Flag == "0" && s.Status == "0" && s.Depth == "01" && s.RoadwayNo == roadWay && listArea.Contains(s.AreaNo))
+                                  .Select(s => new AddressCls()
+                                  {
+                                      LocatNo = s.LocatNo,
+                                      Row = s.Row,
+                                      Column = s.Column,
+                                      Layer = s.Layer,
+                                      DistNum = SqlFunc.Abs(s.Row - row) + SqlFunc.Abs(s.Column - lie) + SqlFunc.Abs(s.Layer - ceng)
+                                  })
+                                  .OrderBy(s => s.DistNum)
+                                  .ToList();
                 if (adderModeling.Count > 0)
                 {
                     nowAddress = adderModeling[0].LocatNo;
@@ -225,7 +257,7 @@
                     orderNo = list.Select(a => a.ASNNo).Max();
                 }
                 else if (codeFlag == InOutFlag.PM.ToString())//绉诲簱
-                { 
+                {
                 }
                 else if (codeFlag == InOutFlag.CR.ToString())//鐩樼偣
                 {
@@ -235,7 +267,7 @@
                 else if (codeFlag == InOutFlag.TK.ToString())//浠诲姟
                 {
                     var list = DataContext.Db.Queryable<LogTask>().Where(m => m.TaskNo.StartsWith("TK")).ToList();
-                    orderNo = list.Max(m=>m.TaskNo);
+                    orderNo = list.Max(m => m.TaskNo);
                 }
                 else if (codeFlag == InOutFlag.EX.ToString())//寮傚父
                 {
@@ -261,7 +293,7 @@
         /// </summary>
         /// <param name="sqlString">鏌ヨ璇彞</param>
         /// <returns>琛屾暟</returns>
-        public int GetRowCount(string sqlString) 
+        public int GetRowCount(string sqlString)
         {
             try
             {
@@ -288,7 +320,7 @@
                 var db = DataContext.Db;
                 //鏌ヨ鎵樼洏鏄惁鏈夋鍦ㄥ叆搴撶殑浠诲姟
                 var imTask = db.Queryable<LogTask>().First(m => m.PalletNo == palletNo && m.IsDel == "0" && m.Status == "1");
-                 
+
                 return imTask;
             }
             catch (Exception ex)
@@ -303,13 +335,13 @@
         /// <param name="packNo"></param>
         /// <param name="pNum">鎵樼洏鍖呰鏁�</param>
         /// <param name="bNum">绠卞寘瑁呮暟</param>
-        public void GetPackQtyInfo(string packNo,ref int pNum,ref int bNum)
+        public void GetPackQtyInfo(string packNo, ref int pNum, ref int bNum)
         {
             try
             {
                 var db = DataContext.Db;
                 var pack = db.Queryable<SysPackag>().First(m => m.PackagNo == packNo);
-                if (pack!= null)
+                if (pack != null)
                 {
                     if (pack.L5Num.HasValue)
                     {
@@ -379,16 +411,16 @@
                             break;
                     }
                 }
- 
-                return allotSet; 
-                
+
+                return allotSet;
+
             }
             catch (Exception e)
             {
                 throw new Exception(e.Message);
             }
         }
-        
+
         /// <summary>
         /// 鏍规嵁灏忔暟浣嶆暟鍊艰浆鎹㈠睍绀哄��
         /// </summary>
@@ -405,11 +437,11 @@
                 }
                 decimal s = (decimal)val;
                 string r = "0";
-                double data ;
+                double data;
                 //decimal data2 = 0.00M;
                 switch (digit)
                 {
-                    case 1: 
+                    case 1:
                         r = s.ToString("0.0");
                         data = Math.Round(double.Parse(r), 1);
                         break;
@@ -473,7 +505,7 @@
         /// </summary>
         [Description("绉诲簱鍗�")]
         PM,
-        
+
         /// <summary>
         /// 浠诲姟
         /// </summary>
diff --git a/Wms/WMS.DAL/SysInfrastructure/StorageLocatRepository.cs b/Wms/WMS.DAL/SysInfrastructure/StorageLocatRepository.cs
index 509133c..54503c3 100644
--- a/Wms/WMS.DAL/SysInfrastructure/StorageLocatRepository.cs
+++ b/Wms/WMS.DAL/SysInfrastructure/StorageLocatRepository.cs
@@ -133,7 +133,7 @@
         {
             try
             {
-                var locateList = GetAllWhereAsync(m => id.Contains(m.Id)).ToList();
+                var locateList = GetAllWhere(m => id.Contains(m.Id)).ToList();
                 if (locateList.Count == 0)
                 {
                     throw new Exception($"涓烘煡璇㈠埌id涓簕id}鐨勫偍浣嶄俊鎭�");
diff --git a/Wms/WMS.Entity/Context/DataContext.cs b/Wms/WMS.Entity/Context/DataContext.cs
index 326dbca..3598c1b 100644
--- a/Wms/WMS.Entity/Context/DataContext.cs
+++ b/Wms/WMS.Entity/Context/DataContext.cs
@@ -16,6 +16,25 @@
             DbType = DbType.SqlServer, //鏁版嵁搴撶被鍨�
             IsAutoCloseConnection = true, //鑷姩閲婃斁
             InitKeyType = InitKeyType.Attribute //鏍规嵁瀹炰綋绫诲彇鍙戠幇涓婚敭
+        }, db => {
+            //(A)鍏ㄥ眬鐢熸晥閰嶇疆鐐癸紝涓�鑸珹OP鍜岀▼搴忓惎鍔ㄧ殑閰嶇疆鎵旇繖閲岄潰 锛屾墍鏈変笂涓嬫枃鐢熸晥
+            //璋冭瘯SQL浜嬩欢锛屽彲浠ュ垹鎺�
+            db.Aop.OnLogExecuting = (sql, pars) =>
+            {
+
+                //鑾峰彇鍘熺敓SQL鎺ㄨ崘 5.1.4.63  鎬ц兘OK
+                //Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
+
+                //鑾峰彇鏃犲弬鏁板寲SQL 瀵规�ц兘鏈夊奖鍝嶏紝鐗瑰埆澶х殑SQL鍙傛暟澶氱殑锛岃皟璇曚娇鐢�
+                //Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer, sql, pars));
+
+            };
+
+            //澶氫釜閰嶇疆灏卞啓涓嬮潰
+            //db.Ado.IsDisableMasterSlaveSeparation=true;
+
+            //娉ㄦ剰澶氱鎴� 鏈夊嚑涓缃嚑涓�
+            //db.GetConnection(i).Aop
         });
 
         public DataContext()
diff --git a/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs b/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs
index 43feedd..1c818ba 100644
--- a/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs
@@ -1,4 +1,5 @@
 锘縰sing Model.ModelDto.SysDto;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Text;
@@ -21,19 +22,19 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<CustomerDto> GetCustomerList(string no, string name,int? type,string linkMan,string phone ,int page,int limit,out int count);
+        Task<List<CustomerDto>> GetCustomerList(string no, string name,int? type,string linkMan,string phone ,int page,int limit,RefAsync<int> count);
         /// <summary>
         /// 鏌ヨ鍗曟潯瀹㈡埛淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        SysCustomer GetCustomer(int id);
+        Task<SysCustomer> GetCustomer(int id);
         /// <summary>
         /// 鏌ヨ鍏ㄩ儴瀹㈡埛淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        List<SysCustomer> GetCustomerSelect();
+        Task<List<SysCustomer>> GetCustomerSelect();
         /// <summary>
         /// 娣诲姞瀹㈡埛淇℃伅
         /// </summary>
@@ -47,7 +48,7 @@
         /// <param name="creditRating">淇$敤绛夌骇</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool AddCustomer(string no,string name, int type,string address, string linkMan, string phone,string bankAccount,string creditRating, string demo,int userId);
+        Task<bool> AddCustomer(string no,string name, int type,string address, string linkMan, string phone,string bankAccount,string creditRating, string demo,int userId);
 
         /// <summary>
         /// 缂栬緫瀹㈡埛淇℃伅
@@ -63,20 +64,20 @@
         /// <param name="creditRating">淇$敤绛夌骇</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool EditCustomer(int id,string no,string name, int type, string address, string linkMan, string phone, string bankAccount, string creditRating, string demo, int userId);
+        Task<bool> EditCustomer(int id,string no,string name, int type, string address, string linkMan, string phone, string bankAccount, string creditRating, string demo, int userId);
         /// <summary>
         /// 鍒犻櫎鍗曟潯瀹㈡埛淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <param name="userId"></param>
         /// <returns></returns>
-        bool DelCustomer(int id,int userId);
+        Task<bool> DelCustomer(int id,int userId);
         /// <summary>
         /// 鍒犻櫎鍗曟潯瀹㈡埛淇℃伅
         /// </summary>
         /// <param name="ids"></param>
         /// <param name="userId"></param>
         /// <returns></returns>
-        bool DelsCustomer(List<int> ids, int userId);
+        Task<bool> DelsCustomer(List<int> ids, int userId);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IDepartmentServer.cs b/Wms/WMS.IBLL/ISysServer/IDepartmentServer.cs
index 6dc4b87..c11593b 100644
--- a/Wms/WMS.IBLL/ISysServer/IDepartmentServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IDepartmentServer.cs
@@ -18,20 +18,20 @@
         /// <param name="DepartmentName">閮ㄩ棬鍚嶇О</param>
         /// <param name="DepartmentNo">閮ㄩ棬鍙�</param>
         /// <returns></returns>
-        List<DepartmentDto> GetDepartmentList(string DepartmentName, string DepartmentNo);
+        Task<List<DepartmentDto>> GetDepartmentList(string DepartmentName, string DepartmentNo);
 
         /// <summary>
         /// 鏍规嵁id鑾峰彇閮ㄩ棬淇℃伅
         /// </summary>
         /// <param name="id">閮ㄩ棬id</param>
         /// <returns></returns>
-        SysDepartment GetDepartmentById(int id);
+        Task<SysDepartment> GetDepartmentById(int id);
 
         /// <summary>
         /// 鏍规嵁閮ㄩ棬鍙疯幏鍙栭儴闂ㄤ俊鎭�
         /// </summary>
         /// <returns></returns>
-        int GetDepartmentByNo(string DepartmentNo);
+        Task<int> GetDepartmentByNo(string DepartmentNo);
 
         /// <summary>
         /// 鏂板閮ㄩ棬淇℃伅
diff --git a/Wms/WMS.IBLL/ISysServer/IFunSettingServer.cs b/Wms/WMS.IBLL/ISysServer/IFunSettingServer.cs
index 2b33324..aa6fb66 100644
--- a/Wms/WMS.IBLL/ISysServer/IFunSettingServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IFunSettingServer.cs
@@ -19,21 +19,21 @@
         /// <param name="IsEnable">寮�鍚姸鎬�</param>
         /// <param name="GroupNo">缁勫彿</param>
         /// <returns></returns>
-        List<FunSettingDto> GetFunSettingList(string FunSetName, string IsEnable, string GroupNo);
+        Task<List<FunSettingDto>> GetFunSettingList(string FunSetName, string IsEnable, string GroupNo);
 
         /// <summary>
         /// 鏍规嵁id鏌ヨ鍔熻兘璁惧畾淇℃伅
         /// </summary>
         /// <param name="id">鍔熻兘id</param>
         /// <returns></returns>
-        SysFunSetting GetFunSettingById(int id);
+        Task<SysFunSetting> GetFunSettingById(int id);
 
         /// <summary>
         /// 鏍规嵁缂栧彿鏌ヨ鍔熻兘璁惧畾娑堟伅
         /// </summary>
         /// <param name="funSetNo">鍔熻兘缂栧彿</param>
         /// <returns></returns>
-        SysFunSetting GetFunSettingByNo(string funSetNo);
+        Task<SysFunSetting> GetFunSettingByNo(string funSetNo);
 
         /// <summary>
         /// 鏂板鍔熻兘淇℃伅
diff --git a/Wms/WMS.IBLL/ISysServer/IInterfaceServer.cs b/Wms/WMS.IBLL/ISysServer/IInterfaceServer.cs
index 1adf179..f9ab087 100644
--- a/Wms/WMS.IBLL/ISysServer/IInterfaceServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IInterfaceServer.cs
@@ -3,6 +3,8 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
+using Utility;
 using WMS.Entity.SysEntity;
 
 namespace WMS.IBLL.ISysServer
@@ -15,7 +17,7 @@
         /// <param name="model"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<InterfaceDto> GetInterfaceList(InterfaceVm model, out int count);
+        Task<SqlSugarPagedList<InterfaceDto>> GetInterfaceList(InterfaceVm model);
 
         /// <summary>
         /// 鑾峰彇鎺ュ彛鏄庣粏鍒楄〃
@@ -23,34 +25,34 @@
         /// <param name="model"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<InterfaceDetailDto> GetInterfaceDetailList(InterfaceDetailVm model, out int count);
+        Task<SqlSugarPagedList<InterfaceDetailDto>> GetInterfaceDetailList(InterfaceDetailVm model);
 
         /// <summary>
         /// 娣诲姞鎺ュ彛淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        string AddInterface(InterfaceVm model);
+        Task AddInterface(InterfaceVm model);
 
         /// <summary>
         /// 缂栬緫鎺ュ彛淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        string EditInterface(InterfaceVm model);
+        Task EditInterface(InterfaceVm model);
 
         /// <summary>
         /// 鍒犻櫎鎺ュ彛淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        string DelInterface(InterfaceVm model);
+        Task DelInterface(InterfaceVm model);
 
         /// <summary>
         /// 鍒犻櫎鎺ュ彛鏄庣粏淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        string DelInterfaceDetail(InterfaceDetailVm model);
+        Task DelInterfaceDetail(InterfaceDetailVm model);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/ILogisticsInfoServer.cs b/Wms/WMS.IBLL/ISysServer/ILogisticsInfoServer.cs
index 08bcae1..fd9bf63 100644
--- a/Wms/WMS.IBLL/ISysServer/ILogisticsInfoServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/ILogisticsInfoServer.cs
@@ -1,5 +1,6 @@
 锘縰sing Model.ModelDto.SysDto;
 using Model.ModelVm.SysVm;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Text;
@@ -22,39 +23,39 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<LogisticsInfoDto> GetLogisticsInfoList(string name,string linkMan,string phone,string licensePlate,string type,int page,int limit,out int count);
+        Task<List<LogisticsInfoDto>> GetLogisticsInfoList(string name, string linkMan, string phone, string licensePlate, string type, int page, int limit, RefAsync<int> count);
         /// <summary>
         /// 鏌ヨ鍗曟潯鐗╂祦淇℃伅
         /// </summary>
         /// <param name="id"></param> 
         /// <returns></returns>
-        SysLogisticsInfo GetLogisticsInfo(int id);
+        Task<SysLogisticsInfo> GetLogisticsInfo(int id);
         /// <summary>
         /// 鏌ヨ鍏ㄩ儴鐗╂祦淇℃伅
         /// </summary> 
         /// <returns></returns>
-        List<SysLogisticsInfo> GetLogisticsInfoSelect();
+        Task<List<SysLogisticsInfo>> GetLogisticsInfoSelect();
         /// <summary>
         /// 娣诲姞鐗╂祦淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool AddLogisticsInfo(AddLogisticsInfoVm model, int userId);
+        Task<bool> AddLogisticsInfo(AddLogisticsInfoVm model, int userId);
         /// <summary>
         /// 缂栬緫鐗╂祦淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool EditLogisticsInfo(EditLogisticsInfoVm model, int userId);
+        Task<bool> EditLogisticsInfo(EditLogisticsInfoVm model, int userId);
         /// <summary>
         /// 鍒犻櫎鍗曟潯鐗╂祦淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool DelLogisticsInfo(int id,int userId);
+        Task<bool> DelLogisticsInfo(int id, int userId);
 
         /// <summary>
         /// 鍒犻櫎鐗╂祦淇℃伅(澶氭潯淇℃伅)
@@ -62,6 +63,6 @@
         /// <param name="ids"></param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool DelsLogisticsInfo(List<int> ids,int userId);
+        Task<bool> DelsLogisticsInfo(List<int> ids, int userId);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs b/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs
index fa1d6b9..72ace42 100644
--- a/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs
@@ -11,20 +11,6 @@
     {
         #region wms
 
-        ///// <summary>
-        ///// 鏌ヨ鐗╂枡淇℃伅
-        ///// </summary>
-        ///// <param name="skuNo">鐗╂枡鍙�</param>
-        ///// <param name="skuName">鐗╂枡鍚嶇О</param>
-        ///// <param name="type">鐗╂枡绫诲瀷</param>
-        ///// <param name="isInspect">鏄惁鍏嶆</param>
-        ///// <param name="page"></param>
-        ///// <param name="limit"></param>
-        ///// <param name="count"></param>
-        ///// <returns></returns>
-        //List<MaterialsDto> GetMaterialsList(string skuNo, string skuName, string type, string isInspect, int page, int limit, out int count);
-
-
         /// <summary>
         /// 鑾峰彇鐗╂枡淇℃伅鍒楄〃
         /// </summary>
@@ -37,21 +23,21 @@
         /// <param name="environment">瀛樺偍鐜</param>
         /// <param name="categoryNo">绫诲埆缂栫爜</param>
         /// <returns></returns>
-        List<MaterialsDto> GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment,string categoryNo);
+        Task<List<MaterialsDto>> GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment,string categoryNo);
 
         /// <summary>
         /// 鏍规嵁id鏌ヨ鐗╂枡淇℃伅
         /// </summary>
         /// <param name="id">鐗╂枡id</param>
         /// <returns></returns>
-        SysMaterials GetMateById(int id);
+        Task<SysMaterials> GetMateById(int id);
 
         /// <summary>
         /// 鏍规嵁缂栧彿鏌ヨ鐗╂枡淇℃伅
         /// </summary>
         /// <param name="SkuNo">鐗╂枡缂栧彿</param>
         /// <returns></returns>
-        int GetMateByNo(string SkuNo);
+        Task<int> GetMateByNo(string SkuNo);
 
         /// <summary>
         /// 鏂板鐗╂枡淇℃伅
@@ -81,13 +67,13 @@
         /// 鑾峰彇璁¢噺鍗曚綅淇℃伅鍒楄〃
         /// </summary>
         /// <returns></returns>
-        List<SysUnit> GetUnitList();
+        Task<List<SysUnit>> GetUnitList();
 
         /// <summary>
         /// 鑾峰彇鍖呰淇℃伅鍒楄〃
         /// </summary>
         /// <returns></returns>
-        List<SysPackag> GetPackagList();
+        Task<List<SysPackag>> GetPackagList();
 
         #endregion
 
diff --git a/Wms/WMS.IBLL/ISysServer/IMenuServer.cs b/Wms/WMS.IBLL/ISysServer/IMenuServer.cs
index 2e055c4..6374840 100644
--- a/Wms/WMS.IBLL/ISysServer/IMenuServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IMenuServer.cs
@@ -18,7 +18,7 @@
         /// </summary>
         /// <param name="menuDto">鑿滃崟Dto</param>
         /// <returns></returns>
-        List<FunctionMenuVm> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level);
+        Task<List<FunctionMenuVm>> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level);
 
         /// <summary>
         /// 鏍规嵁灞傜骇鑾峰彇鑿滃崟鍒楄〃
diff --git a/Wms/WMS.IBLL/ISysServer/IPackagServer.cs b/Wms/WMS.IBLL/ISysServer/IPackagServer.cs
index 21156aa..9dfeb42 100644
--- a/Wms/WMS.IBLL/ISysServer/IPackagServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IPackagServer.cs
@@ -4,6 +4,7 @@
 using System.Threading.Tasks;
 using Model.ModelDto.SysDto;
 using Model.ModelVm.SysVm;
+using SqlSugar;
 using WMS.Entity.SysEntity;
 
 namespace WMS.IBLL.ISysServer
@@ -20,35 +21,35 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<PackagDto> GetPackagList(string packagNo, string packagName, int? level, int page, int limit, out int count);
+        Task<List<PackagDto>> GetPackagList(string packagNo, string packagName, int? level, int page, int limit, RefAsync<int> count);
 
         /// <summary>
         /// 鏍规嵁id鑾峰彇鍖呰淇℃伅
         /// </summary>
         /// <param name="id">鍖呰id</param>
         /// <returns></returns>
-        SysPackag GetPackagById(int id);
+        Task<SysPackag> GetPackagById(int id);
 
         /// <summary>
         /// 鏂板鍖呰淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        int AddPackag(AddEditPackagVm model);
+        Task<int> AddPackag(AddEditPackagVm model);
 
         /// <summary>
         /// 淇敼鍖呰淇℃伅
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        int EditPackag(AddEditPackagVm model);
+        Task<int> EditPackag(AddEditPackagVm model);
 
         /// <summary>
         /// 閫昏緫鍒犻櫎鍖呰淇℃伅
         /// </summary>
         /// <param name="packagId">鍖呰涓婚敭Id</param>
         /// <returns></returns>
-        bool DelPackag(int packagId, int userId);
+        Task<bool> DelPackag(int packagId, int userId);
 
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IUnitServer.cs b/Wms/WMS.IBLL/ISysServer/IUnitServer.cs
index ac09c61..b68f660 100644
--- a/Wms/WMS.IBLL/ISysServer/IUnitServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IUnitServer.cs
@@ -3,6 +3,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using Model.ModelDto.SysDto;
+using SqlSugar;
 using WMS.Entity.SysEntity;
 
 namespace WMS.IBLL.ISysServer
@@ -18,13 +19,13 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<UnitDto> GetUnitList(string unitNo,string unitName,int page,int limit,out int count);
+        Task<List<UnitDto>> GetUnitList(string unitNo,string unitName,int page,int limit, RefAsync<int> count);
         /// <summary>
         /// 鑾峰彇鍗曟潯鍗曚綅淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        SysUnit GetUnit(int id);
+        Task<SysUnit> GetUnit(int id);
         /// <summary>
         /// 娣诲姞鍗曚綅淇℃伅
         /// </summary>
@@ -32,7 +33,7 @@
         /// <param name="abbrev">缂╁啓</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool AddUnit(string unitName,string abbrev,int userId);
+        Task<bool> AddUnit(string unitName,string abbrev,int userId);
         /// <summary>
         /// 缂栬緫鍗曚綅淇℃伅
         /// </summary>
@@ -41,20 +42,20 @@
         /// <param name="abbrev">缂╁啓</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        bool EditUnit(int id, string unitName, string abbrev, int userId);
+        Task<bool> EditUnit(int id, string unitName, string abbrev, int userId);
         /// <summary>
         /// 鍒犻櫎鍗曚綅淇℃伅
         /// </summary>
         /// <param name="id"></param>
         /// <param name="userId"></param>
         /// <returns></returns>
-        bool DelUnit(int id,int userId);
+        Task<bool> DelUnit(int id,int userId);
         /// <summary>
         /// 鍒犻櫎鍗曚綅淇℃伅锛堝鍒犻櫎锛�
         /// </summary>
         /// <param name="ids">id闆嗗悎</param>
         /// <param name="userId"></param>
         /// <returns></returns>
-        bool DelsUnit(List<int> ids, int userId);
+        Task<bool> DelsUnit(List<int> ids, int userId);
     }
 }
diff --git a/Wms/WMS.IDAL/IBaseRepository.cs b/Wms/WMS.IDAL/IBaseRepository.cs
index e144ee5..c423e3f 100644
--- a/Wms/WMS.IDAL/IBaseRepository.cs
+++ b/Wms/WMS.IDAL/IBaseRepository.cs
@@ -28,8 +28,8 @@
         Task SaveAsync();
 
 
-        ISugarQueryable<T> GetAllAsync();
-
+        ISugarQueryable<T> GetAll();
+        Task<List<T>> GetAllAsync();
         T GetOneById(int id);
         Task<T> GetOneByIdAsync(int id);
 
@@ -37,9 +37,9 @@
 
         T GetModel(string sqlString);
         
-        ISugarQueryable<T> GetAllWhereAsync(Expression<Func<T, bool>> predicate);
-        ISugarQueryable<T> GeTAllByPageAsync(Expression<Func<T, bool>> predicate,int pageSize,int pageIndex, out int count);
-        ISugarQueryable<T> GetAllByOrderAsync(Expression<Func<T, bool>> predicate, bool asc = true);
-        ISugarQueryable<T> GetAllByOrderPageAsync(Expression<Func<T, bool>> predicate, int pageSize , int pageIndex , out int count,bool asc = true);
+        ISugarQueryable<T> GetAllWhere(Expression<Func<T, bool>> predicate);
+        ISugarQueryable<T> GeTAllByPage(Expression<Func<T, bool>> predicate,int pageSize,int pageIndex, out int count);
+        ISugarQueryable<T> GetAllByOrder(Expression<Func<T, bool>> predicate, bool asc = true);
+        ISugarQueryable<T> GetAllByOrderPage(Expression<Func<T, bool>> predicate, int pageSize , int pageIndex , out int count,bool asc = true);
     }
 }
diff --git a/Wms/Wms/AutoMapperServer/AutoMapperProfile.cs b/Wms/Wms/AutoMapperServer/AutoMapperProfile.cs
index 7130b8a..16446d2 100644
--- a/Wms/Wms/AutoMapperServer/AutoMapperProfile.cs
+++ b/Wms/Wms/AutoMapperServer/AutoMapperProfile.cs
@@ -3,6 +3,7 @@
 using Model.ModelDto.LogDto;
 using Model.ModelDto.SysDto;
 using Model.ModelVm.SysVm;
+using WMS.Entity.SysEntity;
 
 namespace Wms.AutoMapperServer
 {
@@ -29,6 +30,9 @@
 
             CreateMap<WMS.Entity.LogEntity.LogOperationSys, OperationDto>().ReverseMap();//绯荤粺鎿嶄綔鏃ュ織(瀹炰綋涓嶥to)
             CreateMap<WMS.Entity.SysEntity.SysException, ExceptionDto>().ReverseMap();//寮傚父澶勭悊(瀹炰綋涓嶥to)
+
+            CreateMap<WMS.Entity.SysEntity.SysInterface, InterfaceVm>().ReverseMap();
+            CreateMap<WMS.Entity.SysEntity.SysInterfaceDetail, InterfaceDetailVm>().ReverseMap();
         }
     }
 }
diff --git a/Wms/Wms/Controllers/BasisController.cs b/Wms/Wms/Controllers/BasisController.cs
index fb0997a..d1d05d1 100644
--- a/Wms/Wms/Controllers/BasisController.cs
+++ b/Wms/Wms/Controllers/BasisController.cs
@@ -28,6 +28,7 @@
     [Route("api/[controller]/[action]")]
     [ApiController]
     [Authorize]
+    [ServiceFilter(typeof(ApiResponseActionFilter))]
     public class BasisController : ControllerBase
     {
         /// <summary>
@@ -93,7 +94,6 @@
         /// <param name="Status">鐘舵��</param>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<List<UserInfoDto>> GetUserRoleList(string UserName, string DepartmentNo, string RoleNo, string Status)
         {
             return await _userInforServer.GetUserRoleList(UserName, DepartmentNo, RoleNo, Status);
@@ -105,7 +105,6 @@
         /// <param name="id">鐢ㄦ埛id</param>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<SysUserInfor> GetUserinfoListById(int id)
         {
             return await _userInforServer.GetUserInfoById(id);
@@ -119,7 +118,6 @@
         /// <returns></returns>
         /// <exception cref="System.Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task InsertUserinfo(UserInfoDto UserInfoDto)
         {
@@ -142,7 +140,6 @@
         /// <returns></returns>
         /// <exception cref="System.Exception">寮傚父</exception>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task DeleteUserInfo(int userids)
         {
@@ -167,7 +164,6 @@
         /// <returns></returns>
         /// <exception cref="System.Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task UpdateUserinfo(UserInfoDto userdto)
         {
@@ -197,7 +193,6 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task UptUserPassWord(string pwdOld, string pwdNew, string pwdNewTwo/*, int userId*/)
         {
             pwdOld = Md5Tools.CalcMd5(pwdOld);
@@ -219,7 +214,6 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<int> IsPassWordTime()
         {
             return await _userInforServer.IsPassWordTime(_userManager.UserId);
@@ -237,7 +231,6 @@
         /// <param name="RoleName">瑙掕壊鍚嶇О</param>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<List<RoleDto>> GetRolesList(string RoleNo, string RoleName)
         {
             return await _rolesServer.GetRoleList(RoleNo, RoleName);
@@ -249,7 +242,6 @@
         /// <param name="roleid">瑙掕壊id</param>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<SysRoles> GetRolesListById(int roleid)
         {
             return await _rolesServer.GetRoleInfoById(roleid);
@@ -262,7 +254,6 @@
         /// <returns></returns>
         /// <exception cref="System.Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task InsertRoleInfo(RoleDto roledto)
         {
@@ -284,7 +275,6 @@
         /// <returns></returns>
         /// <exception cref="System.Exception"></exception>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task DeleteRoleInfo(int roleids)
         {
@@ -308,7 +298,6 @@
         /// <returns></returns>
         /// <exception cref="System.Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task UpdateRolesInfo(SysRoles role)
         {
@@ -344,10 +333,9 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<List<FunctionMenuDto>> GetRoleRightRBAC(int id, string MenuNo)
         {
-            return await _rBACServer.GetRoleRightRBAC(MenuNo, UserId);
+            return await _rBACServer.GetRoleRightRBAC(MenuNo, _userManager.UserId.ToString());
         }
 
         /// <summary>
@@ -355,7 +343,6 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<List<RoleRightDto>> GetRoleRightLists(int id)
         {
             return await _rBACServer.GetRoleRightList(id);
@@ -367,7 +354,6 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<List<RoleRightDto>> GetRoleRightList()
         {
             return await _roleRightServer.GetRoleMenuList();
@@ -379,7 +365,6 @@
         /// <param name="id">瑙掕壊鏉冮檺id</param>
         /// <returns></returns>
         [HttpGet]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         public async Task<List<SysRoleRight>> GetRoleRightOneListById(int id)
         {
             return await _roleRightServer.GetRoleRightOneListById(id);
@@ -393,7 +378,6 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        [ServiceFilter(typeof(ApiResponseActionFilter))]
         [UnitOfWork]
         public async Task InsertRoleRight(string MenuNo, int id)
         {
@@ -422,15 +406,9 @@
         /// <param name="DepartmentNo">閮ㄩ棬鍙�</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetDepartmentList(string DepartmentName, string DepartmentNo)
+        public async Task<List<DepartmentDto>> GetDepartmentList(string DepartmentName, string DepartmentNo)
         {
-            List<DepartmentDto> departmentlist = _department.GetDepartmentList(DepartmentName, DepartmentNo);
-            return Ok(new
-            {
-                data = departmentlist,
-                code = 0,
-                msg = "鑾峰彇閮ㄩ棬淇℃伅鍒楄〃鎴愬姛"
-            });
+            return await _department.GetDepartmentList(DepartmentName, DepartmentNo);
         }
 
         /// <summary>
@@ -439,15 +417,9 @@
         /// <param name="id">閮ㄩ棬id</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetDepartmentById(int id)
+        public async Task<SysDepartment> GetDepartmentById(int id)
         {
-            SysDepartment department = _department.GetDepartmentById(id);
-            return Ok(new
-            {
-                data = department,
-                msg = "鎴愬姛",
-                code = 0
-            });
+            return await _department.GetDepartmentById(id);
         }
 
         /// <summary>
@@ -457,56 +429,18 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        public async Task<IActionResult> AddDepartment(DepartmentDto departmentdto)
+        [UnitOfWork]
+        public async Task AddDepartment(DepartmentDto departmentdto)
         {
-            //鎹曡幏寮傚父
-            try
+            await _department.AddDepartment(departmentdto);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-
-                int uid = Convert.ToInt32(userId);
-                //鏇存敼浜�
-                departmentdto.CreateUser = uid;
-
-                int i = await _department.AddDepartment(departmentdto);
-                //鍒ゆ柇鏄惁鏂板鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "鏂板澶辫触"
-                    });
-                }
-                else if (i == 3)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 3,
-                        msg = "閮ㄩ棬鍙峰繀椤诲敮涓�"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("鍩虹淇℃伅", "閮ㄩ棬绠$悊", departmentdto.DepartmentNo, "娣诲姞", "娣诲姞閮ㄩ棬淇℃伅 閮ㄩ棬鍙凤細" + departmentdto.DepartmentNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "鏂板鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鏂板閮ㄩ棬寮傚父", ex);
-            }
-
+                ParentName = "鍩虹淇℃伅",
+                MenuName = "閮ㄩ棬绠$悊",
+                FkNo = departmentdto.DepartmentNo,
+                TypeName = "娣诲姞",
+                Msg = "娣诲姞閮ㄩ棬淇℃伅 閮ㄩ棬鍙凤細" + departmentdto.DepartmentNo
+            });
         }
 
         /// <summary>
@@ -516,46 +450,19 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpGet]
-        public async Task<IActionResult> DelDepartment(int Id)
+        [UnitOfWork]
+        public async Task DelDepartment(int Id)
         {
-            //鎹曡幏寮傚父
-            try
+            SysDepartment department = await _department.GetDepartmentById(Id);
+            await _department.DelDepartment(department);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                SysDepartment department = _department.GetDepartmentById(Id);
-
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鏇存敼浜�
-                department.UpdateUser = uid;
-                int i = await _department.DelDepartment(department);
-                //鍒ゆ柇鏄惁鍒犻櫎鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "鍒犻櫎澶辫触"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("鍩虹淇℃伅", "閮ㄩ棬绠$悊", department.DepartmentNo, "鍒犻櫎", "鍒犻櫎閮ㄩ棬淇℃伅 閮ㄩ棬鍙凤細" + department.DepartmentNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "鍒犻櫎鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鍒犻櫎閮ㄩ棬寮傚父", ex);
-            }
+                ParentName = "鍩虹淇℃伅",
+                MenuName = "閮ㄩ棬绠$悊",
+                FkNo = department.DepartmentNo,
+                TypeName = "鍒犻櫎",
+                Msg = "鍒犻櫎閮ㄩ棬淇℃伅 閮ㄩ棬鍙凤細" + department.DepartmentNo
+            });
         }
 
         /// <summary>
@@ -565,44 +472,18 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        public async Task<IActionResult> ExitDepartment(DepartmentDto departmentdto)
+        [UnitOfWork]
+        public async Task ExitDepartment(DepartmentDto departmentdto)
         {
-            //鎹曡幏寮傚父
-            try
+            await _department.ExitDepartment(departmentdto);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鏇存敼浜�
-                departmentdto.UpdateUser = uid;
-                int i = await _department.ExitDepartment(departmentdto);
-                //鍒ゆ柇鏄惁缂栬緫鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "缂栬緫澶辫触"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("鍩虹淇℃伅", "閮ㄩ棬绠$悊", departmentdto.DepartmentNo, "淇敼", "缂栬緫閮ㄩ棬淇℃伅 閮ㄩ棬鍙凤細" + departmentdto.DepartmentNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "缂栬緫鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("缂栬緫閮ㄩ棬寮傚父", ex);
-            }
+                ParentName = "鍩虹淇℃伅",
+                MenuName = "閮ㄩ棬绠$悊",
+                FkNo = departmentdto.DepartmentNo,
+                TypeName = "缂栬緫",
+                Msg = "缂栬緫閮ㄩ棬淇℃伅 閮ㄩ棬鍙凤細" + departmentdto.DepartmentNo
+            });
         }
 
         #endregion
@@ -617,15 +498,9 @@
         /// <param name="GroupNo">缁勫彿</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetFunSettingList(string FunSetName, string IsEnable, string GroupNo)
+        public async Task<List<FunSettingDto>> GetFunSettingList(string FunSetName, string IsEnable, string GroupNo)
         {
-            List<FunSettingDto> settinglist = _setting.GetFunSettingList(FunSetName, IsEnable, GroupNo);
-            return Ok(new
-            {
-                data = settinglist,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _setting.GetFunSettingList(FunSetName, IsEnable, GroupNo);
         }
 
         /// <summary>
@@ -634,15 +509,9 @@
         /// <param name="id">鍔熻兘id</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetFunSettingById(int id)
+        public async Task<SysFunSetting> GetFunSettingById(int id)
         {
-            SysFunSetting settinglist = _setting.GetFunSettingById(id);
-            return Ok(new
-            {
-                data = settinglist,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _setting.GetFunSettingById(id);
         }
 
         /// <summary>
@@ -651,18 +520,9 @@
         /// <param name="funSetNo">鍔熻兘缂栧彿</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetFunSettingByNo(string funSetNo)
+        public async Task<SysFunSetting> GetFunSettingByNo(string funSetNo)
         {
-            try
-            {
-                var models = _setting.GetFunSettingByNo(funSetNo);
-
-                return Ok(new { code = 0, msg = "鍔熻兘璁惧畾淇℃伅", data = models });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _setting.GetFunSettingByNo(funSetNo);
         }
         /// <summary>
         /// 鏂板鍔熻兘淇℃伅
@@ -671,80 +531,18 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        public async Task<IActionResult> AddFunSettings(FunSettingDto settingdto)
+        [UnitOfWork]
+        public async Task AddFunSettings(FunSettingDto settingdto)
         {
-            //鎹曡幏寮傚父
-            try
+            await _setting.AddFunSettings(settingdto);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鍒涘缓浜�
-                settingdto.CreateUser = uid;
-                //鏂板
-                int i = await _setting.AddFunSettings(settingdto);
-                //鍒ゆ柇鏄惁鏂板鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "澶辫触"
-                    });
-                }
-                else if (i == 3)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 3,
-                        msg = "鍔熻兘鍙峰繀椤诲敮涓�"
-                    });
-                }
-                else if (i == 4)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 4,
-                        msg = "鏄剧ず椤哄簭鑼冨洿涓�1---5"
-                    });
-                }
-                else if (i == 5)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 5,
-                        msg = "璇疯緭鍏ユ纭粍鍙�"
-                    });
-                }
-                else if (i == 6)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 6,
-                        msg = "姣忎竴缁勫彧鑳藉紑鍚竴涓姛鑳�"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("绯荤粺璁剧疆", "鍔熻兘璁惧畾", settingdto.FunSetNo, "娣诲姞", "娣诲姞鍔熻兘璁惧畾 鍔熻兘鍙凤細" + settingdto.FunSetNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                return Ok(new { data = "", code = 1, msg = "鏂板鍔熻兘寮傚父锛�" + ex.Message });
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鍔熻兘璁惧畾",
+                FkNo = settingdto.FunSetNo,
+                TypeName = "娣诲姞",
+                Msg = "娣诲姞鍔熻兘璁惧畾 鍔熻兘鍙凤細" + settingdto.FunSetNo
+            });
         }
 
         /// <summary>
@@ -754,46 +552,19 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpGet]
-        public async Task<IActionResult> DelFunSettings(int id)
+        [UnitOfWork]
+        public async Task DelFunSettings(int id)
         {
-            //鎹曡幏寮傚父
-            try
+            SysFunSetting funSetting = await _setting.GetFunSettingById(id);
+            await _setting.DelFunSettings(funSetting);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                SysFunSetting funSetting = _setting.GetFunSettingById(id);
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鏇存敼浜�
-                funSetting.UpdateUser = uid;
-                //鍒犻櫎
-                int i = await _setting.DelFunSettings(funSetting);
-                //鍒ゆ柇鏄惁鍒犻櫎鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "澶辫触"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("绯荤粺璁剧疆", "鍔熻兘璁惧畾", funSetting.FunSetNo, "鍒犻櫎", "鍒犻櫎鍔熻兘璁惧畾 鍔熻兘鍙凤細" + funSetting.FunSetNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鍒犻櫎鍔熻兘寮傚父", ex);
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鍔熻兘璁惧畾",
+                FkNo = funSetting.FunSetNo,
+                TypeName = "鍒犻櫎",
+                Msg = "鍒犻櫎鍔熻兘璁惧畾 鍔熻兘鍙凤細" + funSetting.FunSetNo
+            });
         }
 
         /// <summary>
@@ -803,79 +574,23 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        public async Task<IActionResult> ExitFunSettings(FunSettingDto settingdto)
+        [UnitOfWork]
+        public async Task ExitFunSettings(FunSettingDto settingdto)
         {
-            //鎹曡幏寮傚父
-            try
+            await _setting.ExitFunSettings(settingdto);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鏇存敼浜�
-                settingdto.UpdateUser = uid;
-                //缂栬緫
-                int i = await _setting.ExitFunSettings(settingdto);
-                //鍒ゆ柇鏄惁缂栬緫鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "澶辫触"
-                    });
-                }
-                else if (i == 6)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 6,
-                        msg = "姣忎竴缁勫彧鑳藉紑鍚竴涓姛鑳�"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("绯荤粺璁剧疆", "鍔熻兘璁惧畾", settingdto.FunSetNo, "淇敼", "淇敼鍔熻兘璁惧畾 鍔熻兘鍙凤細" + settingdto.FunSetNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                return Ok(new { data = "", code = 1, msg = "缂栬緫鍔熻兘寮傚父锛�" + ex.Message });
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鍔熻兘璁惧畾",
+                FkNo = settingdto.FunSetNo,
+                TypeName = "缂栬緫",
+                Msg = "淇敼鍔熻兘璁惧畾 鍔熻兘鍙凤細" + settingdto.FunSetNo
+            });
         }
 
         #endregion
 
         #region 鐗╂枡绠$悊
-
-        ///// <summary>
-        ///// 鏌ヨ鐗╂枡淇℃伅
-        ///// </summary>
-        ///// <param name="matevm">鐗╂枡缂栫爜瑙嗗浘妯″瀷</param>
-        ///// <returns></returns>
-        //[HttpPost]
-        //public IActionResult GetMaterialsList(GetMaterialsVm matevm)
-        //{
-        //    try
-        //    {
-        //        var bolls = _mate.GetMaterialsList(matevm.SkuNo, matevm.SkuName, matevm.Type, matevm.IsInspect, matevm.Page, matevm.Limit, out int count);
-
-        //        return Ok(new { code = 0, count, msg = "鐗╂枡淇℃伅", data = bolls });
-        //    }
-        //    catch (Exception e)
-        //    {
-        //        return Ok(new { code = 1, msg = e.Message });
-        //    }
-        //}
-
 
         #region yyk
 
@@ -894,15 +609,9 @@
         /// <param name="categoryNo">绫诲埆缂栫爜</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment, string categoryNo)
+        public async Task<List<MaterialsDto>> GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment, string categoryNo)
         {
-            List<MaterialsDto> matedto = _mate.GetMateList(skuNo, skuName, auditStatusNo, type, isControlled, isInspect, environment, categoryNo);
-            return Ok(new
-            {
-                data = matedto,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _mate.GetMateList(skuNo, skuName, auditStatusNo, type, isControlled, isInspect, environment, categoryNo);
         }
 
         /// <summary>
@@ -911,15 +620,9 @@
         /// <param name="id">鐗╂枡id</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetMateById(int id)
+        public async Task<SysMaterials> GetMateById(int id)
         {
-            SysMaterials mate = _mate.GetMateById(id);
-            return Ok(new
-            {
-                data = mate,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _mate.GetMateById(id);
         }
 
         /// <summary>
@@ -927,31 +630,18 @@
         /// </summary>
         /// <param name="matedto">鐗╂枡dto</param>
         /// <returns></returns>
-        /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        public async Task<IActionResult> AddMate(MaterialsDto matedto)
+        public async Task AddMate(MaterialsDto matedto)
         {
-            //鎹曡幏寮傚父
-            try
+            await _mate.AddMate(matedto);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鍒涘缓浜�
-                matedto.CreateUser = uid;
-                //鏂板
-                int i = await _mate.AddMate(matedto);
-
-                await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂枡绠$悊", matedto.SkuNo, "娣诲姞", "娣诲姞鐗╂枡淇℃伅 鐗╂枡鍙凤細" + matedto.SkuNo, uid);
-                return Ok(new { data = i, code = 0, msg = "鎴愬姛" });
-
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父 
-                return Ok(new { code = 1, msg = "鏂板鐗╂枡寮傚父" + ex.Message });
-            }
+                ParentName = "鍩虹淇℃伅",
+                MenuName = "鐗╂枡绠$悊",
+                FkNo = matedto.SkuNo,
+                TypeName = "娣诲姞",
+                Msg = "娣诲姞鐗╂枡淇℃伅 鐗╂枡鍙凤細" + matedto.SkuNo
+            });
         }
 
         /// <summary>
@@ -961,45 +651,18 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpGet]
-        public async Task<IActionResult> DelMate(int id)
+        public async Task DelMate(int id)
         {
-            //鎹曡幏寮傚父
-            try
+            SysMaterials mate = await _mate.GetMateById(id);
+            await _mate.DelMate(mate);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                SysMaterials mate = _mate.GetMateById(id);
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                mate.UpdateUser = uid;
-                //鍒犻櫎
-                int i = await _mate.DelMate(mate);
-                //鍒ゆ柇鏄惁鍒犻櫎鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 1,
-                        msg = "澶辫触"
-                    });
-                }
-                else
-                {
-                    await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂枡绠$悊", mate.SkuNo, "鍒犻櫎", "鍒犻櫎鐗╂枡淇℃伅 鐗╂枡鍙凤細" + mate.SkuNo, uid);
-                    return Ok(new
-                    {
-                        data = i,
-                        code = 0,
-                        msg = "鎴愬姛"
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮傚父
-                throw new Exception("鍒犻櫎鐗╂枡寮傚父", ex);
-            }
+                ParentName = "鍩虹淇℃伅",
+                MenuName = "鐗╂枡绠$悊",
+                FkNo = mate.SkuNo,
+                TypeName = "鍒犻櫎",
+                Msg = "鍒犻櫎鐗╂枡淇℃伅 鐗╂枡鍙凤細" + mate.SkuNo
+            });
         }
 
         /// <summary>
@@ -1009,43 +672,17 @@
         /// <returns></returns>
         /// <exception cref="Exception">鎹曡幏寮傚父</exception>
         [HttpPost]
-        public async Task<IActionResult> ExitMate(MaterialsDto matedto)
+        public async Task ExitMate(MaterialsDto matedto)
         {
-            //鎹曡幏寮傚父
-            try
+            await _mate.ExitMate(matedto);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                //鑾峰彇褰撳墠鎿嶄綔鐢ㄦ埛id
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                int uid = Convert.ToInt32(userId);
-                //鏇存柊浜�
-                matedto.UpdateUser = uid;
-                //缂栬緫
-                int i = await _mate.ExitMate(matedto);
-                //鍒ゆ柇鏄惁缂栬緫鎴愬姛
-                if (i == 0)
-                {
-                    return Ok(new { data = i, code = 1, msg = "淇敼澶辫触" });
-                }
-                else if (i == 2)
-                {
-                    return Ok(new { data = i, code = 2, msg = "涓存湡澶╂暟涓嶅彲澶т簬365鍙婂皬浜�30" });
-                }
-                //else if (i == 4)
-                //{
-                //    return Ok(new { data = i, code = 4, msg = "浣庡簱瀛樹笉鍙珮浜�1000" });
-                //}
-                else
-                {
-                    await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂枡绠$悊", matedto.SkuNo, "淇敼", "缂栬緫鐗╂枡淇℃伅 鐗╂枡鍙凤細" + matedto.SkuNo, uid);
-                    return Ok(new { data = i, code = 0, msg = "淇敼鎴愬姛" });
-                }
-            }
-            catch (Exception ex)
-            {
-                //鎶涘嚭寮�
-                return Ok(new { code = 1, msg = "缂栬緫鐗╂枡寮傚父" + ex.Message });
-            }
+                ParentName = "鍩虹淇℃伅",
+                MenuName = "鐗╂枡绠$悊",
+                FkNo = matedto.SkuNo,
+                TypeName = "缂栬緫",
+                Msg = "缂栬緫鐗╂枡淇℃伅 鐗╂枡鍙凤細" + matedto.SkuNo
+            });
         }
 
         #region 鍖呰 鍗曚綅
@@ -1055,15 +692,9 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetUnitList()
+        public async Task<List<SysUnit>> GetUnitList()
         {
-            List<SysUnit> unitlist = _mate.GetUnitList();
-            return Ok(new
-            {
-                data = unitlist,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _mate.GetUnitList();
         }
 
         /// <summary>
@@ -1071,15 +702,9 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetPackagList()
+        public async Task<List<SysPackag>> GetPackagList()
         {
-            List<SysPackag> packlist = _mate.GetPackagList();
-            return Ok(new
-            {
-                data = packlist,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _mate.GetPackagList();
         }
 
         #endregion
@@ -1267,18 +892,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetCustomerList(GetCustomerVm model)
+        public async Task<SqlSugarPagedList<CustomerDto>> GetCustomerList(GetCustomerVm model)
         {
-            try
-            {
-                var bolls = _customerSvc.GetCustomerList(model.CustomerNo, model.CustomerName, model.Type, model.LinkMan, model.Phone, 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 _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 };
         }
         /// <summary>
         /// 鏌ヨ鍗曟潯瀹㈡埛淇℃伅
@@ -1286,36 +904,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetCustomer(IdVm model)
+        public async Task<SysCustomer> GetCustomer(IdVm model)
         {
-            try
-            {
-                var bolls = _customerSvc.GetCustomer(model.Id);
-
-                return Ok(new { code = 0, count = 0, msg = "瀹㈡埛淇℃伅", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _customerSvc.GetCustomer(model.Id);
         }
         /// <summary>
         /// 鏌ヨ鍏ㄩ儴瀹㈡埛淇℃伅
         /// </summary> 
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetCustomerSelect()
+        public async Task<List<SysCustomer>> GetCustomerSelect()
         {
-            try
-            {
-                var bolls = _customerSvc.GetCustomerSelect();
-
-                return Ok(new { code = 0, count = 0, msg = "瀹㈡埛淇℃伅", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _customerSvc.GetCustomerSelect();
         }
         /// <summary>
         /// 娣诲姞瀹㈡埛淇℃伅
@@ -1323,38 +923,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult AddCustomer(AddCustomerVm model)
+        [UnitOfWork]
+        public async Task AddCustomer(AddCustomerVm 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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _customerSvc.AddCustomer(model.CustomerNo, model.CustomerName, model.Type, model.Address, model.LinkMan, model.Phone, model.BankAccount, model.CreditRating, model.Demo, int.Parse(userId));
-
-                if (bolls)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", model.CustomerNo, "娣诲姞", "娣诲姞瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + model.CustomerNo, Convert.ToInt32(userId));
-                    return Ok(new { code = 0, msg = "娣诲姞鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "娣诲姞澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _customerSvc.AddCustomer(model.CustomerNo, model.CustomerName, model.Type, model.Address, model.LinkMan, model.Phone, model.BankAccount, model.CreditRating, model.Demo, _userManager.UserId);
+            await _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", model.CustomerNo, "娣诲姞", "娣诲姞瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + model.CustomerNo, _userManager.UserId);
         }
         /// <summary>
         /// 缂栬緫瀹㈡埛淇℃伅
@@ -1362,38 +935,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult EditCustomer(EditCustomerVm model)
+        [UnitOfWork]
+        public async Task EditCustomer(EditCustomerVm 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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _customerSvc.EditCustomer(model.Id, model.CustomerNo, model.CustomerName, model.Type, model.Address, model.LinkMan, model.Phone, model.BankAccount, model.CreditRating, model.Demo, int.Parse(userId));
-
-                if (bolls)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", model.CustomerNo, "缂栬緫", "缂栬緫瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + model.CustomerNo, Convert.ToInt32(userId));
-                    return Ok(new { code = 0, msg = "缂栬緫鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "缂栬緫澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _customerSvc.EditCustomer(model.Id, model.CustomerNo, model.CustomerName, model.Type, model.Address, model.LinkMan, model.Phone, model.BankAccount, model.CreditRating, model.Demo, _userManager.UserId);
+            await _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", model.CustomerNo, "缂栬緫", "缂栬緫瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + model.CustomerNo, _userManager.UserId);
         }
         /// <summary>
         /// 鍒犻櫎瀹㈡埛淇℃伅
@@ -1401,38 +947,12 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelCustomer(IdVm model)
+        [UnitOfWork]
+        public async Task DelCustomer(IdVm model)
         {
-            try
-            {
-                SysCustomer customer = _customerSvc.GetCustomer(model.Id);
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _customerSvc.DelCustomer(model.Id, int.Parse(userId));
-                if (bolls)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", customer.CustomerNo, "鍒犻櫎", "鍒犻櫎瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + customer.CustomerNo, Convert.ToInt32(userId));
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            SysCustomer customer = await _customerSvc.GetCustomer(model.Id);
+            var bolls = await _customerSvc.DelCustomer(model.Id, _userManager.UserId);
+            await _operation.InsertOperation("鍩虹淇℃伅", "瀹㈡埛绠$悊", customer.CustomerNo, "鍒犻櫎", "鍒犻櫎瀹㈡埛淇℃伅 瀹㈡埛鍙凤細" + customer.CustomerNo, _userManager.UserId);
         }
         /// <summary>
         /// 鍒犻櫎瀹㈡埛淇℃伅(澶氬垹闄�)
@@ -1440,36 +960,10 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelsCustomer(IdVm model)
+        [UnitOfWork]
+        public async Task DelsCustomer(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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _customerSvc.DelsCustomer(model.Ids, int.Parse(userId));
-                if (bolls)
-                {
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _customerSvc.DelsCustomer(model.Ids, _userManager.UserId);
         }
         #endregion
 
@@ -1480,18 +974,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetLogisticsInfoList(GetLogisticsInfoVm model)
+        public async Task<SqlSugarPagedList<LogisticsInfoDto>> GetLogisticsInfoList(GetLogisticsInfoVm model)
         {
-            try
-            {
-                var bolls = _logisticsSvc.GetLogisticsInfoList(model.CarrierName, model.LinkMan, model.Phone, model.LicensePlate, model.Type, 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 list = await _logisticsSvc.GetLogisticsInfoList(model.CarrierName, model.LinkMan, model.Phone, model.LicensePlate, model.Type, model.Page, model.Limit, count);
+            return new SqlSugarPagedList<LogisticsInfoDto>() { Items = list, Total = count };
         }
         /// <summary>
         /// 鏌ヨ鍗曟潯鐗╂祦淇℃伅
@@ -1499,36 +986,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetLogisticsInfo(IdVm model)
+        public async Task<SysLogisticsInfo> GetLogisticsInfo(IdVm model)
         {
-            try
-            {
-                var bolls = _logisticsSvc.GetLogisticsInfo(model.Id);
-
-                return Ok(new { code = 0, data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _logisticsSvc.GetLogisticsInfo(model.Id);
         }
         /// <summary>
         /// 鏌ヨ鍏ㄩ儴鐗╂祦淇℃伅
         /// </summary> 
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetLogisticsInfoSelect()
+        public async Task<List<SysLogisticsInfo>> GetLogisticsInfoSelect()
         {
-            try
-            {
-                var bolls = _logisticsSvc.GetLogisticsInfoSelect();
-
-                return Ok(new { code = 0, data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _logisticsSvc.GetLogisticsInfoSelect();
         }
 
         /// <summary>
@@ -1537,38 +1006,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult AddLogisticsInfo(AddLogisticsInfoVm model)
+        [UnitOfWork]
+        public async Task AddLogisticsInfo(AddLogisticsInfoVm 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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _logisticsSvc.AddLogisticsInfo(model, int.Parse(userId));
-
-                if (bolls)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", model.CarrierName, "娣诲姞", "娣诲姞鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + model.CarrierName, Convert.ToInt32(userId));
-                    return Ok(new { code = 0, msg = "娣诲姞鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "娣诲姞澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _logisticsSvc.AddLogisticsInfo(model, _userManager.UserId);
+            await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", model.CarrierName, "娣诲姞", "娣诲姞鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + model.CarrierName, _userManager.UserId);
         }
         /// <summary>
         /// 缂栬緫鐗╂祦淇℃伅
@@ -1576,38 +1018,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult EditLogisticsInfo(EditLogisticsInfoVm model)
+        [UnitOfWork]
+        public async Task EditLogisticsInfo(EditLogisticsInfoVm 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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _logisticsSvc.EditLogisticsInfo(model, int.Parse(userId));
-
-                if (bolls)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", model.CarrierName, "缂栬緫", "缂栬緫鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + model.CarrierName, Convert.ToInt32(userId));
-                    return Ok(new { code = 0, msg = "缂栬緫鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "缂栬緫澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _logisticsSvc.EditLogisticsInfo(model, _userManager.UserId);
+            await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", model.CarrierName, "缂栬緫", "缂栬緫鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + model.CarrierName, _userManager.UserId);
         }
         /// <summary>
         /// 鍒犻櫎鐗╂祦淇℃伅
@@ -1615,39 +1030,12 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelLogisticsInfo(IdVm model)
+        [UnitOfWork]
+        public async Task DelLogisticsInfo(IdVm model)
         {
-            try
-            {
-                SysLogisticsInfo logisit = _logisticsSvc.GetLogisticsInfo(model.Id);
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _logisticsSvc.DelLogisticsInfo(model.Id, int.Parse(userId));
-                if (bolls)
-                {
-
-                    _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", logisit.CarrierName, "鍒犻櫎", "鍒犻櫎鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + logisit.CarrierName, Convert.ToInt32(userId));
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _logisticsSvc.DelLogisticsInfo(model.Id, _userManager.UserId);
+            SysLogisticsInfo logisit = await _logisticsSvc.GetLogisticsInfo(model.Id);
+            await _operation.InsertOperation("鍩虹淇℃伅", "鐗╂祦绠$悊", logisit.CarrierName, "鍒犻櫎", "鍒犻櫎鐗╂祦淇℃伅 鍏徃鍚嶇О锛�" + logisit.CarrierName, _userManager.UserId);
         }
         /// <summary>
         /// 鍒犻櫎鐗╂祦淇℃伅(澶氭潯淇℃伅)
@@ -1655,36 +1043,10 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelsLogisticsInfo(IdVm model)
+        [UnitOfWork]
+        public async Task DelsLogisticsInfo(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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-
-                var bolls = _logisticsSvc.DelsLogisticsInfo(model.Ids, int.Parse(userId));
-                if (bolls)
-                {
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _logisticsSvc.DelsLogisticsInfo(model.Ids, _userManager.UserId);
         }
         #endregion
 
@@ -1696,18 +1058,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetUnitList(GetUnitVm model)
+        public async Task<SqlSugarPagedList<UnitDto>> GetUnitList(GetUnitVm model)
         {
-            try
-            {
-                var list = _unitSvc.GetUnitList(model.UnitNo, model.UnitName, model.Page, model.Limit, out int count);
-
-                return Ok(new { code = 0, count, msg = "鐗╂祦淇℃伅", data = list });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            RefAsync<int> count = new RefAsync<int>();
+            var list = await _unitSvc.GetUnitList(model.UnitNo, model.UnitName, model.Page, model.Limit, count);
+            return new SqlSugarPagedList<UnitDto>() { Items = list, Total = count };
         }
         /// <summary>
         /// 鏌ヨ鍗曟潯鍗曚綅淇℃伅
@@ -1715,24 +1070,9 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetUnit(IdVm model)
+        public async Task<SysUnit> GetUnit(IdVm model)
         {
-            try
-            {
-                var data = _unitSvc.GetUnit(model.Id);
-                if (data != null)
-                {
-                    return Ok(new { code = 0, data });
-                }
-                else
-                {
-                    return Ok(new { code = 1, data = "鏈煡璇㈠埌鐗╂祦淇℃伅" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _unitSvc.GetUnit(model.Id);
         }
         /// <summary>
         /// 娣诲姞璁¢噺淇℃伅
@@ -1740,43 +1080,16 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult AddUnit(AddEditUnitVm model)
+        [UnitOfWork]
+        public async Task AddUnit(AddEditUnitVm model)
         {
             if (ModelState.IsValid)
             {
-                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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                    }
-
-                    var bolls = _unitSvc.AddUnit(model.UnitName, model.Abbrev, int.Parse(userId));
-
-                    if (bolls)
-                    {
-                        return Ok(new { code = 0, msg = "娣诲姞鎴愬姛" });
-                    }
-                    else
-                    {
-                        return Ok(new { code = 1, msg = "娣诲姞澶辫触" });
-                    }
-                }
-                catch (Exception e)
-                {
-                    return Ok(new { code = 1, msg = e.Message });
-                }
+                await _unitSvc.AddUnit(model.UnitName, model.Abbrev, _userManager.UserId);
             }
             else
             {
-                return Ok(new { code = 1, msg = "鏁版嵁鏍煎紡閿欒" });
+                throw Oops.Bah("鏁版嵁鏍煎紡閿欒");
             }
 
         }
@@ -1786,45 +1099,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult EditUnit(AddEditUnitVm model)
+        [UnitOfWork]
+        public async Task EditUnit(AddEditUnitVm model)
         {
             if (ModelState.IsValid)
             {
-                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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                    }
-
-                    var bolls = _unitSvc.EditUnit(model.Id, model.UnitName, model.Abbrev, int.Parse(userId));
-
-                    if (bolls)
-                    {
-                        SysUnit unit = _unitSvc.GetUnit(model.Id);
-                        _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", unit.UnitNo, "缂栬緫", "缂栬緫璁¢噺鍗曚綅 鍗曚綅鍚嶇О锛�" + unit.UnitNo, Convert.ToInt32(userId));
-                        return Ok(new { code = 0, msg = "缂栬緫鎴愬姛" });
-                    }
-                    else
-                    {
-                        return Ok(new { code = 1, msg = "缂栬緫澶辫触" });
-                    }
-                }
-                catch (Exception e)
-                {
-                    return Ok(new { code = 1, msg = e.Message });
-                }
+                await _unitSvc.EditUnit(model.Id, model.UnitName, model.Abbrev, _userManager.UserId);
+                SysUnit unit = await _unitSvc.GetUnit(model.Id);
+                await _operation.InsertOperation("鍩虹淇℃伅", "璁¢噺鍗曚綅", unit.UnitNo, "缂栬緫", "缂栬緫璁¢噺鍗曚綅 鍗曚綅鍚嶇О锛�" + unit.UnitNo, _userManager.UserId);
             }
             else
             {
-                return Ok(new { code = 1, msg = "鏁版嵁鏍煎紡閿欒" });
+                throw Oops.Bah("鏁版嵁鏍煎紡閿欒");
             }
 
         }
@@ -1834,35 +1120,10 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelUnit(IdVm model)
+        [UnitOfWork]
+        public async Task DelUnit(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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                var bolls = _unitSvc.DelUnit(model.Id, int.Parse(userId));
-                if (bolls)
-                {
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _unitSvc.DelUnit(model.Id, _userManager.UserId);
         }
         /// <summary>
         /// 鍒犻櫎璁¢噺鍗曚綅淇℃伅锛堝鍒犻櫎锛�
@@ -1870,53 +1131,14 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelsUnit(IdVm model)
+        [UnitOfWork]
+        public async Task DelsUnit(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 = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                var bolls = _unitSvc.DelsUnit(model.Ids, int.Parse(userId));
-                if (bolls)
-                {
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            var bolls = await _unitSvc.DelsUnit(model.Ids, _userManager.UserId);
         }
         #endregion
 
         #region 鍖呰绠$悊
-        private string UserId;
-        //public BasisController() 
-        //{
-        //    var claimsIdentity = this.User.Identity as ClaimsIdentity;
-        //    if (claimsIdentity == null)
-        //    {
-        //        throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-        //    }
-        //    UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-        //    if (string.IsNullOrWhiteSpace(UserId))
-        //    {
-        //        throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-        //    }
-        //}
 
         /// <summary>
         /// 鏌ヨ鍖呰淇℃伅
@@ -1924,18 +1146,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetPackagList(GetPackagVm model)
+        public async Task<SqlSugarPagedList<PackagDto>> GetPackagList(GetPackagVm model)
         {
-            try
-            {
-                var list = _packagSvc.GetPackagList(model.PackagNo, model.PackagName, model.Level, model.Page, model.Limit, out int count);
-
-                return Ok(new { code = 0, count, msg = "鐗╂祦淇℃伅", data = list });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            RefAsync<int> count = new RefAsync<int>();
+            var list = await _packagSvc.GetPackagList(model.PackagNo, model.PackagName, model.Level, model.Page, model.Limit, count);
+            return new SqlSugarPagedList<PackagDto> { Items = list, Total = count };
         }
 
         /// <summary>
@@ -1944,15 +1159,9 @@
         /// <param name="id">鍖呰id</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult GetPackagById(int id)
+        public async Task<SysPackag> GetPackagById(int id)
         {
-            SysPackag packag = _packagSvc.GetPackagById(id);
-            return Ok(new
-            {
-                data = packag,
-                code = 0,
-                msg = "鎴愬姛"
-            });
+            return await _packagSvc.GetPackagById(id);
         }
 
         /// <summary>
@@ -1961,47 +1170,11 @@
         /// <param name="model">鍖呰淇℃伅</param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult AddPackag(AddEditPackagVm model)
+        [UnitOfWork]
+        public async Task AddPackag(AddEditPackagVm model)
         {
-            try
-            {
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-                UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(UserId))
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                model.CreateUser = int.Parse(UserId);
-                int i = _packagSvc.AddPackag(model);
-
-                if (i == 1)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "鍖呰绠$悊", model.PackagNo, "娣诲姞", "娣诲姞鍖呰淇℃伅 鍖呰缂栧彿锛�" + model.PackagNo, Convert.ToInt32(UserId));
-                    return Ok(new { code = 0, msg = "娣诲姞鎴愬姛" });
-                }
-                else if (i > 1)
-                {
-                    return Ok(new { code = i, msg = "鍖呰绛夌骇涓嶅彲瓒婄骇娣诲姞" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "娣诲姞澶辫触" });
-                }
-            }
-
-            catch (Exception e)
-            {
-                return Ok(new
-                {
-                    code = 1,
-                    msg = e.Message
-                });
-            }
+            await _packagSvc.AddPackag(model);
+            await _operation.InsertOperation("鍩虹淇℃伅", "鍖呰绠$悊", model.PackagNo, "娣诲姞", "娣诲姞鍖呰淇℃伅 鍖呰缂栧彿锛�" + model.PackagNo, _userManager.UserId);
         }
 
         /// <summary>
@@ -2010,42 +1183,11 @@
         /// <param name="model">鍖呰淇℃伅</param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult EditPackag(AddEditPackagVm model)
+        [UnitOfWork]
+        public async Task EditPackag(AddEditPackagVm model)
         {
-            try
-            {
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-                UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(UserId))
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                model.CreateUser = int.Parse(UserId);
-                int i = _packagSvc.EditPackag(model);
-
-                if (i == 1)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "鍖呰绠$悊", model.PackagNo, "缂栬緫", "缂栬緫鍖呰淇℃伅 鍖呰缂栧彿锛�" + model.PackagNo, Convert.ToInt32(UserId));
-                    return Ok(new { code = 0, msg = "缂栬緫鎴愬姛" });
-                }
-                if (i == 2)
-                {
-                    return Ok(new { code = i, msg = "鍖呰绛夌骇涓嶅彲瓒婄骇淇敼 璇烽噸鏂拌緭鍏�" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "缂栬緫澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _packagSvc.EditPackag(model);
+            await _operation.InsertOperation("鍩虹淇℃伅", "鍖呰绠$悊", model.PackagNo, "缂栬緫", "缂栬緫鍖呰淇℃伅 鍖呰缂栧彿锛�" + model.PackagNo, _userManager.UserId);
         }
 
         /// <summary>
@@ -2054,37 +1196,11 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelPackag(AddEditPackagVm model)
+        [UnitOfWork]
+        public async Task DelPackag(AddEditPackagVm model)
         {
-            try
-            {
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-                UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(UserId))
-                {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                var bolls = _packagSvc.DelPackag(model.Id, int.Parse(UserId));
-
-                if (bolls)
-                {
-                    _operation.InsertOperation("鍩虹淇℃伅", "鍖呰绠$悊", model.PackagNo, "鍒犻櫎", "鍒犻櫎鍖呰淇℃伅 鍖呰缂栧彿锛�" + model.PackagNo, Convert.ToInt32(UserId));
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "鍒犻櫎澶辫触" });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            await _packagSvc.DelPackag(model.Id, _userManager.UserId);
+            await _operation.InsertOperation("鍩虹淇℃伅", "鍖呰绠$悊", model.PackagNo, "鍒犻櫎", "鍒犻櫎鍖呰淇℃伅 鍖呰缂栧彿锛�" + model.PackagNo, _userManager.UserId);
         }
         #endregion
 
@@ -2122,18 +1238,9 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetInterfaceList(InterfaceVm model)
+        public async Task<SqlSugarPagedList<InterfaceDto>> GetInterfaceList(InterfaceVm model)
         {
-            try
-            {
-                var models = _interface.GetInterfaceList(model, out int count);
-
-                return Ok(new { code = 0, count, msg = "鎺ュ彛鍒楄〃", data = models });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _interface.GetInterfaceList(model);
         }
 
         /// <summary>
@@ -2142,18 +1249,9 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetInterfaceDetailList(InterfaceDetailVm model)
+        public async Task<SqlSugarPagedList<InterfaceDetailDto>> GetInterfaceDetailList(InterfaceDetailVm model)
         {
-            try
-            {
-                var models = _interface.GetInterfaceDetailList(model, out int count);
-
-                return Ok(new { code = 0, count, msg = "鎺ュ彛鏄庣粏鍒楄〃", data = models });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return await _interface.GetInterfaceDetailList(model);
         }
 
         /// <summary>
@@ -2162,41 +1260,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult AddInterface(InterfaceVm model)
+        [UnitOfWork]
+        public async Task AddInterface(InterfaceVm model)
         {
-            try
+            await _interface.AddInterface(model);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                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("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                model.CreateUser = int.Parse(UserId);
-                string strMesage = _interface.AddInterface(model);
-
-                if (strMesage == "")
-                {
-                    return Ok(new { code = 0, msg = "娣诲姞鎴愬姛" });
-                }
-                if (strMesage.Contains("-1"))
-                {
-                    return Ok(new { code = 1, msg = strMesage });
-                }
-                else
-                {
-                    return Ok(new { code = 0, msg = strMesage });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鎺ュ彛绠$悊",
+                FkNo = model.InterfaceNo,
+                TypeName = "娣诲姞",
+                Msg = $"娣诲姞浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�"
+            });
         }
 
         /// <summary>
@@ -2205,41 +1280,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult EditInterface(InterfaceVm model)
+        [UnitOfWork]
+        public async Task EditInterface(InterfaceVm model)
         {
-            try
+            await _interface.EditInterface(model);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                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("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                model.CreateUser = int.Parse(UserId);
-                string strMesage = _interface.EditInterface(model);
-
-                if (strMesage == "")
-                {
-                    return Ok(new { code = 0, msg = "缂栬緫鎴愬姛" });
-                }
-                if (strMesage.Contains("-1"))
-                {
-                    return Ok(new { code = 0, msg = "閮ㄥ垎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = strMesage });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鎺ュ彛绠$悊",
+                FkNo = model.InterfaceNo,
+                TypeName = "缂栬緫",
+                Msg = $"缂栬緫浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�"
+            });
         }
 
         /// <summary>
@@ -2248,37 +1300,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelInterface(InterfaceVm model)
+        [UnitOfWork]
+        public async Task DelInterface(InterfaceVm model)
         {
-            try
+            await _interface.DelInterface(model);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                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("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                model.CreateUser = int.Parse(UserId);
-                string strMesage = _interface.DelInterface(model);
-
-                if (strMesage == "")
-                {
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = strMesage });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鎺ュ彛绠$悊",
+                FkNo = model.InterfaceNo,
+                TypeName = "缂栬緫",
+                Msg = $"鍒犻櫎浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�"
+            });
         }
 
         /// <summary>
@@ -2287,37 +1320,18 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult DelInterfaceDetail(InterfaceDetailVm model)
+        [UnitOfWork]
+        public async Task DelInterfaceDetail(InterfaceDetailVm model)
         {
-            try
+            await _interface.DelInterfaceDetail(model);
+            await _operation.InsertOperation(new OperationInputVm()
             {
-                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("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }
-
-                model.CreateUser = int.Parse(UserId);
-                string strMesage = _interface.DelInterfaceDetail(model);
-
-                if (strMesage == "")
-                {
-                    return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = strMesage });
-                }
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+                ParentName = "绯荤粺璁剧疆",
+                MenuName = "鎺ュ彛绠$悊",
+                FkNo = model.InterfaceNo,
+                TypeName = "缂栬緫",
+                Msg = $"鍒犻櫎浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭紝鏈郴缁熷瓧娈典负{model.Field}鐨勬帴鍙d俊鎭�"
+            });
         }
         #endregion
     }
diff --git a/Wms/Wms/Controllers/SysController.cs b/Wms/Wms/Controllers/SysController.cs
index 8c5ed2e..9ab5be7 100644
--- a/Wms/Wms/Controllers/SysController.cs
+++ b/Wms/Wms/Controllers/SysController.cs
@@ -98,10 +98,10 @@
         /// <param name="level">灞傜骇</param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level)
+        public async Task<IActionResult> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level)
         {
             //鏌ヨ鑿滃崟淇℃伅鍒楄〃
-            List<FunctionMenuVm> menulist = _menuSvc.GetMenuList(MenuName, pMenuNo, MenuNo, level);
+            List<FunctionMenuVm> menulist = await _menuSvc.GetMenuList(MenuName, pMenuNo, MenuNo, level);
             return Ok(new
             {
                 data = menulist,

--
Gitblit v1.8.0