From bf1a9a818ffb721aea2709e9409fbb932b07e81d Mon Sep 17 00:00:00 2001
From: yyk <2336760928@qq.com>
Date: 星期四, 18 七月 2024 15:55:54 +0800
Subject: [PATCH] Merge branch 'master' into yyk

---
 Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs     |    8 
 Wms/WMS.BLL/LogServer/OperationSOServer.cs            |   51 
 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs          |  108 +
 HTML/views/SOSetting/ExportAllot.html                 |    2 
 Wms/Model/InterFaceModel/SoModel.cs                   |    7 
 Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs      |    3 
 Wms/WMS.BLL/BllSoServer/WaveMageServer.cs             |   76 
 Wms/Wms/Controllers/BllCheckController.cs             |   14 
 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs        |  983 ++++++++----
 Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs       |  150 -
 Wms/WMS.IBLL/ILogServer/IOperationSOServer.cs         |    6 
 Wms/WMS.Entity/LogEntity/LogTask.cs                   |    2 
 HTML/views/ASNSetting/ArrivalNotice.html              |    1 
 Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs    |    5 
 Wms/WMS.IBLL/IBllSoServer/IWaveMageServer.cs          |    5 
 HTML/views/SOSetting/ExportNotice.html                |   70 
 Wms/WMS.BLL/SysServer/PalletsServer.cs                |   11 
 Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs   |    8 
 Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs          |  118 
 HTML/views/HouseWithinSetting/StockCheck.html         | 1396 +++++++++--------
 Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs    |    6 
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs       |  596 ++++---
 Wms/WMS.BLL/BllSoServer/ExportNoticeDetailServer.cs   |   92 
 Wms/Wms/Controllers/BllAsnController.cs               |   90 
 Wms/WMS.BLL/LogServer/OperationCrServer.cs            |    2 
 Wms/WMS.IBLL/IBllSoServer/IExportAllotServer.cs       |    5 
 Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs  |    5 
 HTML/views/ASNSetting/ArrivalNoticeDetail.html        |   68 
 HTML/views/ASNSetting/SelMaterials.html               |  502 +++---
 Pda/View/login.html                                   |    4 
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs         |  153 -
 Wms/Wms/Controllers/BllSoController.cs                |   79 
 Wms/WMS.Entity/BllAsnEntity/BllArrivalNoticeDetail.cs |    8 
 Wms/Wms/Controllers/DownApiController.cs              |   59 
 34 files changed, 2,569 insertions(+), 2,124 deletions(-)

diff --git a/HTML/views/ASNSetting/ArrivalNotice.html b/HTML/views/ASNSetting/ArrivalNotice.html
index 5de5a3c..3d4ae65 100644
--- a/HTML/views/ASNSetting/ArrivalNotice.html
+++ b/HTML/views/ASNSetting/ArrivalNotice.html
@@ -486,7 +486,6 @@
 						height: h1,
 						id: 'LAY-app-content-list',
 						where: param,
-
 						contentType: 'application/json',
 						headers: { ToKen: $.cookie('token') },
 						page: true,
diff --git a/HTML/views/ASNSetting/ArrivalNoticeDetail.html b/HTML/views/ASNSetting/ArrivalNoticeDetail.html
index 3c7406f..c8893fe 100644
--- a/HTML/views/ASNSetting/ArrivalNoticeDetail.html
+++ b/HTML/views/ASNSetting/ArrivalNoticeDetail.html
@@ -25,14 +25,22 @@
 		.layui-table-mend {
 			position: relative;
 		}
+
 		.input-dis {
-			position: absolute; /* 璁剧疆涓虹粷瀵瑰畾浣� */
-			top: -25%; /* 椤堕儴瀵归綈 */
-			right: 0; /* 鍙充晶瀵归綈 */
-			bottom: 0; /* 搴曢儴瀵归綈 */
-			left: 0; /* 宸︿晶瀵归綈 */
-			width: 100%; /* 瀹藉害璁剧疆涓�100% */
-			height: 150%; /* 楂樺害璁剧疆涓�100% */
+			position: absolute;
+			/* 璁剧疆涓虹粷瀵瑰畾浣� */
+			top: -25%;
+			/* 椤堕儴瀵归綈 */
+			right: 0;
+			/* 鍙充晶瀵归綈 */
+			bottom: 0;
+			/* 搴曢儴瀵归綈 */
+			left: 0;
+			/* 宸︿晶瀵归綈 */
+			width: 100%;
+			/* 瀹藉害璁剧疆涓�100% */
+			height: 150%;
+			/* 楂樺害璁剧疆涓�100% */
 			background-color: transparent;
 			border: none;
 			text-align: center;
@@ -59,26 +67,11 @@
 			<label class="layui-form-label">鍗曟嵁绫诲瀷</label>
 			<div class="layui-input-inline">
 				<select name="Type" id="Type" lay-filter="Type" lay-search>
-					<!-- JC23 -->
 					<option value="0">鎴愬搧鍏ュ簱</option>
 					<option value="1">閲囪喘鍏ュ簱</option>
-					<option value="4">杞﹂棿浣欐枡閫�鍥炲叆搴�</option>
-					<option value="5">鍏跺畠鍏ュ簱</option>
-					<option value="6">浠e偍鍏ュ簱</option>
-					<!-- <option value=""></option> -->
-					<!-- JC24 -->
-					<!-- <option value="0" selected>鎴愬搧鍏ュ簱</option>
-					<option value="1">閲囪喘鍏ュ簱</option>
-					<option value="2">涓棿鍝佸叆搴�</option> -->
-					<!-- <option value="3">閫�璐у叆搴�</option> -->
-					<!-- <option value="4">杞﹂棿浣欐枡閫�鍥炲叆搴�</option>
-					<option value="5">鍏跺畠鍏ュ簱</option>
-					<option value="6">浠e偍鍏ュ簱</option>
-					<option value="7">瀵勫瓨鍏ュ簱</option> -->
-					<!-- JC08 -->
-					<!-- <option value="0">鎴愬搧鍏ュ簱</option>
-					<option value="1">鍘熸枡鍏ュ簱</option>
-					<option value="2">閫�璐у叆搴�</option> -->
+					<option value="2">涓棿鍝佸叆搴�</option>
+					<option value="3">閫�璐у叆搴�</option>
+					<option value="4">浣欐枡閫�鍥炲叆搴�</option>
 				</select>
 			</div>
 
@@ -259,7 +252,7 @@
 							if (elem.data('value') != '' && elem.data('value') != undefined) {
 								elem.val(elem.data('value')).parents('table.layui-table-cell').css('overflow', 'visible');
 							}
-						});						
+						});
 						form.render();
 						//鑷畾涔夊垪瀹�
 						SetTableColW('LAY-app-content-list', 'BllAsn/GetArrivalNoticeDetailList2', TotalColsSysArr);
@@ -409,29 +402,6 @@
 					}
 				}
 			})
-
-			// var IsBaleValue = "";
-			// form.on('switch(IsBaleDemo)', function (obj) {
-			// 	layer.tips(this.value + ' ' + this.name + '锛�' + obj.elem.checked, obj.othis);
-			// 	if (obj.elem.checked) {
-			// 		IsBaleValue = "1";
-			// 	} else {
-			// 		IsBaleValue = "0";
-			// 	}
-			// });
-
-			// table.on('row(LAY-app-content-list)', function (obj) {
-			// 	if (IsBaleValue != "") {
-			// 		for (var j in arr) {
-			// 			if (obj.data.SkuNo == arr[j].SkuNo) {
-			// 				arr[j].IsBale = IsBaleValue;
-			// 				IsBaleValue = ""
-			// 				break;
-			// 			}
-			// 		}
-			// 	}
-
-			// })
 
 			// 鍒犻櫎鍏ュ簱鍗曟槑缁�
 			table.on('tool(LAY-app-content-list)', function (obj) {
diff --git a/HTML/views/ASNSetting/SelMaterials.html b/HTML/views/ASNSetting/SelMaterials.html
index 574025d..f6b7452 100644
--- a/HTML/views/ASNSetting/SelMaterials.html
+++ b/HTML/views/ASNSetting/SelMaterials.html
@@ -1,283 +1,271 @@
 <!DOCTYPE html>
 <html>
-	<head>
-		<meta charset="utf-8">
-		<title>閫夋嫨鐗╂枡淇℃伅</title>
-		<meta name="renderer" content="webkit">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-		<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-	</head>
-	<body>
 
-		<div class="layui-fluid">
-			<div class="layui-card">
-				<div class="layui-form layui-card-header layuiadmin-card-header-auto">
-					<div class="layui-form-item">
-						<div class="layui-inline">
-							<label class="layui-form-label">鍏抽敭瀛�</label>
-							<div class="layui-input-inline">
-								<input type="text" id="Msg" name="Msg" placeholder="缂栫爜/鍚嶇О/瑙勬牸" autocomplete="off" class="layui-input">
-							</div>
-						</div>
-						<div class="layui-inline">
-							<label class="layui-form-label">鍗曟嵁绫诲瀷</label>
-							<div class="layui-input-inline">
-								<select name="Type" id="Type" lay-filter="Type" disabled="disabled"
-									lay-search>
-									<option value="0">鎴愬搧鍏ュ簱</option>
-									<option value="1">閲囪喘鍏ュ簱</option>					
-									<option value="2">涓棿鍝佸叆搴�</option>
-									<option value="3">閫�璐у叆搴�</option>
-									<option value="4">杞﹂棿浣欐枡閫�鍥炲叆搴�</option>
-									<option value="5">鍏跺畠鍏ュ簱</option>
-									<option value="6">浠e偍鍏ュ簱</option>
-									<option value="7">瀵勫瓨鍏ュ簱</option>
-								</select>
-							</div>
-						</div>
-						<div class="layui-inline">
-							<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search">
-								<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>鎼滅储
-							</button>
-							<button class="layui-btn layui-btn-sm layuiadmin-btn-list" data-type="setParent">纭畾</button>
+<head>
+	<meta charset="utf-8">
+	<title>閫夋嫨鐗╂枡淇℃伅</title>
+	<meta name="renderer" content="webkit">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+	<meta name="viewport"
+		content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+	<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+</head>
+
+<body>
+
+	<div class="layui-fluid">
+		<div class="layui-card">
+			<div class="layui-form layui-card-header layuiadmin-card-header-auto">
+				<div class="layui-form-item">
+					<div class="layui-inline">
+						<label class="layui-form-label">鍏抽敭瀛�</label>
+						<div class="layui-input-inline">
+							<input type="text" id="Msg" name="Msg" placeholder="缂栫爜/鍚嶇О/瑙勬牸" autocomplete="off"
+								class="layui-input">
 						</div>
 					</div>
-				</div>
-				<div class="layui-card-body">
-					<table id="goods-list" lay-filter="goods-list"></table>
+					<div class="layui-inline">
+						<label class="layui-form-label">鍗曟嵁绫诲瀷</label>
+						<div class="layui-input-inline">
+							<select name="Type" id="Type" lay-filter="Type" disabled="disabled" lay-search>
+								<option value="0">鎴愬搧鍏ュ簱</option>
+								<option value="1">閲囪喘鍏ュ簱</option>
+								<option value="2">涓棿鍝佸叆搴�</option>
+								<option value="3">閫�璐у叆搴�</option>
+								<option value="4">浣欐枡閫�鍥炲叆搴�</option>
+							</select>
+						</div>
+					</div>
+					<div class="layui-inline">
+						<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
+							lay-filter="LAY-app-contlist-search">
+							<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>鎼滅储
+						</button>
+						<button class="layui-btn layui-btn-sm layuiadmin-btn-list" data-type="setParent">纭畾</button>
+					</div>
 				</div>
 			</div>
+			<div class="layui-card-body">
+				<table id="goods-list" lay-filter="goods-list"></table>
+			</div>
 		</div>
+	</div>
 
-		<script src="../../layuiadmin/layui/layui.js"></script>
-		<script src="../../js/jquery-3.5.1.min.js"></script>
-		<script src="../../js/jquery.cookie.js"></script>
-		<script src="../../js/public.js"></script>
-		
-		<script>
-			layui.config({
-				base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
-			}).extend({
-				index: 'lib/index' //涓诲叆鍙fā鍧�
-			}).use(['index', 'table', 'laypage', 'layer'], function() {
-				var table = layui.table,
-					form = layui.form,
-					laypage = layui.laypage,
-					index1 = parent.layer.getFrameIndex(window.name),
-					layer = layui.layer;
+	<script src="../../layuiadmin/layui/layui.js"></script>
+	<script src="../../js/jquery-3.5.1.min.js"></script>
+	<script src="../../js/jquery.cookie.js"></script>
+	<script src="../../js/public.js"></script>
+
+	<script>
+		layui.config({
+			base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+		}).extend({
+			index: 'lib/index' //涓诲叆鍙fā鍧�
+		}).use(['index', 'table', 'laypage', 'layer'], function () {
+			var table = layui.table,
+				form = layui.form,
+				laypage = layui.laypage,
+				index1 = parent.layer.getFrameIndex(window.name),
+				layer = layui.layer;
 
 
-				// 鑾峰彇涓婃父椤甸潰鐨勪紶鍊�
-				getQueryString('type');
-				
+			// 鑾峰彇涓婃父椤甸潰鐨勪紶鍊�
+			getQueryString('type');
 
-				function getQueryString(name) {
-					var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
-					var r = window.location.search.substr(1).match(reg);
 
-					if (r != null)
-					{
-						// $("#Type").empty();
-						// if (unescape(r[2]) == 0)
-						// {
-						// 	$("#Type").append('<option value ="0" Selected >鏍囧噯鐗╂枡</option>');
-						// 	$("#Type").append('<option value ="1">闈炴爣鐗╂枡</option>');
-						// }
-						// if (unescape(r[2]) == 1)
-						// {
-						// 	$("#Type").append('<option value ="0">鏍囧噯鐗╂枡</option>');
-						// 	$("#Type").append('<option value ="1" Selected >闈炴爣鐗╂枡</option>');
-						// }
+			function getQueryString(name) {
+				var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+				var r = window.location.search.substr(1).match(reg);
 
-						
-						$("#Type").val(unescape(r[2])); // "optionValue"涓洪渶瑕佽閫変腑鐨勯�夐」鐨剉alue灞炴�у��
-						form.render('select');
-					} 
+				if (r != null) {
 
-					//return null;
+					$("#Type").val(unescape(r[2])); // "optionValue"涓洪渶瑕佽閫変腑鐨勯�夐」鐨剉alue灞炴�у��
+					form.render('select');
 				}
 
+				//return null;
+			}
 
-				refreshTable();
 
-				var active = {
-				  setParent: function(){
-					var checkStatus = table.checkStatus('goods-list');   
-				    var id = '#LAY-app-content-list',goods = $('#goods-list');
-					if(checkStatus.data.length == 0)
-					{
-					  parent.layer.msg('璇烽�夋嫨寰呭叆搴撶殑鐗╂枡锛�');
-					  return true;
+			refreshTable();
+
+			var active = {
+				setParent: function () {
+					var checkStatus = table.checkStatus('goods-list');
+					var id = '#LAY-app-content-list', goods = $('#goods-list');
+					if (checkStatus.data.length == 0) {
+						parent.layer.msg('璇烽�夋嫨寰呭叆搴撶殑鐗╂枡锛�');
+						return true;
 					}
 					window.parent.success(checkStatus.data);
-				    parent.layer.close(index1);
-				  }
-				};
-				$('.layui-inline .layui-btn').on('click', function(){
-				  var othis = $(this)
-				  ,type = othis.data('type');
-				  active[type] && active[type].call(this);
-				});
-				
-				
-				var tableIns;
-				function refreshTable() {
-					var param = {
-						SkuNo:  $("#Msg").val(),
-						Type: $("#Type").val()
-					};
-
-					sendData(IP + "/BllAsn/GetMaterialsList", param, 'post', function(res) {
-						if (res.code == 0) { //鎴愬姛
-							var list = res.data;
-								$.extend(infoOptions, {
-									data: list
-								});
-								infoOptions.page = {
-									curr: 1
-							}
-							tableIns = table.render(infoOptions);
-						} else { //涓嶆垚鍔�
-							layer.msg('鑾峰彇鐗╂枡淇℃伅澶辫触锛�', {
-								icon: 2,
-								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-							}, function() {});
-						}
-					});
-		
+					parent.layer.close(index1);
 				}
-				// 琛ㄥ崟闇�瑕佺殑鍙橀噺
-				var infoOptions = {
-					elem: '#goods-list',
-					height: 'full-100',
-					id: 'goods-list',
-					page: true,
-					limit: pageCnt,
-					limits: pageLimits,
-					cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
-					cols: [
-						[{
-							field: 'SkuId',
-							title: 'Id',
-							type: 'checkbox',
-							width: 100,
-							sort: true,
-							fixed: 'left'
-						}, {
-							field: 'SkuNo',
-							title: '鐗╂枡缂栫爜',
-							width: 100,
-							fixed: 'left'
-						}, {
-							field: 'SkuName',
-							title: '鐗╂枡鍚嶇О',
-							width: 180,
-						},{
-							field: 'Standard',
-							title: '瑙勬牸',
-							align: 'center',
-							width: 180
-						}, {
-							field: 'Type',
-							title: '绫诲瀷',
-							width: 100,
-							templet: function (d) {
-									switch (d.Type) {
-										case "0" : return "鍘熸枡"; 
-										case "1" : return "鍖呮潗"; 
-										case "2" : return "鎴愬搧";
-										case "3" : return "鑰楁潗";
-										case "4" : return "鍗婃垚鍝�";
-										default : return ""; 
-									}
-								}
-						}, {
-							field: 'IsControlled',
-							title: '鏄惁鏍囧噯',					
-							// JC08 title: '鏄惁鍙楁帶',					
-							width: 100,
-							// JC09
-							templet: function (d) {
-									switch (d.IsControlled) {
-										case "0" : return "鏍囧噯"; 
-										case "1" : return "闈炴爣"; 
-										default : return ""; 
-									}
-								},
-							// JC08
-							// templet: function (d) {
-							// 		switch (d.IsBale) {
-							// 			case "0" : return "鍙楁帶"; 
-							// 			case "1" : return "闈炲彈鎺�"; 
-							// 			default : return ""; 
-							// 		}
-							// 	}
-						},{
-							field: 'IsInspect',
-							title: '鏄惁鍏嶆',								
-							width: 100,
-							templet: function (d) {
-									switch (d.IsInspect) {
-										case "0" : return "鍚�"; 
-										case "1" : return "鏄�"; 
-										default : return ""; 
-									}
-								},
-						},{
-							field: 'Origin',
-							title: '鏉ユ簮',								
-							width: 120
-						},{
-							field: 'UnitName',
-							title: '璁¢噺鍗曚綅',
-							width: 100,
-						}, {
-							field: 'PackagName',
-							title: '鍖呰鍚嶇О',
-							width: 120
-						}, {
-							field: 'Environment',
-							title: '瀛樺偍鐜',
-							width: 120,
-							templet: function (d) {
-									switch (d.Environment) {
-										case "0" : return "甯告俯"; 
-										case "1" : return "浣庢俯"; 
-										case "3" : return "骞茬嚗閫氶"; 
-										default : return ""; 
-									}
-								},
-						}, {
-							field: 'Weight',
-							title: '鐞嗚閲嶉噺',
-							width: 100
-						},
-						// {
-						// 	field: 'Price',
-						// 	title: '鐞嗚鍗曚环',
-						// 	width: 100,
-						// 	hide:true
-						// }, 
-						{
-							field: 'Warranty',
-							title: '淇濊川鏈�(澶�)',
-							width: 100
-						},{
-							field: 'GoodsRemark',
-							title: '澶囨敞',
-							width: 160
-						}
-						]
-					],
-		
+			};
+			$('.layui-inline .layui-btn').on('click', function () {
+				var othis = $(this)
+					, type = othis.data('type');
+				active[type] && active[type].call(this);
+			});
+
+
+			var tableIns;
+			function refreshTable() {
+				var param = {
+					SkuNo: $("#Msg").val(),
+					Type: $("#Type").val()
 				};
 
-				//鐩戝惉鎼滅储
-				form.on('submit(LAY-app-contlist-search)', function(data) {
-					refreshTable();
+				sendData(IP + "/BllAsn/GetMaterialsList", param, 'post', function (res) {
+					if (res.code == 0) { //鎴愬姛
+						var list = res.data;
+						$.extend(infoOptions, {
+							data: list
+						});
+						infoOptions.page = {
+							curr: 1
+						}
+						tableIns = table.render(infoOptions);
+					} else { //涓嶆垚鍔�
+						layer.msg('鑾峰彇鐗╂枡淇℃伅澶辫触锛�', {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						}, function () { });
+					}
 				});
+
+			}
+			// 琛ㄥ崟闇�瑕佺殑鍙橀噺
+			var infoOptions = {
+				elem: '#goods-list',
+				height: 'full-100',
+				id: 'goods-list',
+				page: true,
+				limit: pageCnt,
+				limits: pageLimits,
+				cellMinWidth: 80, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
+				cols: [
+					[{
+						field: 'SkuId',
+						title: 'Id',
+						type: 'checkbox',
+						width: 100,
+						sort: true,
+						fixed: 'left'
+					}, {
+						field: 'SkuNo',
+						title: '鐗╂枡缂栫爜',
+						width: 100,
+						fixed: 'left'
+					}, {
+						field: 'SkuName',
+						title: '鐗╂枡鍚嶇О',
+						width: 180,
+					}, {
+						field: 'Standard',
+						title: '瑙勬牸',
+						align: 'center',
+						width: 180
+					}, {
+						field: 'Type',
+						title: '绫诲瀷',
+						width: 100,
+						templet: function (d) {
+							switch (d.Type) {
+								case "0": return "鍘熸枡";
+								case "1": return "鍖呮潗";
+								case "2": return "鎴愬搧";
+								case "3": return "鑰楁潗";
+								case "4": return "鍗婃垚鍝�";
+								default: return "";
+							}
+						}
+					}, {
+						field: 'IsControlled',
+						title: '鏄惁鏍囧噯',
+						// JC08 title: '鏄惁鍙楁帶',					
+						width: 100,
+						// JC09
+						templet: function (d) {
+							switch (d.IsControlled) {
+								case "0": return "鏍囧噯";
+								case "1": return "闈炴爣";
+								default: return "";
+							}
+						},
+						// JC08
+						// templet: function (d) {
+						// 		switch (d.IsBale) {
+						// 			case "0" : return "鍙楁帶"; 
+						// 			case "1" : return "闈炲彈鎺�"; 
+						// 			default : return ""; 
+						// 		}
+						// 	}
+					}, {
+						field: 'IsInspect',
+						title: '鏄惁鍏嶆',
+						width: 100,
+						templet: function (d) {
+							switch (d.IsInspect) {
+								case "0": return "鍚�";
+								case "1": return "鏄�";
+								default: return "";
+							}
+						},
+					}, {
+						field: 'Origin',
+						title: '鏉ユ簮',
+						width: 120
+					}, {
+						field: 'UnitName',
+						title: '璁¢噺鍗曚綅',
+						width: 100,
+					}, {
+						field: 'PackagName',
+						title: '鍖呰鍚嶇О',
+						width: 120
+					}, {
+						field: 'Environment',
+						title: '瀛樺偍鐜',
+						width: 120,
+						templet: function (d) {
+							switch (d.Environment) {
+								case "0": return "甯告俯";
+								case "1": return "浣庢俯";
+								case "3": return "骞茬嚗閫氶";
+								default: return "";
+							}
+						},
+					}, {
+						field: 'Weight',
+						title: '鐞嗚閲嶉噺',
+						width: 100
+					},
+					// {
+					// 	field: 'Price',
+					// 	title: '鐞嗚鍗曚环',
+					// 	width: 100,
+					// 	hide:true
+					// }, 
+					{
+						field: 'Warranty',
+						title: '淇濊川鏈�(澶�)',
+						width: 100
+					}, {
+						field: 'GoodsRemark',
+						title: '澶囨敞',
+						width: 160
+					}
+					]
+				],
+
+			};
+
+			//鐩戝惉鎼滅储
+			form.on('submit(LAY-app-contlist-search)', function (data) {
+				refreshTable();
 			});
-		</script>
-	</body>
-</html>
+		});
+	</script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/HTML/views/HouseWithinSetting/StockCheck.html b/HTML/views/HouseWithinSetting/StockCheck.html
index b1219ad..7adf894 100644
--- a/HTML/views/HouseWithinSetting/StockCheck.html
+++ b/HTML/views/HouseWithinSetting/StockCheck.html
@@ -1,157 +1,163 @@
 <!DOCTYPE html>
 <html>
-	<head>
-		<meta charset="utf-8">
-		<title>鐩樼偣鍗曟嵁鍒楄〃</title>
-		<meta name="renderer" content="webkit">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-		<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-		<link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> 
-		<link rel="stylesheet" href="../../css/public.css" media="all">
-		<style>
-			.layui-table-tool-panel{
-				top: auto;
-				bottom: 29px;
-			}
-			.layui-table-tool{
-				padding-left: 5px;
-			}
-			/* 琛ㄦ牸涓嬫媺灏忕澶撮殣钘� */
-			.layui-table-grid-down { 
-				display: none; 
-			}
-		</style>
-		<script>
-			// 杩欓噷鏄渶瑕佸湪椤甸潰娓叉煋涔嬪墠鎵ц鐨勪唬鐮�
-			document.addEventListener("DOMContentLoaded", function() {
-				
-				//鑾峰彇table榛樿鏄剧ず鏁�
-				pageCntFirst();
-				//鍒ゆ柇鏄惁寮�鍚痶able鍒楄〃鍒楀璋冩暣鍔熻兘銆�
-				GetIsSetColW();
-			});
-		  </script>
-	</head>
-	<body  id="body">
-		<div class="layui-fluid" style="padding-bottom: 0;">
-			<div class="layui-card">
-				<div class="layui-form layui-card-header layuiadmin-card-header-auto" id="top">
-					<div class="layui-form-item">
-						<div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">鐩樼偣鍗曞彿</label>
-                            <div class="layui-input-inline">
-                                <input type="text" id="CRNo" name="CRNo" placeholder="鐩樼偣鍗曞彿" autocomplete="off"
-                                    class="layui-input">
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">鎵ц鐘舵��</label>
-                            <div class="layui-input-inline">
-                                <select name="Status" id="Status" lay-filter="Status" lay-search>
-                                    <option value=""></option>
-                                    <option value="0">绛夊緟鎵ц</option>
-                                    <option value="1">姝e湪鎵ц</option>
-                                    <option value="2">鐩樼偣瀹屾垚</option>
-									<option value="3">鐢熸垚璋冩暣</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">鎵樼洏鏉$爜</label>
-                            <div class="layui-input-inline">
-                                <input type="text" id="PalletNo" name="PalletNo" placeholder="鎵樼洏鏉$爜" autocomplete="off"
-                                    class="layui-input">
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">鐗╁搧缂栫爜</label>
-                            <div class="layui-input-inline">
-                                <input type="text" id="SkuNo" name="SkuNo" placeholder="鐗╁搧缂栫爜"
-                                    autocomplete="off" class="layui-input">
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">鐗╁搧鍚嶇О</label>
-                            <div class="layui-input-inline">
-                                <input type="text" id="SkuName" name="SkuName" placeholder="鐗╁搧鍚嶇О" autocomplete="off"
-                                    class="layui-input">
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">鎵规</label>
-                            <div class="layui-input-inline">
-                                <input type="text" id="LotNo" name="LotNo" placeholder="鎵规" autocomplete="off"
-                                    class="layui-input">
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">寮�濮嬫棩鏈�</label>
-                            <div class="layui-input-inline">
-                                <input type="text" autocomplete="off" name="StartTime" id="StartTime" class="layui-input"
-                                    placeholder="寮�濮嬫棩鏈�">
-                            </div>
-                        </div>
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width: 60px;">缁撴潫鏃ユ湡</label>
-                            <div class="layui-input-inline">
-                                <input type="text" autocomplete="off" name="EndTime" id="EndTime" class="layui-input"
-                                    placeholder="缁撴潫鏃ユ湡">
-                            </div>
-                        </div>
-						<div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;">
-							<label class="layui-form-label">鍑哄簱鍙�</label>
-							<div class="layui-input-inline">
-								<select name="PickingArea" id="PickingArea" lay-search>
-									<option value=""></option>
-									<option value="1">1</option>
-									<option value="2">2</option>
-									<option value="3">3</option>
-									<option value="4">4</option>
-								</select>
-							</div>
-						</div>
-                        <div class="layui-inline">
-                            <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
-                                lay-filter="LAY-app-contlist-search">
-                                <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>鎼滅储
-                            </button>
-                        </div>
 
-						<!-- 缁存姢澶囨敞寮规 -->
-						<div class="layui-inline" id="divEditDemo" style="display: none; padding-top: 10px;">
-							<label class="layui-form-label">澶囨敞</label>
-							<div class="layui-input-inline" style="width: 300px;height: 100%;">
-								<textarea placeholder="璇疯緭鍏ュ唴瀹�" id="NoticeDemo" name="NoticeDemo" class="layui-textarea"></textarea>
-							</div>
+<head>
+	<meta charset="utf-8">
+	<title>鐩樼偣鍗曟嵁鍒楄〃</title>
+	<meta name="renderer" content="webkit">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+	<meta name="viewport"
+		content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+	<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+	<link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+	<link rel="stylesheet" href="../../css/public.css" media="all">
+	<style>
+		.layui-table-tool-panel {
+			top: auto;
+			bottom: 29px;
+		}
+
+		.layui-table-tool {
+			padding-left: 5px;
+		}
+
+		/* 琛ㄦ牸涓嬫媺灏忕澶撮殣钘� */
+		.layui-table-grid-down {
+			display: none;
+		}
+	</style>
+	<script>
+		// 杩欓噷鏄渶瑕佸湪椤甸潰娓叉煋涔嬪墠鎵ц鐨勪唬鐮�
+		document.addEventListener("DOMContentLoaded", function () {
+
+			//鑾峰彇table榛樿鏄剧ず鏁�
+			pageCntFirst();
+			//鍒ゆ柇鏄惁寮�鍚痶able鍒楄〃鍒楀璋冩暣鍔熻兘銆�
+			GetIsSetColW();
+		});
+	</script>
+</head>
+
+<body id="body">
+	<div class="layui-fluid" style="padding-bottom: 0;">
+		<div class="layui-card">
+			<div class="layui-form layui-card-header layuiadmin-card-header-auto" id="top">
+				<div class="layui-form-item">
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">鐩樼偣鍗曞彿</label>
+						<div class="layui-input-inline">
+							<input type="text" id="CRNo" name="CRNo" placeholder="鐩樼偣鍗曞彿" autocomplete="off"
+								class="layui-input">
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">鎵ц鐘舵��</label>
+						<div class="layui-input-inline">
+							<select name="Status" id="Status" lay-filter="Status" lay-search>
+								<option value=""></option>
+								<option value="0">绛夊緟鎵ц</option>
+								<option value="1">姝e湪鎵ц</option>
+								<option value="2">鐩樼偣瀹屾垚</option>
+								<option value="3">鐢熸垚璋冩暣</option>
+							</select>
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">鎵樼洏鏉$爜</label>
+						<div class="layui-input-inline">
+							<input type="text" id="PalletNo" name="PalletNo" placeholder="鎵樼洏鏉$爜" autocomplete="off"
+								class="layui-input">
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">鐗╁搧缂栫爜</label>
+						<div class="layui-input-inline">
+							<input type="text" id="SkuNo" name="SkuNo" placeholder="鐗╁搧缂栫爜" autocomplete="off"
+								class="layui-input">
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">鐗╁搧鍚嶇О</label>
+						<div class="layui-input-inline">
+							<input type="text" id="SkuName" name="SkuName" placeholder="鐗╁搧鍚嶇О" autocomplete="off"
+								class="layui-input">
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">鎵规</label>
+						<div class="layui-input-inline">
+							<input type="text" id="LotNo" name="LotNo" placeholder="鎵规" autocomplete="off"
+								class="layui-input">
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">寮�濮嬫棩鏈�</label>
+						<div class="layui-input-inline">
+							<input type="text" autocomplete="off" name="StartTime" id="StartTime" class="layui-input"
+								placeholder="寮�濮嬫棩鏈�">
+						</div>
+					</div>
+					<div class="layui-inline">
+						<label class="layui-form-label" style="width: 60px;">缁撴潫鏃ユ湡</label>
+						<div class="layui-input-inline">
+							<input type="text" autocomplete="off" name="EndTime" id="EndTime" class="layui-input"
+								placeholder="缁撴潫鏃ユ湡">
+						</div>
+					</div>
+					<div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;">
+						<label class="layui-form-label">鍑哄簱鍙�</label>
+						<div class="layui-input-inline">
+							<select name="PickingArea" id="PickingArea" lay-search>
+								<option value=""></option>
+								<option value="1">1</option>
+								<option value="2">2</option>
+								<option value="3">3</option>
+								<option value="4">4</option>
+							</select>
+						</div>
+					</div>
+					<div class="layui-inline">
+						<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
+							lay-filter="LAY-app-contlist-search">
+							<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>鎼滅储
+						</button>
+					</div>
+
+					<!-- 缁存姢澶囨敞寮规 -->
+					<div class="layui-inline" id="divEditDemo" style="display: none; padding-top: 10px;">
+						<label class="layui-form-label">澶囨敞</label>
+						<div class="layui-input-inline" style="width: 300px;height: 100%;">
+							<textarea placeholder="璇疯緭鍏ュ唴瀹�" id="NoticeDemo" name="NoticeDemo"
+								class="layui-textarea"></textarea>
 						</div>
 					</div>
 				</div>
-				<div id="center"></div>
-				<div class="layui-card-body">
-					<div class="position-relative">
-						<table id="LAY-app-content-list" lay-filter="LAY-app-content-list" ></table>
-						<!--#region 鑷畾涔夎〃澶� -->
-						<div class="headerSetIcon">
-							<button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols">
-								<i class="layui-icon">&#xe610;</i>
-							</button>
-						</div>
-						<!-- #endregion -->
+			</div>
+			<div id="center"></div>
+			<div class="layui-card-body">
+				<div class="position-relative">
+					<table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table>
+					<!--#region 鑷畾涔夎〃澶� -->
+					<div class="headerSetIcon">
+						<button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols">
+							<i class="layui-icon">&#xe610;</i>
+						</button>
+					</div>
+					<!-- #endregion -->
 
 
+				</div>
+				<div class="position-relative">
+					<table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2"></table>
+					<!--#region 鑷畾涔夎〃澶� -->
+					<div class="headerSetIcon">
+						<button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols2">
+							<i class="layui-icon">&#xe610;</i>
+						</button>
 					</div>
-					<div class="position-relative">
-						<table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2" ></table>
-						<!--#region 鑷畾涔夎〃澶� -->
-						<div class="headerSetIcon">
-							<button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols2">
-								<i class="layui-icon">&#xe610;</i>
-							</button>
-						</div>
-						<!-- #endregion -->
-					</div>
-					<script type="text/html" id="table-content-list">
+					<!-- #endregion -->
+				</div>
+				<script type="text/html" id="table-content-list">
 						{{# 
 								var html = ''; 
 								 
@@ -163,6 +169,9 @@
                                             </a>`;                                   
                                 }
 								if(d.Status == 0 || d.Status == 1){
+									html += `<a class="layui-btn layui-btn-xs checkOut" lay-event="vision"> 
+										<i class="layui-icon layui-icon-ok"></i>瑙嗚鐩樼偣
+									</a>`;
 									html += `<a class="layui-btn layui-btn-xs checkOut" lay-event="outbound"> 
 										<i class="layui-icon layui-icon-ok"></i>鍑哄簱
 									</a>`;
@@ -179,9 +188,9 @@
 						}}
 						 
 					</script>
- 
-					<script type="text/html" id="toolbarDemo">
-						
+
+				<script type="text/html" id="toolbarDemo">
+
 						<button class="layui-btn layuiadmin-btn-list layui-btn-sm  addClass" lay-event="add">
 							<i class="layui-icon">&#xe654;</i>娣诲姞
 						</button> 
@@ -190,8 +199,8 @@
 						</button> 
 					</script>
 
-					<!-- 鎬诲崟鏉ユ簮 -->
-					<script type="text/html" id="OriginzongButton">
+				<!-- 鎬诲崟鏉ユ簮 -->
+				<script type="text/html" id="OriginzongButton">
 						{{#  if(d.Origin=='0'){ }}
 							<p>鎿嶄綔浜哄垱寤�</p>
 						{{#  } else if(d.Origin=='1'){ }}
@@ -199,8 +208,8 @@
 						{{#  } }}
 					</script>
 
-					<!-- 鎬诲崟鏄惁澶嶇洏 -->
-					<script type="text/html" id="IsDoubleCheckButton">
+				<!-- 鎬诲崟鏄惁澶嶇洏 -->
+				<script type="text/html" id="IsDoubleCheckButton">
 						{{#  if(d.AuditStatusNo=='0'){ }}
 							<p>鍚�</p>
 						{{#  } else if(d.AuditStatusNo=='1'){ }}
@@ -208,8 +217,8 @@
 						{{#  } }}
 					</script>
 
-					<!-- 鎬诲崟瀹℃牳鐘舵�� -->
-					<script type="text/html" id="AuditStatusButton">
+				<!-- 鎬诲崟瀹℃牳鐘舵�� -->
+				<script type="text/html" id="AuditStatusButton">
 						{{#  if(d.AuditStatusNo=='0'){ }}
 							<p>寰呭鏍�</p>
 						{{#  } else if(d.AuditStatusNo=='9'){ }}
@@ -217,8 +226,8 @@
 						{{#  } }}
 					</script>
 
-					<!-- 鎬诲崟鎵ц鐘舵�� -->
-					<script type="text/html" id="StatuszongButton">
+				<!-- 鎬诲崟鎵ц鐘舵�� -->
+				<script type="text/html" id="StatuszongButton">
 						{{# 
 							var html = ``;
 							if(d.Status=='0'){ 
@@ -237,43 +246,43 @@
 						}}
 					</script>
 
-					<!-- 鎬诲崟寮�濮嬫椂闂� -->
-					<script type="text/html" id="CheckDateButton">
+				<!-- 鎬诲崟寮�濮嬫椂闂� -->
+				<script type="text/html" id="CheckDateButton">
 						{{#
 							return formatDate(d.CheckDate);
 						}}
 					</script>
-					
-					<!-- 鎬诲崟瀹屾垚鏃堕棿 -->
-					<script type="text/html" id="CompleteDateButtom">
+
+				<!-- 鎬诲崟瀹屾垚鏃堕棿 -->
+				<script type="text/html" id="CompleteDateButtom">
 						{{#
 							return formatDate(d.CompleteDate);
 						}}
 					</script>
-					
-					<!-- 鎬诲崟瀹℃牳鏃堕棿 -->
-					<script type="text/html" id="AuditTimeButton">
+
+				<!-- 鎬诲崟瀹℃牳鏃堕棿 -->
+				<script type="text/html" id="AuditTimeButton">
 						{{#
 							return formatDate(d.AuditTime);
 						}}
 					</script>
-					
-					<!-- 鍒涘缓鏃堕棿 -->
-					<script type="text/html" id="CreateTimeButton">
+
+				<!-- 鍒涘缓鏃堕棿 -->
+				<script type="text/html" id="CreateTimeButton">
 						{{#
 							return formatDate(d.CreateTime);
 						}}
 					</script>
-					
-					<!-- 淇敼鏃堕棿 -->
-					<script type="text/html" id="UpdateTimeButton">
+
+				<!-- 淇敼鏃堕棿 -->
+				<script type="text/html" id="UpdateTimeButton">
 						{{#
 							return formatDate(d.UpdateTime);
 						}}
 					</script>
 
-					<!-- 鏄庣粏鎵ц鐘舵�� -->
-					<script type="text/html" id="StatusmingButton">
+				<!-- 鏄庣粏鎵ц鐘舵�� -->
+				<script type="text/html" id="StatusmingButton">
 						{{# 
 							var html = ``;
 							if(d.Status=='0'){ 
@@ -294,8 +303,8 @@
 						}}
 					</script>
 
-					<!-- 鏄庣粏鐩樼偣缁撴灉 -->
-					<script type="text/html" id="CheckResultButton">
+				<!-- 鏄庣粏鐩樼偣缁撴灉 -->
+				<script type="text/html" id="CheckResultButton">
 						{{# 
 							var html = ``;
 							if(d.CheckResult=='0'){ 
@@ -314,533 +323,574 @@
 						}}
 					</script>
 
-					
-				</div>
+
 			</div>
 		</div>
-		
-		<script src="../../layuiadmin/layui/layui.js"></script> 
-		<script src="../../js/jquery-3.5.1.min.js"></script>
-		<script src="../../js/jquery.cookie.js"></script>
-		<script src="../../js/public.js"></script>
-		<script>
-			 
-			layui.config({
-				base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
-			}).extend({
-				index: 'lib/index' //涓诲叆鍙fā鍧�
-			}).use(['index', 'table', 'laypage', 'layer', 'laydate'], function() {
-				var table = layui.table,
-					form = layui.form,
-					laypage = layui.laypage,
-					layer = layui.layer;
-					laydate = layui.laydate;
-				var $ = layui.$;
-				var h1 = GetTableTopHeight();
-				var h2 = GetTableBottomHeight(); 
-				 
-				laydate.render({
-					elem: '#StartTime'
-					, format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚�
-				});
-				laydate.render({
-					elem: '#EndTime'
-					, format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚�
-				});
-				var isChongFu = true;
-				var xqid = "kong";
+	</div>
 
-				//鎬诲崟
-				var TotalColsArrz = 
-					[[
-						{field:'',title: '搴忓彿', type: 'numbers', width: 65, fixed: 'left', "disabled": true, },
-						{field: 'CrNo', title: '鐩樼偣鍗曞彿', align: 'center', fixed: 'left', width: 165, },
-						{field: 'Origin',title: '鏉ユ簮',align: 'center', templet: '#OriginzongButton', },
-						{field: 'Status',title: '鎵ц鐘舵��',align: 'center', templet: '#StatuszongButton', },
-						{field: 'CheckDate',title: '寮�濮嬫椂闂�',align: 'center', templet: '#CheckDateButton', },
-						{field: 'CompleteDate',title: '瀹屾垚鏃堕棿',align: 'center', templet: '#CompleteDateButtom',  },
-						{field: 'Demo',title: '澶囨敞',align: 'center',width: 180},
-						{field: 'AuditStatusNo',title: '瀹℃牳鐘舵��',align: 'center',width: 130,hide:true, templet: '#AuditStatusButton', },
-						{field: 'IsDoubleCheck', title: '鏄惁澶嶇洏', align: 'center', width: 180, hide:true, templet: '#IsDoubleCheckButton', },
-						{field: 'AuditUserName',title: '瀹℃牳浜�',align: 'center',width: 180,hide:true},
-						{field: 'AuditTime',title: '瀹℃牳鏃堕棿',align: 'center',width: 95,hide:true , templet: '#AuditTimeButton', }, 
-						{field: 'CreateUserName', title:'鍒涘缓浜�', align:'center',  },
-						{field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center', templet: '#CreateTimeButton', },
-						{field: 'UpdateUserName',title: '淇敼浜�',align: 'center',width: 120,hide:true},
-						{field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',width: 160,hide:true, templet: '#UpdateTimeButton',  },
-						{field:'caozuo',title: '鎿嶄綔',fixed: 'right',align: 'center',toolbar: '#table-content-list',width: 240 }
-					]];
-				var TotalColsSysArrz=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArrz)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
+	<script src="../../layuiadmin/layui/layui.js"></script>
+	<script src="../../js/jquery-3.5.1.min.js"></script>
+	<script src="../../js/jquery.cookie.js"></script>
+	<script src="../../js/public.js"></script>
+	<script>
 
-				//鏄庣粏
-				var TotalColsArrm = 
-					[[
-							{field:'',title:'搴忓彿', type:'numbers', width:65, fixed:'left', "disabled": true, }, 
-                            {field:'CrNo', title:'鐩樼偣鍗曞彿', align:'center', fixed:'left', width: 165, },
-                            {field:'PalletNo', title:'鎵樼洏鍙�', align:'center', fixed:'left', width: 165, },
-                            {field:'Qty', title:'搴撳瓨鏁伴噺', align:'center', fixed:'left', width: 105, },
-                            {field:'RealQty', title:'瀹為檯鏁伴噺', align:'center', width: 105, },
-                            {field:'Status', title:'鎵ц鐘舵��', align:'center', width: 105, templet : '#StatusmingButton', },
-                            {field:'CheckResult', title:'鐩樼偣缁撴灉', align:'center', width:105,  templet : '#CheckResultButton', },
-                            {field:'SkuNo', title:'鐗╂枡缂栫爜', align:'center', width:105, },
-                            {field:'SkuName', title:'鐗╂枡鍚嶇О', align:'center', width:125, },
-                            {field:'Standard', title:'瑙勬牸', align:'center', width:225, },
-                            {field:'LotNo', title:'鎵规鍙�', align:'center', width:105, },
-                            {field:'LotText', title:'鎵规鎻忚堪', align:'center', width:105, },
-                            {field:'SupplierLot', title:'渚涜揣鎵规', align:'center', width:105, },
-                            {field: 'CreateUserName', title:'鍒涘缓浜�', align:'center', width:100, },
-                            {field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center',width: 160,  templet: '#CreateTimeButton',},
-                            {field: 'UpdateUserName',title: '淇敼浜�',align: 'center',width: 120,hide:true},
-                            {field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',width: 160,hide:true, templet: '#UpdateTimeButton',},
-					]];
-				var TotalColsSysArrm=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArrm)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
-				refreshTable(); 
-				var colsJsonz;
-				var colsJsonm;
+		layui.config({
+			base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+		}).extend({
+			index: 'lib/index' //涓诲叆鍙fā鍧�
+		}).use(['index', 'table', 'laypage', 'layer', 'laydate'], function () {
+			var table = layui.table,
+				form = layui.form,
+				laypage = layui.laypage,
+				layer = layui.layer;
+			laydate = layui.laydate;
+			var $ = layui.$;
+			var h1 = GetTableTopHeight();
+			var h2 = GetTableBottomHeight();
+
+			laydate.render({
+				elem: '#StartTime'
+				, format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚�
+			});
+			laydate.render({
+				elem: '#EndTime'
+				, format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚�
+			});
+			var isChongFu = true;
+			var xqid = "kong";
+
+			//鎬诲崟
+			var TotalColsArrz =
+				[[
+					{ field: '', title: '搴忓彿', type: 'numbers', width: 65, fixed: 'left', "disabled": true, },
+					{ field: 'CrNo', title: '鐩樼偣鍗曞彿', align: 'center', fixed: 'left', width: 165, },
+					{ field: 'Origin', title: '鏉ユ簮', align: 'center', templet: '#OriginzongButton', },
+					{ field: 'Status', title: '鎵ц鐘舵��', align: 'center', templet: '#StatuszongButton', },
+					{ field: 'CheckDate', title: '寮�濮嬫椂闂�', align: 'center', templet: '#CheckDateButton', },
+					{ field: 'CompleteDate', title: '瀹屾垚鏃堕棿', align: 'center', templet: '#CompleteDateButtom', },
+					{ field: 'Demo', title: '澶囨敞', align: 'center', width: 180 },
+					{ field: 'AuditStatusNo', title: '瀹℃牳鐘舵��', align: 'center', width: 130, hide: true, templet: '#AuditStatusButton', },
+					{ field: 'IsDoubleCheck', title: '鏄惁澶嶇洏', align: 'center', width: 180, hide: true, templet: '#IsDoubleCheckButton', },
+					{ field: 'AuditUserName', title: '瀹℃牳浜�', align: 'center', width: 180, hide: true },
+					{ field: 'AuditTime', title: '瀹℃牳鏃堕棿', align: 'center', width: 95, hide: true, templet: '#AuditTimeButton', },
+					{ field: 'CreateUserName', title: '鍒涘缓浜�', align: 'center', },
+					{ field: 'CreateTime', title: '鍒涘缓鏃堕棿', align: 'center', templet: '#CreateTimeButton', },
+					{ field: 'UpdateUserName', title: '淇敼浜�', align: 'center', width: 120, hide: true },
+					{ field: 'UpdateTime', title: '淇敼鏃堕棿', align: 'center', width: 160, hide: true, templet: '#UpdateTimeButton', },
+					{ field: 'caozuo', title: '鎿嶄綔', fixed: 'right', align: 'center', toolbar: '#table-content-list', width: 240 }
+				]];
+			var TotalColsSysArrz = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArrz)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
+
+			//鏄庣粏
+			var TotalColsArrm =
+				[[
+					{ field: '', title: '搴忓彿', type: 'numbers', width: 65, fixed: 'left', "disabled": true, },
+					{ field: 'CrNo', title: '鐩樼偣鍗曞彿', align: 'center', fixed: 'left', width: 165, },
+					{ field: 'PalletNo', title: '鎵樼洏鍙�', align: 'center', fixed: 'left', width: 165, },
+					{ field: 'Qty', title: '搴撳瓨鏁伴噺', align: 'center', fixed: 'left', width: 105, },
+					{ field: 'RealQty', title: '瀹為檯鏁伴噺', align: 'center', width: 105, },
+					{ field: 'Status', title: '鎵ц鐘舵��', align: 'center', width: 105, templet: '#StatusmingButton', },
+					{ field: 'CheckResult', title: '鐩樼偣缁撴灉', align: 'center', width: 105, templet: '#CheckResultButton', },
+					{ field: 'SkuNo', title: '鐗╂枡缂栫爜', align: 'center', width: 105, },
+					{ field: 'SkuName', title: '鐗╂枡鍚嶇О', align: 'center', width: 125, },
+					{ field: 'Standard', title: '瑙勬牸', align: 'center', width: 225, },
+					{ field: 'LotNo', title: '鎵规鍙�', align: 'center', width: 105, },
+					{ field: 'LotText', title: '鎵规鎻忚堪', align: 'center', width: 105, },
+					{ field: 'SupplierLot', title: '渚涜揣鎵规', align: 'center', width: 105, },
+					{ field: 'CreateUserName', title: '鍒涘缓浜�', align: 'center', width: 100, },
+					{ field: 'CreateTime', title: '鍒涘缓鏃堕棿', align: 'center', width: 160, templet: '#CreateTimeButton', },
+					{ field: 'UpdateUserName', title: '淇敼浜�', align: 'center', width: 120, hide: true },
+					{ field: 'UpdateTime', title: '淇敼鏃堕棿', align: 'center', width: 160, hide: true, templet: '#UpdateTimeButton', },
+				]];
+			var TotalColsSysArrm = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArrm)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
+			refreshTable();
+			var colsJsonz;
+			var colsJsonm;
+			// refreshTablemx(xqid);
+
+			//娓叉煋鐩樼偣鎬诲崟
+			function refreshTable() {
+				var param1 = {
+					// Href:'QualityControl/QualityInformation'
+					Href: 'BllCheck/GetStockCheckList'
+				};
+				sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function (res) {
+					if (res.code == 0) {
+						if (res.data == '' || res.data == undefined || res.data == null) {
+							console.log(1)
+							colsJsonz = TotalColsArrz
+						} else {
+							console.log(2)
+							colsJsonz = eval(res.data);
+						}
+					} else {
+						colsJsonz = TotalColsArrz
+					}
+					// tableclass(LotNo,SkuNo,SkuName,IsQualified);
+					var param = {
+						CrNo: $("#CRNo").val(),
+						Status: $("#Status").val(),
+
+						PalletNo: $("#PalletNo").val(),
+						SkuNo: $("#SkuNo").val(),
+						SkuName: $("#SkuName").val(),
+						LotNo: $("#LotNo").val(),
+						StartTime: $("#StartTime").val(),
+						EndTime: $("#EndTime").val(),
+					};
+					table.render({
+						elem: '#LAY-app-content-list',
+						url: IP + "/BllCheck/GetStockCheckList",
+						method: 'post',
+						height: h1,//'full-'+hei1	
+						id: 'LAY-app-content-list',
+						where: param,
+						contentType: 'application/json',
+						// toolbar: '#toolbarDemo',
+						defaultToolbar: [], //'filter','print', 'exports'
+						headers: { ToKen: $.cookie('token') },
+						page: true,
+						even: true,
+						limit: pageCnt,
+						limits: pageLimits,
+						cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
+						done: function (res) {
+							initMenu();
+							var soCode = "res.data[0].SONo";
+							if (res.data.length != 0) {
+								soCode = res.data[0].SONo;
+							}
+							refreshTablemx(soCode)
+							//鑷畾涔夊垪瀹�
+							SetTableColW('LAY-app-content-list', 'BllCheck/GetStockCheckList', TotalColsSysArrz);
+						},
+						cols: colsJsonz
+					});
+
+					// table.render({
+					// 	elem: '#LAY-app-content-list',
+					// 	url: IP+"/BllCheck/GetStockCheckList",
+					// 	method: 'POST',
+					// 	height: h1 ,//'full-'+hei1
+					// 	id: 'LAY-app-content-list',
+					// 	where: param,
+					// 	contentType: 'application/json',
+					// 	headers:{ToKen:$.cookie('token')},
+					// 	page: true,
+					// 	even: true,
+					// 	limit: pageCnt,
+					// 	limits: pageLimits,
+					// 	cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
+					// 	done: function(res){ 
+					// 		initMenu(); 
+					// 		var soCode = "res.data[0].SONo";
+					// 		if (res.data.length != 0) {
+					// 			soCode = res.data[0].SONo;
+					// 		}
+					// 		refreshTablemx(soCode)
+					// 	},
+					// 	cols: [
+					// 	[
+					// 		{title: '搴忓彿', type: 'numbers', width: 65, fixed: 'left', },
+					// 		{field: 'CrNo', title: '鐩樼偣鍗曞彿', align: 'center', fixed: 'left', width: 165, },
+					// 		{field: 'Origin',title: '鏉ユ簮',align: 'center', templet: '#OriginzongButton', },
+					// 		{field: 'Status',title: '鎵ц鐘舵��',align: 'center', templet: '#StatuszongButton', },
+					// 		{field: 'CheckDate',title: '寮�濮嬫椂闂�',align: 'center', templet: '#CheckDateButton', },
+					// 		{field: 'CompleteDate',title: '瀹屾垚鏃堕棿',align: 'center', templet: '#CompleteDateButtom',  },
+					// 		{field: 'AuditStatusNo',title: '瀹℃牳鐘舵��',align: 'center',width: 130,hide:true, templet: '#AuditStatusButton', },
+					// 		{field: 'IsDoubleCheck', title: '鏄惁澶嶇洏', align: 'center', width: 180, hide:true, templet: '#IsDoubleCheckButton', },
+					// 		{field: 'AuditUserName',title: '瀹℃牳浜�',align: 'center',width: 180,hide:true},
+					// 		{field: 'AuditTime',title: '瀹℃牳鏃堕棿',align: 'center',width: 95,hide:true , templet: '#AuditTimeButton', }, 
+					// 		{field: 'CreateUserName', title:'鍒涘缓浜�', align:'center',  },
+					// 		{field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center', templet: '#CreateTimeButton', },
+					// 		{field: 'UpdateUserName',title: '淇敼浜�',align: 'center',width: 120,hide:true},
+					// 		{field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',width: 160,hide:true, templet: '#UpdateTimeButton',  },
+					// 		{title: '鎿嶄綔',fixed: 'right',align: 'center',toolbar: '#table-content-list',width: 240 }
+					// 	]]
+					// });
+				});
+			}
+			//娓叉煋鍑哄簱鍗曟槑缁�
+			function refreshTablemx(crNo) {
+				var param1 = {
+					// Href:'QualityControl/QualityInformation'
+					Href: 'BllCheck/GetStockCheckDetailList'
+				};
+				sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function (res) {
+					if (res.code == 0) {
+						if (res.data == '' || res.data == undefined || res.data == null) {
+							colsJsonm = TotalColsArrm
+						} else {
+							colsJsonm = eval(res.data);
+						}
+					} else {
+						colsJsonm = TotalColsArrm
+					}
+					var param = {
+						CrNo: crNo,
+					};
+					table.render({
+						elem: '#LAY-app-content-list2',
+						url: IP + "/BllCheck/GetStockCheckDetailList",
+						method: 'post',
+						height: h2,//'full-'+hei1	
+						id: 'LAY-app-content-list2',
+						where: param,
+						contentType: 'application/json',
+						toolbar: '#toolbarDemo',
+						defaultToolbar: [], //'filter','print', 'exports'
+						headers: { ToKen: $.cookie('token') },
+						page: true,
+						even: true,
+						limit: pageCnt,
+						limits: pageLimits,
+						cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
+						done: function (res) {
+							initMenu();
+							//鑷畾涔夊垪瀹�
+							SetTableColW('LAY-app-content-list2', 'BllCheck/GetStockCheckDetailList', TotalColsSysArrm);
+						},
+						cols: colsJsonm
+					});
+					// var param = {
+					// 	CrNo: crNo,
+					// }; 
+					// table.render({
+					// 	elem: '#LAY-app-content-list2',
+					// 	url: IP + "/BllCheck/GetStockCheckDetailList",
+					// 	method: 'POST',
+					// 	height: h2,
+					// 	id: 'LAY-app-content-list2',
+					// 	where: param,
+					// 	contentType: 'application/json',
+					// 	headers:{ToKen:$.cookie('token')},
+					// 	toolbar:'#toolbarDemo',
+					// 	defaultToolbar:  ['filter'], //'print', 'exports'
+					// 	page: true, 
+					// 	limit: pageCnt,
+					// 	limits: pageLimits,
+					// 	cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
+					// 	done: function(){ 
+					// 		initMenu();
+					// 	}, 
+					// 	cols: [
+					// 	[
+					// 		{title:'搴忓彿', type:'numbers', width:65, fixed:'left', }, 
+					// 		{field:'CrNo', title:'鐩樼偣鍗曞彿', align:'center', fixed:'left', width: 165, },
+					// 		{field:'PalletNo', title:'鎵樼洏鍙�', align:'center', fixed:'left', width: 165, },
+					// 		{field:'Qty', title:'搴撳瓨鏁伴噺', align:'center', fixed:'left', width: 105, },
+					// 		{field:'RealQty', title:'瀹為檯鏁伴噺', align:'center', width: 105, },
+					// 		{field:'Status', title:'鎵ц鐘舵��', align:'center', width: 105, templet : '#StatusmingButton', },
+					// 		{field:'CheckResult', title:'鐩樼偣缁撴灉', align:'center', width:105,  templet : '#CheckResultButton', },
+					// 		{field:'SkuNo', title:'鐗╂枡缂栫爜', align:'center', width:105, },
+					// 		{field:'SkuName', title:'鐗╂枡鍚嶇О', align:'center', width:125, },
+					// 		{field:'Standard', title:'瑙勬牸', align:'center', width:225, },
+					// 		{field:'LotNo', title:'鎵规鍙�', align:'center', width:105, },
+					// 		{field:'LotText', title:'鎵规鎻忚堪', align:'center', width:105, },
+					// 		{field:'SupplierLot', title:'渚涜揣鎵规', align:'center', width:105, },
+					// 		{field: 'CreateUserName', title:'鍒涘缓浜�', align:'center', width:100, },
+					// 		{field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center',width: 160,  templet: '#CreateTimeButton',},
+					// 		{field: 'UpdateUserName',title: '淇敼浜�',align: 'center',width: 120,hide:true},
+					// 		{field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',width: 160,hide:true, templet: '#UpdateTimeButton',},
+					// 	]]
+					// });
+				});
+			}
+			//鎼滅储
+			form.on('submit(LAY-app-contlist-search)', function (data) {
+				refreshTable();
 				// refreshTablemx(xqid);
-				
-				//娓叉煋鐩樼偣鎬诲崟
-				function refreshTable() {
-					var param1={
-						// Href:'QualityControl/QualityInformation'
-						Href:'BllCheck/GetStockCheckList'
-					};
-					sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function(res) {
-						if (res.code == 0){			
-							if(res.data=='' || res.data==undefined || res.data==null){
-								console.log(1)
-								colsJsonz=TotalColsArrz
-							}else{
-								console.log(2)
-								colsJsonz= eval(res.data);
-							}
-						}else{
-							colsJsonz=TotalColsArrz
-						}
-						// tableclass(LotNo,SkuNo,SkuName,IsQualified);
-						var param = {
-							CrNo: $("#CRNo").val(),
-							Status: $("#Status").val(),
-
-							PalletNo: $("#PalletNo").val(), 
-							SkuNo: $("#SkuNo").val(),
-							SkuName: $("#SkuName").val(),
-							LotNo: $("#LotNo").val(),
-							StartTime: $("#StartTime").val(),
-							EndTime: $("#EndTime").val(),
-						}; 
-						table.render({
-							elem: '#LAY-app-content-list',
-							url: IP + "/BllCheck/GetStockCheckList",
-							method: 'post',
-							height: h1 ,//'full-'+hei1	
-							id: 'LAY-app-content-list',
-							where: param,
-							contentType: 'application/json',
-							// toolbar: '#toolbarDemo',
-							defaultToolbar: [], //'filter','print', 'exports'
-							headers: { ToKen: $.cookie('token') },
-							page: true,
-							even: true,
-							limit: pageCnt,
-							limits: pageLimits,
-							cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
-							done: function (res) {
-								initMenu();
-								var soCode = "res.data[0].SONo";
-								if (res.data.length != 0) {
-									soCode = res.data[0].SONo;
-								}
-								refreshTablemx(soCode)
-								//鑷畾涔夊垪瀹�
-								SetTableColW('LAY-app-content-list','BllCheck/GetStockCheckList',TotalColsSysArrz);
-							},
-							cols: colsJsonz
-						});
-						
-						// table.render({
-						// 	elem: '#LAY-app-content-list',
-						// 	url: IP+"/BllCheck/GetStockCheckList",
-						// 	method: 'POST',
-						// 	height: h1 ,//'full-'+hei1
-						// 	id: 'LAY-app-content-list',
-						// 	where: param,
-						// 	contentType: 'application/json',
-						// 	headers:{ToKen:$.cookie('token')},
-						// 	page: true,
-						// 	even: true,
-						// 	limit: pageCnt,
-						// 	limits: pageLimits,
-						// 	cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
-						// 	done: function(res){ 
-						// 		initMenu(); 
-						// 		var soCode = "res.data[0].SONo";
-						// 		if (res.data.length != 0) {
-						// 			soCode = res.data[0].SONo;
-						// 		}
-						// 		refreshTablemx(soCode)
-						// 	},
-						// 	cols: [
-						// 	[
-						// 		{title: '搴忓彿', type: 'numbers', width: 65, fixed: 'left', },
-						// 		{field: 'CrNo', title: '鐩樼偣鍗曞彿', align: 'center', fixed: 'left', width: 165, },
-						// 		{field: 'Origin',title: '鏉ユ簮',align: 'center', templet: '#OriginzongButton', },
-						// 		{field: 'Status',title: '鎵ц鐘舵��',align: 'center', templet: '#StatuszongButton', },
-						// 		{field: 'CheckDate',title: '寮�濮嬫椂闂�',align: 'center', templet: '#CheckDateButton', },
-						// 		{field: 'CompleteDate',title: '瀹屾垚鏃堕棿',align: 'center', templet: '#CompleteDateButtom',  },
-						// 		{field: 'AuditStatusNo',title: '瀹℃牳鐘舵��',align: 'center',width: 130,hide:true, templet: '#AuditStatusButton', },
-						// 		{field: 'IsDoubleCheck', title: '鏄惁澶嶇洏', align: 'center', width: 180, hide:true, templet: '#IsDoubleCheckButton', },
-						// 		{field: 'AuditUserName',title: '瀹℃牳浜�',align: 'center',width: 180,hide:true},
-						// 		{field: 'AuditTime',title: '瀹℃牳鏃堕棿',align: 'center',width: 95,hide:true , templet: '#AuditTimeButton', }, 
-						// 		{field: 'CreateUserName', title:'鍒涘缓浜�', align:'center',  },
-						// 		{field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center', templet: '#CreateTimeButton', },
-						// 		{field: 'UpdateUserName',title: '淇敼浜�',align: 'center',width: 120,hide:true},
-						// 		{field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',width: 160,hide:true, templet: '#UpdateTimeButton',  },
-						// 		{title: '鎿嶄綔',fixed: 'right',align: 'center',toolbar: '#table-content-list',width: 240 }
-						// 	]]
-						// });
-					});
-				}
-				//娓叉煋鍑哄簱鍗曟槑缁�
-				function refreshTablemx(crNo) {
-					var param1={
-						// Href:'QualityControl/QualityInformation'
-						Href:'BllCheck/GetStockCheckDetailList'
-					};
-					sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function(res) {
-						if (res.code == 0){			
-							if(res.data=='' || res.data==undefined || res.data==null){
-								colsJsonm=TotalColsArrm
-							}else{
-								colsJsonm= eval(res.data);
-							}
-						}else{
-							colsJsonm=TotalColsArrm
-						}
-						var param = {
-							CrNo: crNo,
-						}; 
-						table.render({
-							elem: '#LAY-app-content-list2',
-							url: IP + "/BllCheck/GetStockCheckDetailList",
-							method: 'post',
-							height: h2 ,//'full-'+hei1	
-							id: 'LAY-app-content-list2',
-							where: param,
-							contentType: 'application/json',
-							toolbar: '#toolbarDemo',
-							defaultToolbar: [], //'filter','print', 'exports'
-							headers: { ToKen: $.cookie('token') },
-							page: true,
-							even: true,
-							limit: pageCnt,
-							limits: pageLimits,
-							cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
-							done: function (res) {
-								initMenu();
-								//鑷畾涔夊垪瀹�
-								SetTableColW('LAY-app-content-list2','BllCheck/GetStockCheckDetailList',TotalColsSysArrm);
-							},
-							cols: colsJsonm
-						});
-						// var param = {
-						// 	CrNo: crNo,
-						// }; 
-						// table.render({
-						// 	elem: '#LAY-app-content-list2',
-						// 	url: IP + "/BllCheck/GetStockCheckDetailList",
-						// 	method: 'POST',
-						// 	height: h2,
-						// 	id: 'LAY-app-content-list2',
-						// 	where: param,
-						// 	contentType: 'application/json',
-						// 	headers:{ToKen:$.cookie('token')},
-						// 	toolbar:'#toolbarDemo',
-						// 	defaultToolbar:  ['filter'], //'print', 'exports'
-						// 	page: true, 
-						// 	limit: pageCnt,
-						// 	limits: pageLimits,
-						// 	cellMinWidth: 60, //鍏ㄥ眬瀹氫箟甯歌鍗曞厓鏍肩殑鏈�灏忓搴︼紝layui 2.2.1 鏂板
-						// 	done: function(){ 
-						// 		initMenu();
-						// 	}, 
-						// 	cols: [
-						// 	[
-						// 		{title:'搴忓彿', type:'numbers', width:65, fixed:'left', }, 
-						// 		{field:'CrNo', title:'鐩樼偣鍗曞彿', align:'center', fixed:'left', width: 165, },
-						// 		{field:'PalletNo', title:'鎵樼洏鍙�', align:'center', fixed:'left', width: 165, },
-						// 		{field:'Qty', title:'搴撳瓨鏁伴噺', align:'center', fixed:'left', width: 105, },
-						// 		{field:'RealQty', title:'瀹為檯鏁伴噺', align:'center', width: 105, },
-						// 		{field:'Status', title:'鎵ц鐘舵��', align:'center', width: 105, templet : '#StatusmingButton', },
-						// 		{field:'CheckResult', title:'鐩樼偣缁撴灉', align:'center', width:105,  templet : '#CheckResultButton', },
-						// 		{field:'SkuNo', title:'鐗╂枡缂栫爜', align:'center', width:105, },
-						// 		{field:'SkuName', title:'鐗╂枡鍚嶇О', align:'center', width:125, },
-						// 		{field:'Standard', title:'瑙勬牸', align:'center', width:225, },
-						// 		{field:'LotNo', title:'鎵规鍙�', align:'center', width:105, },
-						// 		{field:'LotText', title:'鎵规鎻忚堪', align:'center', width:105, },
-						// 		{field:'SupplierLot', title:'渚涜揣鎵规', align:'center', width:105, },
-						// 		{field: 'CreateUserName', title:'鍒涘缓浜�', align:'center', width:100, },
-						// 		{field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center',width: 160,  templet: '#CreateTimeButton',},
-						// 		{field: 'UpdateUserName',title: '淇敼浜�',align: 'center',width: 120,hide:true},
-						// 		{field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',width: 160,hide:true, templet: '#UpdateTimeButton',},
-						// 	]]
-						// });
-					});
-				}
-				//鎼滅储
-				form.on('submit(LAY-app-contlist-search)', function(data) {
-					refreshTable();
-					// refreshTablemx(xqid);
+			});
+			//鏉冮檺
+			function initMenu() {
+				$(function () {
+					$(".addClass").hide();
+					$(".editClass").hide();
+					$(".delClass").hide();
+					$(".checkOut").hide();
+					$(".addAdjust").hide();
+					$(".editDemoClass").hide();//澶囨敞
 				});
-				//鏉冮檺
-				function initMenu() {
-					$(function() {
-						$(".addClass").hide();
-						$(".editClass").hide();
-						$(".delClass").hide();
-						$(".checkOut").hide();
-						$(".addAdjust").hide();
-						$(".editDemoClass").hide();//澶囨敞
-					});
-					sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function(res) {
-						if (res.code == 0) { //鎴愬姛 
-							for (var k = 0; k < res.data.length; k++) {
-								if (res.data[k].MenuName == "娣诲姞鐩樼偣鍗�") {
-									$(function() {
-										$(".addClass").show();
-									});
-								}
-								if (res.data[k].MenuName == "缂栬緫鐩樼偣鍗�") {
-									$(function() {
-										$(".editClass").show();
-									});
-								}
-								if (res.data[k].MenuName == "鍒犻櫎鐩樼偣鍗�") {
-									$(function() {
-										$(".delClass").show();
-									});
-								}
-								if (res.data[k].MenuName == "鐩樼偣鍑哄簱") {
-									$(function() {
-										$(".checkOut").show();
-									});
-								}
-								if (res.data[k].MenuName == "璋冩暣搴撳瓨") {
-									$(function() {
-										$(".addAdjust").show();
-									});
-								}
-								if (res.data[k].MenuName == "缁存姢鐩樼偣鍗曞娉�") {
-									$(function() {
-										$(".editDemoClass").show(); 
-									});
-								}
+				sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) {
+					if (res.code == 0) { //鎴愬姛 
+						for (var k = 0; k < res.data.length; k++) {
+							if (res.data[k].MenuName == "娣诲姞鐩樼偣鍗�") {
+								$(function () {
+									$(".addClass").show();
+								});
 							}
-						} else { //涓嶆垚鍔�
-							layer.msg('鑾峰彇鏉冮檺淇℃伅澶辫触', {
-								icon: 2,
-								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-							}, function() {});
+							if (res.data[k].MenuName == "缂栬緫鐩樼偣鍗�") {
+								$(function () {
+									$(".editClass").show();
+								});
+							}
+							if (res.data[k].MenuName == "鍒犻櫎鐩樼偣鍗�") {
+								$(function () {
+									$(".delClass").show();
+								});
+							}
+							if (res.data[k].MenuName == "鐩樼偣鍑哄簱") {
+								$(function () {
+									$(".checkOut").show();
+								});
+							}
+							if (res.data[k].MenuName == "璋冩暣搴撳瓨") {
+								$(function () {
+									$(".addAdjust").show();
+								});
+							}
+							if (res.data[k].MenuName == "缁存姢鐩樼偣鍗曞娉�") {
+								$(function () {
+									$(".editDemoClass").show();
+								});
+							}
 						}
-					});
-				}
-				//瑙﹀彂琛屽崟鍑讳簨浠�
-				table.on('row(LAY-app-content-list)', function(obj) {
-					refreshTablemx(obj.data.CrNo);
-					xqid = "obj.data.CrNo";
-				});
-
-
-
-				//--------------------------------------------------------------------------------------------
-				//澶村伐鍏锋爮浜嬩欢
-				table.on('toolbar(LAY-app-content-list2)', function(obj){
-					var checkStatus = table.checkStatus(obj.config.id);
-					if (obj.event == "add") {
-						layer.open({
-							type: 2,
-							title: '娣诲姞鐩樼偣鍗�',
-							content: 'StockCheckFrom.html',
-							maxmin: true,
-							area: ['1200px', '90%'],
-						});
+					} else { //涓嶆垚鍔�
+						layer.msg('鑾峰彇鏉冮檺淇℃伅澶辫触', {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						}, function () { });
 					}
 				});
-				//鐩戝惉鏁版嵁鎿嶄綔
-				table.on('tool(LAY-app-content-list)', function(obj) {
-					var data = obj.data;
-					console.log(data);
-					Id = data.Id;
-					CrNo = data.CrNo;
-					if (obj.event === 'del') {//鍒犻櫎
-						layer.confirm('纭畾鍒犻櫎姝ゅ崟鎹悧锛�', function(index) {
-							var param = {
-								Id: parseInt(Id), 
-							};
-							sendData(IP + "/BllCheck/DelStockCheck", param, 'post', function(res) {
-								console.log(res);
-								if (res.code == 0) { //鎴愬姛
-									layer.msg(res.msg, {
-										icon: 1,
-										time: 1000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-									}, function() {
-										refreshTable();
-									});
-								} else { //涓嶆垚鍔�
-									layer.msg(res.msg, {
-										icon: 2,
-										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-									}, function() {});
-								}
-							});
-						});
-					} else if (obj.event === 'finish') {//鐢熸垚璋冩暣鍗�
-						layer.confirm('纭畾璋冩暣搴撳瓨鍚楋紵', function(index) {
-							var param = {
-								Id: parseInt(Id), 
-								Origin:data.Origin
-							};
-							sendData(IP + "/UpApi/FinishCr", param, 'post', function(res) {
-								console.log(res);
-								if (res.code == 0) { //鎴愬姛
-									layer.msg(res.msg, {
-										icon: 1,
-										time: 1000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-									}, function() {
-										refreshTable();
-									});
-								} else { //涓嶆垚鍔�
-									layer.msg(res.msg, {
-										icon: 2,
-										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-									}, function() {
-										refreshTable();
-									});
-								}
-							});
-						});
-					}else if(obj.event === 'edit'){//缂栬緫
-						layer.open({
-							type: 2,
-							title: '缂栬緫鐩樼偣鍗�',
-							content: 'StockCheckFrom.html?crNo='+CrNo,
-							maxmin: true,
-							area: ['1200px', '90%'],
-						});
-					}else if(obj.event === 'outbound'){
-						layer.open({
-							type: 1,
-							title: '纭鍑哄簱鍙�',
-							content: $('#divPickingArea'),
-							maxmin: true,
-							area: ['300px','265px'],
-							btn: ['纭畾', '鍙栨秷'],
-							yes: function(index, layero) {
-								var pa = $('#PickingArea').val();
-								if (isChongFu== true) {
-									isChongFu= false;
-								
-									var param = {
-										crNo: data.CrNo, 
-										outMode: pa,
-									};
-									sendData(IP + "/DownApi/CheckOutHouse", param, 'get', function(res) {
-										console.log(res);
-										if (res.code == 0) { //鎴愬姛
-											layer.msg(res.msg, {
-												icon: 1,
-												time: 3000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-											}, function() {
-												refreshTable();
-												isChongFu= true;
-											});
-										} else { //涓嶆垚鍔�
-											layer.msg(res.msg, {
-												icon: 2,
-												time: 3000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-											}, function() {
-												refreshTable();
-												isChongFu= true;
-											});
-										}
-										layer.close(index);
-									});
-								}else{
-									layer.msg("璇峰嬁閲嶅鐐瑰嚮", {
-										icon: 2,
-										time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-									});
-								}
+			}
+			//瑙﹀彂琛屽崟鍑讳簨浠�
+			table.on('row(LAY-app-content-list)', function (obj) {
+				refreshTablemx(obj.data.CrNo);
+				xqid = "obj.data.CrNo";
+			});
+
+
+
+			//--------------------------------------------------------------------------------------------
+			//澶村伐鍏锋爮浜嬩欢
+			table.on('toolbar(LAY-app-content-list2)', function (obj) {
+				var checkStatus = table.checkStatus(obj.config.id);
+				if (obj.event == "add") {
+					layer.open({
+						type: 2,
+						title: '娣诲姞鐩樼偣鍗�',
+						content: 'StockCheckFrom.html',
+						maxmin: true,
+						area: ['1200px', '90%'],
+					});
+				}
+			});
+			//鐩戝惉鏁版嵁鎿嶄綔
+			table.on('tool(LAY-app-content-list)', function (obj) {
+				var data = obj.data;
+				console.log(data);
+				Id = data.Id;
+				CrNo = data.CrNo;
+				if (obj.event === 'del') {//鍒犻櫎
+					layer.confirm('纭畾鍒犻櫎姝ゅ崟鎹悧锛�', function (index) {
+						var param = {
+							Id: parseInt(Id),
+						};
+						sendData(IP + "/BllCheck/DelStockCheck", param, 'post', function (res) {
+							console.log(res);
+							if (res.code == 0) { //鎴愬姛
+								layer.msg(res.msg, {
+									icon: 1,
+									time: 1000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function () {
+									refreshTable();
+								});
+							} else { //涓嶆垚鍔�
+								layer.msg(res.msg, {
+									icon: 2,
+									time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function () { });
 							}
-						}); 
-					}else if(obj.event === 'editDemo'){//缂栬緫澶囨敞
-						$('#NoticeDemo').val(data.Demo);
-						layer.open({
-							type: 1,
-							title: '缁存姢澶囨敞',
-							content: $('#divEditDemo'),
-							maxmin: false,
-							area: ['420px','260px'],
-							btn: ['纭畾', '鍙栨秷'],
-							yes: function(index, layero) {
-								var demo = $('#NoticeDemo').val();
+						});
+					});
+				} else if (obj.event === 'finish') {//鐢熸垚璋冩暣鍗�
+					layer.confirm('纭畾璋冩暣搴撳瓨鍚楋紵', function (index) {
+						var param = {
+							Id: parseInt(Id),
+							Origin: data.Origin
+						};
+						sendData(IP + "/UpApi/FinishCr", param, 'post', function (res) {
+							console.log(res);
+							if (res.code == 0) { //鎴愬姛
+								layer.msg(res.msg, {
+									icon: 1,
+									time: 1000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function () {
+									refreshTable();
+								});
+							} else { //涓嶆垚鍔�
+								layer.msg(res.msg, {
+									icon: 2,
+									time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function () {
+									refreshTable();
+								});
+							}
+						});
+					});
+				} else if (obj.event === 'edit') {//缂栬緫
+					layer.open({
+						type: 2,
+						title: '缂栬緫鐩樼偣鍗�',
+						content: 'StockCheckFrom.html?crNo=' + CrNo,
+						maxmin: true,
+						area: ['1200px', '90%'],
+					});
+				} else if (obj.event === 'outbound') {
+					layer.open({
+						type: 1,
+						title: '纭鍑哄簱鍙�',
+						content: $('#divPickingArea'),
+						maxmin: true,
+						area: ['300px', '265px'],
+						btn: ['纭畾', '鍙栨秷'],
+						yes: function (index, layero) {
+							var pa = $('#PickingArea').val();
+							if (isChongFu == true) {
+								isChongFu = false;
+
 								var param = {
-									id: data.Id,
-									demo: demo,
+									crNo: data.CrNo,
+									outMode: pa,
 								};
-								sendData(IP + "/BllCheck/EditNoticeDemo", param, 'get', function(res) {
+								sendData(IP + "/DownApi/CheckOutHouse", param, 'get', function (res) {
+									console.log(res);
 									if (res.code == 0) { //鎴愬姛
-										refreshTable();
 										layer.msg(res.msg, {
 											icon: 1,
-											time: 1500 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-										}, function() {
-											
+											time: 3000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+										}, function () {
+											refreshTable();
+											isChongFu = true;
 										});
 									} else { //涓嶆垚鍔�
 										layer.msg(res.msg, {
 											icon: 2,
 											time: 3000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-										}, function() {
+										}, function () {
 											refreshTable();
+											isChongFu = true;
 										});
 									}
 									layer.close(index);
 								});
+							} else {
+								layer.msg("璇峰嬁閲嶅鐐瑰嚮", {
+									icon: 2,
+									time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								});
 							}
-						}); 
-					}
-				});
-				
-				var $ = layui.$,
-					active = {
-						customCols: function(){
-							layer.open({
-								type: 2,
-								title: '鑷畾涔夊垪',
-								content: '../SystemSettings/HeaderSetting.html?Href=BllCheck/GetStockCheckList&ColsSysArr='+TotalColsSysArrz,
-								maxmin: false,
-								resize: false,
-								area: ['970px', '650px']
+						}
+					});
+				} else if (obj.event === 'vision') {
+					
+					layer.confirm('纭畾瑙嗚鐩樼偣', function () {
+						if (isChongFu == true) {
+							isChongFu = false;
+							var param = {
+								crNo: data.CrNo
+							};
+							sendData(IP + "/DownApi/CheckVision", param, 'get', function (res) {
+								console.log(res);
+								if (res.code == 0) { //鎴愬姛
+									layer.msg(res.msg, {
+										icon: 1,
+										time: 3000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+									}, function () {
+										refreshTable();
+										isChongFu = true;
+									});
+								} else { //涓嶆垚鍔�
+									layer.msg(res.msg, {
+										icon: 2,
+										time: 3000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+									}, function () {
+										refreshTable();
+										isChongFu = true;
+									});
+								}
+								layer.close(index);
 							});
-						},
-						customCols2: function(){
-							layer.open({
-								type: 2,
-								title: '鑷畾涔夊垪',
-								content: '../SystemSettings/HeaderSetting.html?Href=BllCheck/GetStockCheckDetailList&ColsSysArr='+TotalColsSysArrm,
-								maxmin: false,
-								resize: false,
-								area: ['970px', '650px']
+						} else {
+							layer.msg("璇峰嬁閲嶅鐐瑰嚮", {
+								icon: 2,
+								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+							}, function () {
+								isChongFu = true
 							});
 						}
-					};
-				$('.layui-btn').on('click', function() {
-					var type = $(this).data('type');
-					active[type] ? active[type].call(this) : '';
-				});
-				
+					}, function () {
+
+					});
+				} else if (obj.event === 'editDemo') {//缂栬緫澶囨敞
+					$('#NoticeDemo').val(data.Demo);
+					layer.open({
+						type: 1,
+						title: '缁存姢澶囨敞',
+						content: $('#divEditDemo'),
+						maxmin: false,
+						area: ['420px', '260px'],
+						btn: ['纭畾', '鍙栨秷'],
+						yes: function (index, layero) {
+							var demo = $('#NoticeDemo').val();
+							var param = {
+								id: data.Id,
+								demo: demo,
+							};
+							sendData(IP + "/BllCheck/EditNoticeDemo", param, 'get', function (res) {
+								if (res.code == 0) { //鎴愬姛
+									refreshTable();
+									layer.msg(res.msg, {
+										icon: 1,
+										time: 1500 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+									}, function () {
+
+									});
+								} else { //涓嶆垚鍔�
+									layer.msg(res.msg, {
+										icon: 2,
+										time: 3000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+									}, function () {
+										refreshTable();
+									});
+								}
+								layer.close(index);
+							});
+						}
+					});
+				}
 			});
-		</script>
-	</body>
-</html>
+
+			var $ = layui.$,
+				active = {
+					customCols: function () {
+						layer.open({
+							type: 2,
+							title: '鑷畾涔夊垪',
+							content: '../SystemSettings/HeaderSetting.html?Href=BllCheck/GetStockCheckList&ColsSysArr=' + TotalColsSysArrz,
+							maxmin: false,
+							resize: false,
+							area: ['970px', '650px']
+						});
+					},
+					customCols2: function () {
+						layer.open({
+							type: 2,
+							title: '鑷畾涔夊垪',
+							content: '../SystemSettings/HeaderSetting.html?Href=BllCheck/GetStockCheckDetailList&ColsSysArr=' + TotalColsSysArrm,
+							maxmin: false,
+							resize: false,
+							area: ['970px', '650px']
+						});
+					}
+				};
+			$('.layui-btn').on('click', function () {
+				var type = $(this).data('type');
+				active[type] ? active[type].call(this) : '';
+			});
+
+		});
+	</script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/HTML/views/SOSetting/ExportAllot.html b/HTML/views/SOSetting/ExportAllot.html
index 24dfb71..fa289d7 100644
--- a/HTML/views/SOSetting/ExportAllot.html
+++ b/HTML/views/SOSetting/ExportAllot.html
@@ -329,7 +329,7 @@
 			var mxId = "0";
 			var yemianid = 0;
 			refreshTable();
-			refreshTablemx(mxId)
+			//refreshTablemx(mxId)
 			//娓叉煋鍑哄簱鍒嗛厤table
 			//#region 鑷畾涔夎〃澶�
 			var TotalColsArr = [[
diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html
index 0568bea..ffa8410 100644
--- a/HTML/views/SOSetting/ExportNotice.html
+++ b/HTML/views/SOSetting/ExportNotice.html
@@ -324,6 +324,21 @@
 							}}
 							{{ GetBtn9(d) }}
 						</script>
+
+					<script type="text/html" id="templetIsMixBox">
+						{{# function GetBtn10(d){
+								switch (d.IsMixBox) {
+									case "0":
+										return "鍚�"; 
+									case "1":
+										return "鏄�"; 
+									default:
+										return ""; 
+								}
+							}	
+						}}
+						{{ GetBtn10(d) }}
+					</script>
 					<!-- #endregion -->
 				</div>
 
@@ -770,6 +785,7 @@
 				{ field: 'CompleteQty', title: '鎷h揣鏁伴噺', align: 'center', width: 100 },
 				{ field: 'IsBale', title: '鏄惁瑁瑰寘', align: 'center', templet: '#templetIsBale', width: 90 },
 				{ field: 'IsBelt', title: '鏄惁鎵撳甫', align: 'center', templet: '#templetIsBelt', width: 90 },
+				{ field: 'IsMixBox', title: '鏄惁鎷肩', align: 'center', templet: '#templetIsMixBox', width: 90 },
 				{ field: 'LotText', title: '鎵规鎻忚堪', align: 'center', width: 100 },
 				{ field: 'PackagName', title: '鍖呰鍚嶇О', align: 'center', width: 120 },
 				{ field: 'SupplierLot', title: '渚涜揣鎵规', align: 'center', width: 120 },
@@ -1181,31 +1197,37 @@
 										isChongFu = true;
 									});
 								} else { //涓嶆垚鍔�
-
-									layer.confirm('褰撳墠鍗曟嵁鎵规鍑哄簱鏄法鎵瑰嚭搴擄紝鏄惁璺ㄦ壒鍑哄簱锛�', function () {
-										var param1 = {
-											soNo: SoNo,
-											tab: "1"
-										};
-										sendData(IP + "/BllSo/ExportAutoAllot", param1, 'get', function (res) {
-											if (res.code == 0) { //鎴愬姛
-												layer.msg("鎿嶄綔鎴愬姛锛�", {
-													icon: 1,
-													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-												}, function () {
-													refreshTable();
-													isChongFu = true;
-												});
-											} else {
-												layer.msg(res.msg, {
-													icon: 2,
-													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-												}, function () {
-													isChongFu = true;
-												});
-											}
+									if(res.code==2){
+										layer.confirm('褰撳墠鍗曟嵁鎵规鍑哄簱鏄法鎵瑰嚭搴擄紝鏄惁璺ㄦ壒鍑哄簱锛�', function () {
+											var param1 = {
+												soNo: SoNo,
+												tab: "1"
+											};
+											sendData(IP + "/BllSo/ExportAutoAllot", param1, 'get', function (res) {
+												if (res.code == 0) { //鎴愬姛
+													layer.msg("鎿嶄綔鎴愬姛锛�", {
+														icon: 1,
+														time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+													}, function () {
+														refreshTable();
+														isChongFu = true;
+													});
+												} else {
+													layer.msg(res.msg, {
+														icon: 2,
+														time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+													}, function () {
+														isChongFu = true;
+													});
+												}
+											})
 										})
-									})
+									}else{
+										layer.msg(res.msg, {
+											icon: 2,
+											time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+										});
+									}									
 									isChongFu = true;
 								}
 							});
diff --git a/Pda/View/login.html b/Pda/View/login.html
index 837a106..8c75686 100644
--- a/Pda/View/login.html
+++ b/Pda/View/login.html
@@ -195,12 +195,12 @@
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 					} else {
-						if(res.code==200){//鎴愬姛
+						if(res.code==0){//鎴愬姛
 							layer.msg('鐧婚檰鎴愬姛', {
 								icon: 1,
 								time: 500 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 							}, function () {
-								$.cookie('token', res.ToKen.TokenStr);
+								$.cookie('token', res.data);
 								//鍥炶皟
 								location.href="/View/index.html";
 							});
diff --git a/Wms/Model/InterFaceModel/SoModel.cs b/Wms/Model/InterFaceModel/SoModel.cs
index c48ca16..b9bf606 100644
--- a/Wms/Model/InterFaceModel/SoModel.cs
+++ b/Wms/Model/InterFaceModel/SoModel.cs
@@ -67,6 +67,13 @@
         /// 涓婃父绯荤粺鏄庣粏鍗曞彿
         /// </summary>
         public string OrderDetailCode { get; set; }
+
+        /// <summary>
+        /// Desc:鏄惁鎺ュ彈鎷肩
+        /// Default: 0锛氬惁  1锛氭槸
+        /// Nullable:True
+        /// </summary>
+        public string IsMixBox { get; set; }
     }
 
     /// <summary>
diff --git a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs
index 4ef74ba..05405f8 100644
--- a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs
+++ b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs
@@ -96,6 +96,11 @@
         public string IsBelt { get; set; }
 
         /// <summary>
+        /// 鏄惁鎺ュ彈鎷肩
+        /// </summary>
+        public string IsMixBox { get; set; }
+
+        /// <summary>
         /// Desc:渚涜揣鎵规
         /// </summary>           
         public string SupplierLot { get; set; }
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 86fe9e7..93c6c16 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -8,17 +8,15 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq.Expressions;
-using Model.ModelVm.BllAsnVm;
-using Newtonsoft.Json;
-using Utility.Tools;
+using System.Threading.Tasks;
 using WMS.BLL.LogServer;
 using WMS.DAL;
 using WMS.Entity.BllAsnEntity;
+using WMS.Entity.BllSoEntity;
 using WMS.Entity.Context;
+using WMS.Entity.DataEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.IBllAsnServer;
-using WMS.Entity.BllSoEntity;
-using WMS.Entity.DataEntity;
 
 namespace WMS.BLL.BllAsnServer
 {
@@ -34,114 +32,105 @@
         #endregion
 
         #region 浜嬩欢鏂规硶
-        public List<ArrivalNoticeDto> GetArrivalNoticeList(ArrivalNoticeVm model, out int count)
+        public async Task<List<ArrivalNoticeDto>> GetArrivalNoticeList(ArrivalNoticeVm model, RefAsync<int> count)
         {
-            string sqlString = string.Empty;
-            string sqlCount = string.Empty;
-            string sqlPub = string.Empty;
-            try
-            {
-                sqlCount += "SELECT DISTINCT COUNT(tb1.ID) FROM BllArrivalNotice AS tb1 ";
-                sqlString += "SELECT DISTINCT tb1.*,tb3.RealName as CreateUserName,tb4.RealName as UpdateUserName,tb5.RealName as CheckUserName FROM BllArrivalNotice AS tb1 ";
-                sqlPub += "LEFT JOIN BllArrivalNoticeDetail AS tb2 ON tb1.ASNNo = tb2.ASNNo ";
-                sqlPub += "LEFT JOIN SysUserInfor AS tb3 ON tb1.CreateUser = tb3.Id ";
-                sqlPub += "LEFT JOIN SysUserInfor AS tb4 ON tb1.UpdateUser = tb4.Id ";
-                sqlPub += "LEFT JOIN SysUserInfor AS tb5 ON tb1.CheckUser = tb5.Id ";
-                sqlPub += $"WHERE tb1.ASNNo LIKE '%{model.ASNNo}%' AND tb2.LotNo LIKE '%{model.LotNo}%' ";
-                sqlPub += $"AND tb2.SkuNo  LIKE '%{model.SkuNo}%' AND tb2.SkuName  LIKE '%{model.SkuName}%' ";
-                sqlPub += $"AND tb1.CustomerName  LIKE '%{model.CustomerName}%' ";                
-                if (!string.IsNullOrEmpty(model.OrderCode))
+            var modelList = await Db.Queryable<BllArrivalNotice,BllArrivalNoticeDetail, SysUserInfor, SysUserInfor,
+                SysUserInfor>((tb1, tb2, tb3, tb4,tb5)  => new JoinQueryInfos(
+                    JoinType.Left, tb1.ASNNo == tb2.ASNNo,
+                    JoinType.Left, tb1.CreateUser == tb3.Id,
+                    JoinType.Left, tb1.UpdateUser == tb4.Id,
+                    JoinType.Left, tb1.CheckUser == tb5.Id))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.ASNNo), tb1 => tb1.ASNNo.Contains(model.ASNNo))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), (tb1,tb2) => tb2.LotNo.Contains(model.LotNo))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), (tb1,tb2) => tb2.SkuNo.Contains(model.SkuNo))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), (tb1,tb2) => tb2.SkuName.Contains(model.SkuName))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.OrderCode), tb1 => tb1.OrderCode.Contains(model.OrderCode))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.Status), tb1 => tb1.Status == model.Status)
+                .WhereIF(!string.IsNullOrWhiteSpace(model.Type), tb1 => tb1.Type == model.Type)
+                .WhereIF(!string.IsNullOrWhiteSpace(model.StartTime), tb1 => tb1.CreateTime >= Convert.ToDateTime(model.StartTime))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.EndTime), tb1 => tb1.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1))
+                .WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName))
+                .Where(tb1 => tb1.IsDel == "0")
+                .OrderByDescending(tb1 => tb1.ASNNo)
+                .Distinct()
+                .Select((tb1, tb2, tb3, tb4, tb5) => new ArrivalNoticeDto()
                 {
-                    sqlPub += $"AND tb1.OrderCode LIKE '%{model.OrderCode}%' ";
-                }
-                if (!string.IsNullOrEmpty(model.Status))
-                {
-                    sqlPub += $"AND tb1.Status = '{model.Status}' ";
-                }
-                if (!string.IsNullOrEmpty(model.Type))
-                {
-                    if (model.Type == "3")
-                    {
-                        sqlPub += $"AND tb1.Type = '{model.Type}' ";
-                    }
-                    else
-                    {
-                        sqlPub += $"AND tb1.Type = '{model.Type}' AND tb1.Type != '3' ";
-                    }
-                }
-                else
-                {
-                    sqlPub += " AND tb1.Type != '3'";
+                    Id = tb1.Id,
+                    ASNNo = tb1.ASNNo,
+                    Type = tb1.Type,
+                    Status = tb1.Status,
+                    Origin = tb1.Origin,
+                    CustomerNo = tb1.CustomerNo,
+                    CustomerName = tb1.CustomerName,
+                    LotNo = tb1.LotNo,
+                    LotText = tb1.LotText,
+                    CheckTime = ((DateTime)tb1.CheckTime).ToString("yyyy-MM-dd HH:mm:ss"),
+                    CheckUserName = tb5.RealName,
+                    SupplierLot = tb1.SupplierLot,
+                    Demo = tb1.Demo,
+                    OrderCode = tb1.OrderCode,
+                    CompleteTime = tb1.CompleteTime,
+                    CreateTime = tb1.CreateTime,
+                    CreateUserName = tb3.RealName,
+                    UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
+                    UpdateUserName = tb4.RealName
 
-                }
-                if (!string.IsNullOrEmpty(model.StartTime))
-                {
-                    sqlPub += $"AND tb1.CreateTime >= '{model.StartTime}' ";
-                }
-                if (!string.IsNullOrEmpty(model.EndTime))
-                {
-                    sqlPub += $"AND tb1.CreateTime <= '{model.EndTime}' ";
-                }
-                sqlCount += sqlPub + "AND tb1.IsDel = '0' ";
-                sqlPub += "AND tb1.IsDel = '0' order by tb1.ASNNo desc ";
-                if (model.Page == 0)
-                {
-                    model.Page = 1;
-                }
-                sqlString += sqlPub + $" offset {((model.Page - 1) * model.Limit)} rows fetch next {model.Limit} rows only;";
+                }).ToPageListAsync(model.Page, model.Limit, count);
 
-                var com = new Common();
-                count = com.GetRowCount(sqlCount);
-
-                var modelList = Db.Ado.SqlQuery<ArrivalNoticeDto>(sqlString);
-
-                return modelList;
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
+            return modelList;   
         }
 
-        public List<ArrivalNoticeDetailDto> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, out int count)
+        public async Task<List<ArrivalNoticeDetailDto>> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, RefAsync<int> count)
         {
-            string sqlString = string.Empty;
-            string sqlCount = string.Empty;
-            int rowCount = 1;
-            try
-            {
-                if (model.Page == 0)
-                {
-                    model.Page = 1;
-                }
-                sqlCount += $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' and isdel = '0';";
-                var com = new Common();
-                count = com.GetRowCount(sqlCount);
-                if (count != 0)
-                {
-                    rowCount = count;
-                }
+            var item = Expressionable.Create<BllArrivalNoticeDetail>()
+                .AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo == model.ASNNo)
+                .AndIF(true, it => it.IsDel == "0")
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
-                sqlString += "SELECT DISTINCT tb1.*,tb2.Type as AsnType,tb2.Status as AsnStatus,tb3.RealName as CreateUserName, ";
-                sqlString += "tb4.RealName as UpdateUserName,isnull(tb6.UnitName,tb5.UnitNo) as UnitName,tb7.PackagName,tb5.IsPasteCode ";
-                sqlString += "FROM BllArrivalNoticeDetail AS tb1 ";
-                sqlString += "LEFT JOIN BllArrivalNotice AS tb2 ON tb1.ASNNo = tb2.ASNNo ";
-                sqlString += "LEFT JOIN SysUserInfor AS tb3 ON tb1.CreateUser = tb3.Id ";
-                sqlString += "LEFT JOIN SysUserInfor AS tb4 ON tb1.UpdateUser = tb4.Id ";
-                sqlString += "LEFT JOIN SysMaterials AS tb5 on tb1.SkuNo = tb5.SkuNo ";
-                sqlString += "LEFT JOIN SysUnit AS tb6 on tb5.UnitNo = tb6.UnitNo ";
-                sqlString += "LEFT JOIN SysPackag AS tb7 on tb1.PackagNo = tb7.PackagNo ";
-                sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' order by tb1.SkuNo desc ";
-                sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;";
+            var modelList = await Db.Queryable<BllArrivalNoticeDetail>().Where(item)
+                .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo)
+                .LeftJoin<SysUserInfor>((tb1, tb2,tb3) => tb1.CreateUser == tb3.Id)
+                .LeftJoin<SysUserInfor>((tb1,tb2,tb3,tb4) => tb1.UpdateUser == tb4.Id)
+                .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4,tb5) => tb1.SkuNo == tb5.SkuNo)
+                .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5,tb6) => tb5.UnitNo == tb6.UnitNo)
+                .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6,tb7) => tb1.PackagNo == tb7.PackagNo)
+                .Select((tb1, tb2, tb3, tb4, tb5,tb6, tb7) => new ArrivalNoticeDetailDto()
+                 {
+                     Id = tb1.Id,
+                     ASNNo = tb1.ASNNo,
+                     SkuNo = tb1.SkuNo,
+                     SkuName = tb1.SkuName,
+                     Standard = tb1.Standard,
+                     LotNo = tb1.LotNo,
+                     LotText = tb1.LotText,
+                     Qty = tb1.Qty,
+                     FactQty = tb1.FactQty,
+                     CompleteQty = tb1.CompleteQty,
+                     IsSampling = tb1.IsSampling,
+                     InspectStatus = tb1.InspectStatus,
+                     PackagNo = tb1.PackagNo,
+                     PackagName = tb7.PackagName,
+                     UnitName = tb6.UnitName,
+                     IsBale = tb1.IsBale,
+                     IsBelt = tb1.IsBelt,
+                     SupplierLot = tb1.SupplierLot,
+                     Status = tb1.Status,
+                     AsnType = tb2.Type,
+                     AsnStatus = tb2.Status,
+                     UDF1 = tb1.UDF1,
+                     UDF2 = tb1.UDF2,
+                     UDF3 = tb1.UDF3,
+                     UDF4 = tb1.UDF4,
+                     UDF5 = tb1.UDF5,
+                     CompleteTime = tb1.CompleteTime,
+                     CreateTime = tb1.CreateTime,
+                     CreateUserName = tb3.RealName,
+                     UpdateTime = ((DateTime)tb1.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"),
+                    UpdateUserName = tb4.RealName
+                 }).ToPageListAsync(model.Page, model.Limit, count);
 
-                var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString);
-
-                return modelList;
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
+            return modelList;
         }
 
         //鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲�
@@ -173,49 +162,32 @@
             {
                 string skuType = string.Empty;
                 int IsPack = 2; // 0锛氫笉璐� 1锛氳创 2锛氫笉绠�
-                /**
-                 * 鎴愬搧璐� 		0
-                 * 閲囪喘鍙创鍙笉璐�	1
+                /** model.type 锛堝崟鎹被鍨�)
+                 * 鎴愬搧鍏ュ簱     0
+                 * 閲囪喘鍏ュ簱 	1
                  * 涓棿鍝佷笉璐�	2
-                 * 閫�璐ц创		3
-                 * 浣欐枡閫�鍥炲彲璐村彲涓嶈创	4
-                 * 鍏跺畠鍙创鍙笉璐�	5
-                 * 浠e偍涓嶈创		6
-                 * 瀵勫瓨涓嶈创		7
+                 * 閫�璐у叆搴�		3
+                 * 浣欐枡閫�鍥炲叆搴�	4
                  */
                 switch (model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
                 {
                     case "0"://鎴愬搧鍏ュ簱
                         skuType = "(2)";
-                        IsPack = 1; //璐�
                         break;
                     case "1"://閲囪喘鍏ュ簱
                         skuType = "(0,1,3)";
                         break;
                     case "2"://涓棿鍝佸叆搴�
                         skuType = "(4)";
-                        IsPack = 0; //涓嶈创
                         break;
                     case "3"://閫�璐у叆搴�
-                        skuType = "(0,2)";
-                        IsPack = 1; //璐�
+                        skuType = "(2)";
                         break;
                     case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
-                        skuType = "(0,1,3)";
-                        break;
-                    case "5"://鍏跺畠鍏ュ簱
-                        skuType = "(0,1,2,3,4)";
-                        break;
-                    case "6"://浠e偍鍏ュ簱
-                        skuType = "(2)";
-                        IsPack = 0; //涓嶈创
-                        break;
-                    case "7"://瀵勫瓨鍏ュ簱
-                        //skuType = "(3)";
-                        IsPack = 0; //涓嶈创
+                        skuType = "(0,1,2,3)";
                         break;
                     default: //鍏跺畠
-                        //skuType = "(0,1,2,3,4)";
+                        skuType = "(0,1,2,3,4)";
                         break;
                 }
 
@@ -237,8 +209,6 @@
                     .Includes(x => x.UnitInfo)
                     .Includes(x => x.PackagInfo)
                     .ToList();
-
-
 
                 return data.Select(m => new MaterialsDto()
                 {
@@ -274,10 +244,15 @@
         public string AddArrivalNotice(ArrivalNoticeVm model)
         {
             string strMessage = "";
-            string sqlString = string.Empty;
-            string sqlDetailStr = string.Empty;
-            //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-            var TypeLot = "1, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
+
+            /** model.type 锛堝崟鎹被鍨�)
+            * 鎴愬搧鍏ュ簱     0
+            * 閲囪喘鍏ュ簱 	1
+            * 涓棿鍝佷笉璐�	2
+            * 閫�璐у叆搴�		3
+            * 浣欐枡閫�鍥炲叆搴�	4
+            */
+            var TypeLot = "1, 5, 6, 7";         //鎵规鍙负绌哄崟鎹被鍨�
 
             try
             {
@@ -299,14 +274,23 @@
                 
                 lock (AsnLock)
                 {
-                    sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,";
-                    sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( ";
-                    sqlString += $"'{model.ASNNo}','{model.Type}','{model.Origin}','{model.CustomerNo}', ";
-                    sqlString += $"'{model.CustomerName}','{model.LotNo}','{model.LotText}','{model.SupplierLot}','{model.CreateUser}');";
+                    // 鎬昏〃瀹炰綋璧嬪��
+                    BllArrivalNotice ASNModel = new BllArrivalNotice()
+                    {
+                        ASNNo = model.ASNNo,
+                        Type = model.Type,
+                        Origin = model.Origin,
+                        CustomerNo = model.CustomerNo,
+                        CustomerName = model.CustomerName,
+                        Status = "0",
+                        LotNo = model.LotNo,
+                        LotText = model.LotText,
+                        SupplierLot = model.SupplierLot,                     
+                        CreateUser = (int)model.CreateUser
+                    };
 
-                    var detailModels = model.AsnDetail;
-                
-                    foreach (ArrivalNoticeDetailVm detailModel in detailModels)
+                    List<BllArrivalNoticeDetail> details = new List<BllArrivalNoticeDetail>();
+                    foreach (ArrivalNoticeDetailVm detailModel in model.AsnDetail)
                     {
                         if (string.IsNullOrEmpty(detailModel.SkuNo))
                         {
@@ -323,8 +307,7 @@
                             strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
                             continue;
                         }
-                        //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
-                        // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+
                         if (model.Type == "1" || model.Type == "5" || model.Type == "6" || model.Type == "7")
                         {
                             if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
@@ -364,10 +347,14 @@
                                 throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
                             }
                         }
+
                         // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
-                        string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
-                        sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';";
-                        var com = new Common().GetRowCount(sqlCount);
+                        int com = Db.Queryable<BllArrivalNoticeDetail>()
+                            .Where(m => m.ASNNo == model.ASNNo 
+                            && m.SkuNo == detailModel.SkuNo 
+                            && m.LotNo == detailModel.LotNo 
+                            && m.Id != (int)detailModel.Id 
+                            && m.IsDel == "0").ToList().Count();
                         if (com > 0)
                         {
                             strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
@@ -379,26 +366,54 @@
                         }
                         // 璁$畻鍑烘�婚噾棰�
                         detailModel.Money = detailModel.Price * detailModel.Qty;
-                        sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,";
-                        sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,IsSampling,InspectStatus,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
-                        sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
-                        sqlDetailStr += $"'{detailModel.LotNo.Trim()}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
-                        sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','0','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
-                    }
+                        BllArrivalNoticeDetail detail = new BllArrivalNoticeDetail()
+                        {
+                            ASNNo = model.ASNNo,
+                            SkuNo = detailModel.SkuNo,
+                            SkuName = detailModel.SkuName,
+                            Standard = detailModel.Standard,
+                            LotNo = detailModel.LotNo.Trim(),
+                            LotText = detailModel.LotText,
+                            Qty = (decimal)detailModel.Qty,
+                            PackagNo = detailModel.PackagNo,
+                            FactQty = 0,                        // 宸茬粍鏁伴噺
+                            CompleteQty = 0,                    // 瀹屾垚鏁伴噺
+                            Price = detailModel.Price,
+                            Money = detailModel.Money,
+                            IsBale = detailModel.IsBale,
+                            IsBelt = detailModel.IsBelt,
+                            SupplierLot = detailModel.SupplierLot,
+                            Status = "0",
+                            IsSampling = "0",
+                            InspectStatus = "0",
+                            UDF1 = detailModel.UDF1,
+                            UDF2 = detailModel.UDF2,
+                            UDF3 = detailModel.UDF3,
+                            UDF4 = detailModel.UDF4,
+                            UDF5 = detailModel.UDF5,
+                            CreateUser = (int)model.CreateUser,
+                        };
 
-                    if (sqlDetailStr == string.Empty)
+                        details.Add(detail);
+                    }
+                    
+                    // 鍒ゆ柇鏄惁瀛樺湪琚繃婊ゆ帀鐨勬槑缁�
+                    if (details.Count <= 0)
                     {
                         return strMessage;
                     }
+
                     Db.Ado.BeginTran();
 
-                    int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                    var rowDetailCount = 1;
-                    if (sqlDetailStr.Length > 0)
+                    var rowCount = Db.Insertable(ASNModel).ExecuteCommand();
+
+                    var rowDetailCount = 0;
+                    if (details.Count  > 0)
                     {
-                        rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
+                        rowDetailCount = Db.Insertable(details).ExecuteCommand();
                     }
                     Db.Ado.CommitTran();
+
                     if (rowCount > 0 && rowDetailCount > 0)
                     {
                         new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
@@ -435,29 +450,31 @@
                     //7 蹇呴』涓虹┖
                     var TypeLot = "1, 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨�
                     
-                    //if (model.Origin != "褰曞叆")
-                    //{
-                    //    strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;";
-                    //    return strMessage;
-                    //}
-                
-                    sqlString += $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isDel = '0';";
-                    var asnInfo = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
+                    var asnInfo = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0");
+                    if (asnInfo == null) 
+                    {
+                        strMessage = "-1:鍗曞彿涓嶅瓨鍦紝鎴栧凡鍒犻櫎!;";
+                        return strMessage;
+                    }
                     if (asnInfo.Status != "0")
                     {
                         strMessage = "-1:鍗曟嵁鐘舵�佸彉鏇达紝涓嶅彲缂栬緫;";
                         return strMessage;
                     }
 
-                    sqlString = "UPDATE BllArrivalNotice SET ";
-                    sqlString += $"CustomerNo = '{model.CustomerNo}',CustomerName = '{model.CustomerName}',";
-                    sqlString += $"LotNo = '{model.LotNo}',LotText = '{model.LotText}',";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}'";
+                    var dateTime = DateTime.Now;
+                    // 缂栬緫鎬诲崟
+                    asnInfo.CustomerNo = model.CustomerNo;
+                    asnInfo.CustomerName = model.CustomerName;
+                    asnInfo.LotNo = model.LotNo;
+                    asnInfo.LotText = model.LotText;
+                    asnInfo.UpdateTime = dateTime;
+                    asnInfo.UpdateUser = model.CreateUser;
 
                     var detailModels = model.AsnDetail;
                     sqlDetailStr += $"SELECT * FROM BllArrivalNoticeDetail WHERE ASNNo = '{model.ASNNo}' and isDel = '0';";
-                    var dbDetailModels = DataContext.Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sqlDetailStr);
+                    //var dbDetailModels = DataContext.Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sqlDetailStr);
+                    var dbDetailModels = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0").ToList();
 
                     sqlDetailStr = string.Empty;
                     // 澶勭悊宸插垹闄ょ殑鏄庣粏
@@ -465,13 +482,16 @@
                     {
                         if (detailModels.Count(it => it.Id == dbDetailModel.Id) == 0)
                         {
-                            sqlDetailStr += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
-                            sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                            sqlDetailStr += $"WHERE Id = {dbDetailModel.Id};";
+                            dbDetailModel.IsDel = "1";
+                            dbDetailModel.UpdateTime = dateTime;
+                            dbDetailModel.UpdateUser = model.CreateUser;
                         }
                     }
-                    string toDayTime = DateTime.Now.ToString("yyyyMMdd");
+
                     // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏
+                    string toDayTime = dateTime.ToString("yyyymmdd");
+                    List<BllArrivalNoticeDetail> addDetails = new List<BllArrivalNoticeDetail>();
+                    List<BllArrivalNoticeDetail> editDetails = new List<BllArrivalNoticeDetail>();
                     foreach (ArrivalNoticeDetailVm detailModel in detailModels)
                     {
                         if (string.IsNullOrEmpty(detailModel.SkuNo))
@@ -499,9 +519,7 @@
                         }
 
                         // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
-                        string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
-                        sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';";
-                        var com = new Common().GetRowCount(sqlCount);
+                        var com =  dbDetailModels.Where(m => m.SkuNo == detailModel.SkuNo && m.LotNo == detailModel.LotNo && m.Id != detailModel.Id && m.IsDel == "0").Count();
                         if (com > 0)
                         {
                             strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
@@ -546,13 +564,33 @@
                             }
                             // 璁$畻鍑烘�婚噾棰�
                             detailModel.Money = detailModel.Price * detailModel.Qty;
-                            sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,";
-                            sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( ";
-                            sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
-                            sqlDetailStr += $"'{detailModel.LotNo.Trim()}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
-                            sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
-                        
-                        
+
+                            BllArrivalNoticeDetail addModel = new BllArrivalNoticeDetail() 
+                            {
+                                ASNNo = model.ASNNo,
+                                SkuNo = detailModel.SkuNo,
+                                SkuName = detailModel.SkuName,
+                                Standard = detailModel.Standard,
+                                LotNo = detailModel.LotNo.Trim(),
+                                LotText = detailModel.LotText,
+                                Qty = (decimal)detailModel.Qty,
+                                PackagNo = detailModel.PackagNo,
+                                Price = detailModel.Price,
+                                Money = detailModel.Money,
+                                FactQty = 0,                        // 宸茬粍鏁伴噺
+                                CompleteQty = 0,                    // 瀹屾垚鏁伴噺
+                                IsBale = detailModel.IsBale,
+                                IsBelt = detailModel.IsBelt,
+                                SupplierLot = detailModel.SupplierLot,
+                                Status = "0",
+                                UDF1 = detailModel.UDF1,
+                                UDF2 = detailModel.UDF2,
+                                UDF3 = detailModel.UDF3,
+                                UDF4 = detailModel.UDF4,
+                                UDF5 = detailModel.UDF5,
+                                CreateUser=(int)model.CreateUser
+                            };
+                            addDetails.Add(addModel);                     
                         }
                         else
                         {
@@ -574,9 +612,10 @@
                             {
                                 continue;
                             }
+
+                            var dbDetail = dbDetailModels.First(m => m.Id == detailModel.Id);
                             if (TypeLot.Contains(model.Type))
                             {
-                                var dbDetail = dbDetailModels.First(m=>m.Id == detailModel.Id);
                                 if (!string.IsNullOrWhiteSpace(dbDetail.LotNo))
                                 {
                                     if (dbDetail.LotNo != detailModel.LotNo)
@@ -589,24 +628,39 @@
                             }
                             // 璁$畻鍑烘�婚噾棰�
                             detailModel.Money = detailModel.Price * detailModel.Qty;
-                            sqlDetailStr += $"UPDATE BllArrivalNoticeDetail SET ";
-                            sqlDetailStr += $"Qty = '{detailModel.Qty}',LotNo = '{detailModel.LotNo.Trim()}',Money='{detailModel.Money}', ";
-                            sqlDetailStr += $"LotText = '{detailModel.LotText}',SupplierLot = '{detailModel.SupplierLot}', ";
-                            sqlDetailStr += $"IsBale = '{detailModel.IsBale}',IsBelt = '{detailModel.IsBelt}', ";
-                            sqlDetailStr += $"UDF1 = '{detailModel.UDF1}',UDF2 = '{detailModel.UDF2}',UDF3 = '{detailModel.UDF3}',UDF4 = '{detailModel.UDF4}',UDF5 = '{detailModel.UDF5}',";
-                            sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                            sqlDetailStr += $"WHERE Id = {detailModel.Id};";
+
+                            dbDetail.Qty = (decimal)detailModel.Qty;
+                            dbDetail.LotNo = detailModel.LotNo;
+                            dbDetail.Money = detailModel.Money;
+                            dbDetail.LotText = detailModel.LotText;
+                            dbDetail.SupplierLot = detailModel.SupplierLot;
+                            dbDetail.IsBale = detailModel.IsBale;
+                            dbDetail.UDF1 = detailModel.UDF1;
+                            dbDetail.UDF2 = detailModel.UDF2;
+                            dbDetail.UDF3 = detailModel.UDF3;
+                            dbDetail.UDF4 = detailModel.UDF4;
+                            dbDetail.UDF5 = detailModel.UDF5;
+                            dbDetail.UpdateTime = dateTime;
+                            dbDetail.UpdateUser = model.CreateUser;
+
+                            editDetails.Add(dbDetail);
                         }
                     }
 
                     Db.Ado.BeginTran();
 
-                    int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                    Db.Updateable(dbDetailModels).ExecuteCommand();
+                    int rowCount = Db.Updateable(asnInfo).ExecuteCommand();
                     var rowDetailCount = 1;
-                    if (sqlDetailStr.Length > 0)
+                    if (addDetails.Count > 0) 
                     {
-                        rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr);
+                        rowDetailCount = Db.Insertable(addDetails).ExecuteCommand();
                     }
+                    if (editDetails.Count > 0) 
+                    {
+                        rowDetailCount += Db.Updateable(editDetails).ExecuteCommand();
+                    }
+
                     Db.Ado.CommitTran();
                     if (rowCount > 0 && rowDetailCount > 0)
                     {
@@ -630,9 +684,7 @@
         {
             try
             {
-                var sqlString = $"SELECT * FROM BllArrivalNotice WHERE ASNNo = '{model.ASNNo}' AND IsDel = 0 AND Status = '0';";
-                var asnModel = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
-
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Status == "0");
                 if (asnModel == null)
                 {
                     return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
@@ -644,42 +696,48 @@
                 }
 
                 // 鍒犻櫎鎬诲崟
-                sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                var editDateTime = DateTime.Now;
+                asnModel.IsDel = "1";
+                asnModel.UpdateTime = editDateTime;
+                asnModel.UpdateUser = model.CreateUser;
 
                 // 鍒犻櫎鏄庣粏鍗�
-                sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel =="0").ToList();
+                foreach (BllArrivalNoticeDetail asnDetail in asnDetails) 
+                {
+                    asnDetail.IsDel = "1";
+                    asnDetail.UpdateTime = editDateTime;
+                    asnDetail.UpdateUser = model.CreateUser;
+                }
 
+                #region liudl Edit JC26鐗╂枡涓嶈创鍚楁棤闇�鍒犻櫎
                 //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
                 // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-                int notdel = 0;
-                if (model.Type == "1" || model.Type == "4")
-                {
-                    //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
-                    var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
+                //int notdel = 0;
+                //if (model.Type == "1" || model.Type == "4")
+                //{
+                //    //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
+                //    var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
 
-                    //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪
-                    if (list == null)
-                    {
-                        return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!";
-                    }
+                //    //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪
+                //    if (list == null)
+                //    {
+                //        return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!";
+                //    }
 
-                    // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅
-                    sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
-                    notdel = 1;
-                }
+                //    // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅
+                //    sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
+                //    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
+                //    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                //    notdel = 1;
+                //}
+                #endregion
+
                 Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                if (rowCount < 2 + notdel)
-                {
-                    Db.RollbackTran();
-                    return "-1:鍒犻櫎澶辫触锛�";
-                }
+                //int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
+                rowCount += Db.Updateable(asnDetails).ExecuteCommand();
+
                 Db.Ado.CommitTran();
                 new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎", $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
                 return "";
@@ -696,8 +754,7 @@
             string sqlString = string.Empty;
             try
             {
-                sqlString = $"SELECT * FROM BllArrivalNotice WHERE ASNNo = '{model.ASNNo}' AND IsDel = 0 AND Status = '0';";
-                var asnModel = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault();
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Status == "0");
 
                 if (asnModel == null)
                 {
@@ -710,28 +767,34 @@
 
                 }
 
-                sqlString = $"SELECT * FROM BllArrivalNoticeDetail WHERE ASNNo = '{model.ASNNo}' and Id <> {model.Id};";
-                var detailModel = Db.Ado.SqlQuery<ArrivalNoticeDetailVm>(sqlString);
+                var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Id == model.Id);
+                if (asnDetail == null) 
+                {
+                    return "-1:鏄庣粏鐘舵�佸凡鍙樻洿锛屼笉鍙垹闄�!";
+                }
 
+                var detailModel = Db.Queryable<BllArrivalNoticeDetail>()
+                    .Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0" && m.Id != model.Id).ToList();
+                var editDateTime = DateTime.Now;
                 if (detailModel.Count <= 0)
                 {
-                    sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                    asnModel.IsDel = "1";
+                    asnModel.UpdateTime = editDateTime;
+                    asnModel.UpdateUser = model.CreateUser;
                 }
                 else
                 {
-                    sqlString = $"UPDATE BllArrivalNotice SET ";
-                    sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                    sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+                    asnModel.UpdateTime = editDateTime;
+                    asnModel.UpdateUser = model.CreateUser;
                 }
 
-                sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE Id = '{model.Id}';";
+                asnDetail.IsDel = "0";
+                asnDetail.UpdateTime = editDateTime;
+                asnDetail.UpdateUser = model.CreateUser;
 
                 Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
+                rowCount += Db.Updateable(asnDetail).ExecuteCommand();
 
                 if (rowCount < 2)
                 {
@@ -739,8 +802,12 @@
                     return "-1:鍒犻櫎澶辫触锛�";
                 }
                 Db.Ado.CommitTran();
+
                 var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == model.Id);
-                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎", $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}銆佺墿鏂欎负{detail.SkuNo}銆佹壒娆″彿涓簕detail.LotNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
+                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "鍒犻櫎", 
+                    $"鍒犻櫎浜嗗崟鎹彿涓簕model.ASNNo}銆佺墿鏂欎负{detail.SkuNo}銆佹壒娆″彿涓簕detail.LotNo}鐨勫崟鎹俊鎭�", 
+                    Convert.ToInt32(model.CreateUser));
+
                 return "";
             }
             catch (Exception ex)
@@ -749,6 +816,7 @@
                 throw new Exception(ex.Message);
             }
         }
+
         //鍏抽棴鍏ュ簱鍗�
         public string CloseArrivalNotice(int id, int userId)
         {
@@ -759,29 +827,39 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟嵁淇℃伅");
                 }
-                //if (notice.Status != "2")
-                //{
-                //    throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚");
-                //}
-                var palletBind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.Status != "2" && m.Status != "3").ToList();
+
+                var palletBind = Db.Queryable<BllPalletBind>()
+                    .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo 
+                    && m.Status != "2" && m.Status != "3").ToList();
+
                 if (palletBind != null && palletBind.Count > 0)
                 {
                     throw new Exception("瀛樺湪鏈叆搴撳畬鎴愭墭鐩樹俊鎭紝涓嶅厑璁稿叧鍗�");
                 }
                 var comTime = DateTime.Now;
-                var sqlString = "";
 
                 // 鎬诲崟鍏冲崟
-                sqlString = $"UPDATE BllArrivalNotice SET Status = '3',";
-                sqlString += $"CompleteTime = GETDATE(),UpdateTime = GETDATE(),UpdateUser = '{userId}' ";
-                sqlString += $"WHERE Id = '{id}';";
-
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(m => m.Id == id);
+                if (asnModel != null) 
+                {
+                    asnModel.Status = "3";
+                    asnModel.CompleteTime = comTime;
+                    asnModel.UpdateTime = comTime;
+                    asnModel.UpdateUser = userId;
+                }
                 // 灏嗘湭瀹屾垚鐨勬槑缁嗘敼涓哄凡瀹屾垚
-                sqlString += $"UPDATE BllArrivalNoticeDetail SET Status = '2',";
-                sqlString += $"CompleteTime = GETDATE(),UpdateTime = GETDATE(),UpdateUser = '{userId}' ";
-                sqlString += $"WHERE Id = '{id}' and Status <> '2';";
+                var asnDetails = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.Id == id && m.Status == "2").ToList();
+                foreach (BllArrivalNoticeDetail asnDetail in asnDetails) 
+                {
+                    asnDetail.Status = "2";
+                    asnDetail.CompleteTime = comTime;
+                    asnDetail.UpdateTime = comTime;
+                    asnDetail.UpdateUser = userId;
+                }
+
                 Db.Ado.BeginTran();
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
+                int rowCount = Db.Updateable(asnModel).ExecuteCommand();
+                rowCount += Db.Updateable(asnDetails).ExecuteCommand();
 
                 if (rowCount <= 0)
                 {
@@ -850,7 +928,7 @@
                         }
                         // 鍏ュ簱鎬昏〃淇℃伅
                         string asnNo = new Common().GetMaxNo("ASN");
-                        var asnModel = new BllArrivalNotice()
+                        var asnModel1 = new BllArrivalNotice()
                         {
                             ASNNo = asnNo,
                             Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
@@ -862,7 +940,7 @@
                             CreateUser = 0
                         };
                         // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
-                        Db.Insertable(asnModel).ExecuteCommand();
+                        Db.Insertable(asnModel1).ExecuteCommand();
                         //鍏ュ簱鍗曟槑缁�
                         var arrDetailModel = new BllArrivalNoticeDetail()
                         {
diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index 5abbc7b..6d276f2 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -71,19 +71,34 @@
                 }
 
                 // 楠岃瘉鏄惁閲嶅 鏀�/琚嬬爜
-                sqlString += $@"select count(id) from BllBoxInfo where BoxNo3 = '{model.BoxNo3}' and IsDel = 0 ";
-                int rowCount = Db.Ado.GetInt(sqlString);
-                if (rowCount > 0)
+                //sqlString += $@"select count(id) from BllBoxInfo where BoxNo3 = '{model.BoxNo3}' and IsDel = 0 ";
+                //int rowCount = Db.Ado.GetInt(sqlString);
+                var box1 = Db.Queryable<BllBoxInfo>().First(m => m.BoxNo3 == model.BoxNo3 && m.IsDel == "0");
+                if (box1 != null)
                 {
                     strMessage = "-1:閲嶅鏁版嵁!";
                     return strMessage;
                 }
                 // 鑾峰彇鐗╂枡淇℃伅
-                sqlString = "select tb1.SkuNo,tb1.SkuName,tb1.Warranty, ";
-                sqlString += "case tb2.level when 5 then tb2.L4Num when 4 then tb2.L3Num when 3 then tb2.L2Num else 0 end as FullQty ";
-                sqlString += "from SysMaterials as tb1 left join SysPackag as tb2 on tb1.PackagNo = tb2.PackagNo ";
-                sqlString += $"where SkuNo = '{model.SkuNo}' and tb1.IsDel = '0';";
-                var materialModel = Db.Ado.SqlQuery<BoxInfoVm>(sqlString);
+                //sqlString = "select tb1.SkuNo,tb1.SkuName,tb1.Warranty, ";
+                //sqlString += "case tb2.level when 5 then tb2.L4Num when 4 then tb2.L3Num when 3 then tb2.L2Num else 0 end as FullQty ";
+                //sqlString += "from SysMaterials as tb1 left join SysPackag as tb2 on tb1.PackagNo = tb2.PackagNo ";
+                //sqlString += $"where SkuNo = '{model.SkuNo}' and tb1.IsDel = '0';";
+                //var materialModel = Db.Ado.SqlQuery<BoxInfoVm>(sqlString);
+
+                var materialModel = Db.Queryable<SysMaterials>()
+                    .LeftJoin<SysPackag>((tb1, tb2) => tb1.PackagNo == tb2.PackagNo)
+                    .Where(tb1 => tb1.SkuNo == model.SkuNo && tb1.IsDel == "0")
+                    .Select((tb1, tb2) => new BoxInfoVm
+                    {
+                        SkuNo = tb1.SkuNo,
+                        SkuName = tb1.SkuName,
+                        Warranty = tb1.Warranty,
+                        FullQty = SqlFunc.IF(tb2.Level == 5).Return(tb2.L4Num)
+                                    .ElseIF(tb2.Level == 4).Return(tb2.L3Num)
+                                    .ElseIF(tb2.Level == 3).Return(tb2.L2Num).End(0)
+                    }).ToList();
+
                 if (materialModel.Count <= 0)
                 {
                     strMessage = "-1:璇ョ墿鏂欎俊鎭笉瀛樺湪!";
@@ -108,9 +123,16 @@
                 }
 
                 #region 鍖呰淇℃伅
-                string str = $"select SUM(Qty) Qty from BllBoxInfo where IsDel = '0' and BoxNo = '{model.BoxNo}'";
-                //鑾峰彇绠辩爜淇℃伅
-                var box = Db.Ado.SqlQuerySingle<BoxInfoVm>(str);
+                //string str = $"select SUM(Qty) Qty from BllBoxInfo where IsDel = '0' and BoxNo = '{model.BoxNo}'";
+                ////鑾峰彇绠辩爜淇℃伅
+                //var box = Db.Ado.SqlQuerySingle<BoxInfoVm>(str);
+
+                var boxs = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).Select(m => new BoxInfoVm
+                {
+                    Qty = SqlFunc.AggregateSum(m.Qty)
+                });
+                var box = boxs.First();
+
                 if (box.Qty == null)
                 {
                     box.Qty = 0;
@@ -162,13 +184,37 @@
                 #endregion
 
                 // 鎻掑叆淇℃伅
-                sqlString = "Insert into BllBoxInfo (BoxNo,BoxNo2,BoxNo3,SkuNo,SkuName,LotNo,LotText,";
-                sqlString += "Qty,FullQty,ProductionTime,ExpirationTime,InspectMark,InspectStatus,BitBoxMark,Origin,Status,CreateUser) values ( ";
-                sqlString += $"'{model.BoxNo}','{model.BoxNo2}','{model.BoxNo3}','{model.SkuNo}', ";
-                sqlString += $"'{materialModel[0].SkuName}','{model.LotNo}','{model.LotText}','{model.Qty}','{materialModel[0].FullQty}',";
-                sqlString += $"'{model.ProductionTime}','{model.ExpirationTime}','{model.InspectMark}','{sku.IsInspect}','{model.BitBoxMark}','{model.Origin}','0','{model.CreateUser}');";
+                //sqlString = "Insert into BllBoxInfo (BoxNo,BoxNo2,BoxNo3,SkuNo,SkuName,LotNo,LotText,";
+                //sqlString += "Qty,FullQty,ProductionTime,ExpirationTime,InspectMark,InspectStatus,BitBoxMark,Origin,Status,CreateUser) values ( ";
+                //sqlString += $"'{model.BoxNo}','{model.BoxNo2}','{model.BoxNo3}','{model.SkuNo}', ";
+                //sqlString += $"'{materialModel[0].SkuName}','{model.LotNo}','{model.LotText}','{model.Qty}','{materialModel[0].FullQty}',";
+                //sqlString += $"'{model.ProductionTime}','{model.ExpirationTime}','{model.InspectMark}','{sku.IsInspect}','{model.BitBoxMark}" +
+                //    $"','{model.Origin}','0','{model.CreateUser}');";
+                //rowCount = Db.Ado.ExecuteCommand(sqlString);
 
-                rowCount = Db.Ado.ExecuteCommand(sqlString);
+
+                BllBoxInfo newboxModel = new BllBoxInfo() 
+                { 
+                    BoxNo=model.BoxNo,
+                    BoxNo2 = model.BoxNo2,
+                    BoxNo3 = model.BoxNo3,
+                    SkuNo = model.SkuNo,
+                    SkuName = materialModel[0].SkuName,
+                    LotNo = model.LotNo,
+                    LotText = model.LotText,
+                    Qty = (decimal)model.Qty,
+                    FullQty = materialModel[0].FullQty,
+                    ProductionTime = DateTime.Parse(model.ProductionTime),
+                    ExpirationTime = model.ExpirationTime,
+                    InspectMark = model.InspectMark,
+                    InspectStatus = sku.IsInspect,
+                    BitBoxMark = model.BitBoxMark,
+                    Origin = model.Origin,
+                    Status = "0",
+                    CreateUser = (int)model.CreateUser
+                };
+
+                var rowCount = Db.Insertable(newboxModel).ExecuteCommand();
                 if (rowCount <= 0)
                 {
                     strMessage = "-1:娣诲姞澶辫触!";
@@ -203,15 +249,23 @@
                 //寮�鍚簨鍔�
                 Db.Ado.BeginTran();
                 // 鍒犻櫎鏄庣粏鍗�
-                sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
-                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
-                sqlString += $"WHERE Id = '{model.Id}' and Status = '0';";
+                //sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
+                //sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
+                //sqlString += $"WHERE Id = '{model.Id}' and Status = '0';";
 
-                int rowCount = Db.Ado.ExecuteCommand(sqlString);
-                if (rowCount <= 0)
+                //int rowCount = Db.Ado.ExecuteCommand(sqlString);
+
+                var boxModel = Db.Queryable<BllBoxInfo>().First(m => m.Id == model.Id && m.Status == "0");
+
+                if (boxInfo.Status != "0")
                 {
                     return "-1:鐘舵�佸凡鍙樻洿鏃犳硶鍒犻櫎锛�";
                 }
+
+                boxInfo.IsDel = "1";
+                boxInfo.UpdateTime = DateTime.Now;
+                boxInfo.UpdateUser = model.CreateUser;
+
                 var boxInfoList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxInfo.BoxNo && m.Id != model.Id).ToList();
                 if (boxInfoList.Count != 0)
                 {
@@ -221,15 +275,11 @@
                         {
                             continue;
                         }
-
-                        var sql = $"update BllBoxInfo SET BitBoxMark = '1' Where id = {item.Id}";
-                        int rowCount2 = Db.Ado.ExecuteCommand(sql);
-                        if (rowCount2 <= 0)
-                        {
-                            throw new Exception("-1:鐘舵�佸凡鍙樻洿鏃犳硶鍒犻櫎锛�");
-                        }
+                        item.BitBoxMark = "1";
                     }
                 }
+                Db.Updateable(boxInfo).ExecuteCommand();
+                Db.Updateable(boxInfoList).ExecuteCommand();
 
                 Db.Ado.CommitTran();
                 new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "绠辨敮褰曞叆", boxInfo.BoxNo3, "鍒犻櫎", $"鍒犻櫎浜嗙鐮侊細{boxInfo.BoxNo}銆佽拷婧爜锛歿boxInfo.BoxNo3}鐨勭鏀墿鏂欎俊鎭�", Convert.ToInt32(model.CreateUser));
diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
index 0af25c8..a93d0a0 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -3,6 +3,7 @@
 using System.ComponentModel.Design;
 using System.Linq;
 using System.Linq.Expressions;
+using System.Net;
 using System.Text;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Identity;
@@ -340,7 +341,7 @@
                     ParentName = "搴撳唴浣滀笟",
                     MenuName = "鐩樼偣鍗曟嵁",
                     FkNo = model.CrNo,
-                    TypeName = "娣诲姞",
+                    TypeName = "缂栬緫",
                     Msg = $"缂栬緫浜嗗崟鎹彿涓簕model.CrNo}鐨勭洏鐐瑰崟淇℃伅"
                 });
                 //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", model.CrNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕model.CrNo}鐨勭洏鐐瑰崟淇℃伅", _userManager.UserId);
@@ -889,346 +890,688 @@
         //鐩樼偣涓嬪彂鍑哄簱
         public async Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str)
         {
-            try
+            #region 闆嗗悎 
+            var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� 
+                                                        //璁板綍閿欒淇℃伅鐨勯泦鍚� 
+            var flagList = new List<int>();//1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
+
+            #endregion
+            var com = new Common();
+            //assign.IsHavePyTask();
+            var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
+            if (notice == null)
             {
-                #region 闆嗗悎 
-                var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� 
-                //璁板綍閿欒淇℃伅鐨勯泦鍚� 
-                var flagList = new List<int>();//1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
-
-                #endregion
-                var com = new Common();
-                //assign.IsHavePyTask();
-                var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
-                if (notice == null)
+                throw Oops.Bah($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
+            }
+            //鎵�鏈夎鍑哄簱鐨勭洏鐐规槑缁嗕俊鎭�(绛夊緟鐨勪俊鎭拰寰呮嫞璐х殑淇℃伅)
+            var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "InventoryCheckMethod");
+            if (funSetting == null || funSetting.IsEnable == "OFF")
+            {
+                throw Oops.Bah("闇�閰嶇疆鐩樼偣鏂瑰紡");
+            }
+            var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && (a.Status == 0 || a.Status == 1 || a.Status == 2)).ToListAsync();
+            if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鐩樼偣鏄庣粏
+            {
+                throw Oops.Bah("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
+            }
+            if (funSetting.SetValue == "once")
+            {
+                if (list.Any(s => s.Status == 1 || s.Status == 2))
                 {
-                    throw Oops.Bah($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
+                    throw Oops.Bah("宸叉湁姝e湪鍑哄簱鎴栧緟鐩樼偣鐨勬暟鎹紝璇峰畬鎴愮洏鐐瑰悗鍐嶅嚭搴�");
                 }
-                //鎵�鏈夎鍑哄簱鐨勭洏鐐规槑缁嗕俊鎭�(绛夊緟鐨勪俊鎭拰寰呮嫞璐х殑淇℃伅)
-                var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToListAsync();
-                if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鐩樼偣鏄庣粏
+                list = new List<BllStockCheckDetail>() { list.FirstOrDefault() };
+            }
+            else
+            {
+                list = list.Where(s => s.Status == 0).ToList();
+            }
+            #region 
+            //瑕佸嚭搴撶殑鎵樼洏闆嗗悎
+            var outLpnList = list.Select(m => m.PalletNo).Distinct().ToList();
+            //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
+            var outStockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+            var outStockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+            //鑾峰彇鐗╂枡淇℃伅
+            var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
+            var time = DateTime.Now;
+            //Db.BeginTran();
+            //寰幆鐩樼偣鏄庣粏鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
+            foreach (var item in list)
+            {
+                if (item.Status == 0)
                 {
-                    throw Oops.Bah("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
-                }
-                #region 
-                //瑕佸嚭搴撶殑鎵樼洏闆嗗悎
-                var outLpnList = list.Select(m => m.PalletNo).Distinct().ToList();
-                //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
-                var outStockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
-                var outStockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
-                //鑾峰彇鐗╂枡淇℃伅
-                var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
-                var time = DateTime.Now;
-                Db.BeginTran();
-                try
-                {
-                    //寰幆鐩樼偣鏄庣粏鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
-                    foreach (var item in list)
+                    var logList = new List<BllStockCheckLog>();
+                    //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂�
+                    if (skuNo.Contains(item.SkuNo))
                     {
-                        if (item.Status == 0)
+                        var de = outStockDetail.First(m => m.IsDel == "0" &&
+                        m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+
+                        var checkLog = new BllStockCheckLog()
                         {
-                            var logList = new List<BllStockCheckLog>();
-                            //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂�
-                            if (skuNo.Contains(item.SkuNo))
-                            {
-                                var de = outStockDetail.First(m => m.IsDel == "0" &&
-                                m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+                            CRNo = item.CRNo,
+                            PalletNo = item.PalletNo,
+                            BoxNo = "",
+                            BoxNo2 = "",
+                            BoxNo3 = "",
+                            Qty = (int?)de.Qty,
+                            SkuNo = de.SkuNo,
+                            SkuName = de.SkuName,
+                            Standard = de.Standard,
+                            LotNo = de.LotNo,
+                            LotText = de.LotText,
+                            SupplierLot = de.SupplierLot,
 
-                                var checkLog = new BllStockCheckLog()
-                                {
-                                    CRNo = item.CRNo,
-                                    PalletNo = item.PalletNo,
-                                    BoxNo = "",
-                                    BoxNo2 = "",
-                                    BoxNo3 = "",
-                                    Qty = (int?)de.Qty,
-                                    SkuNo = de.SkuNo,
-                                    SkuName = de.SkuName,
-                                    Standard = de.Standard,
-                                    LotNo = de.LotNo,
-                                    LotText = de.LotText,
-                                    SupplierLot = de.SupplierLot,
+                            CreateUser = _userManager.UserId,
+                            CreateTime = time
+                        };
+                        logList.Add(checkLog);
 
-                                    CreateUser = _userManager.UserId,
-                                    CreateTime = time
-                                };
-                                logList.Add(checkLog);
-
-                            }
-                            else
-                            {
-                                var de = outStockDetail.Where(m =>
-                                m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList();
-                                var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList();
-                                foreach (var b in bo)
-                                {
-                                    var checkLog = new BllStockCheckLog()
-                                    {
-                                        CRNo = item.CRNo,
-                                        PalletNo = item.PalletNo,
-                                        BoxNo = b.BoxNo,
-                                        BoxNo2 = b.BoxNo2,
-                                        BoxNo3 = b.BoxNo3,
-                                        Qty = b.Qty,
-                                        SkuNo = b.SkuNo,
-                                        SkuName = b.SkuName,
-                                        Standard = b.Standard,
-                                        LotNo = b.LotNo,
-                                        LotText = b.LotText,
-                                        SupplierLot = b.SupplierLot,
-
-                                        CreateUser = _userManager.UserId,
-                                        CreateTime = time
-                                    };
-                                    logList.Add(checkLog);
-                                }
-                            }
-
-                            //鐢熸垚鐩樼偣璁板綍
-                            await Db.Insertable(logList).ExecuteCommandAsync();
-                        }
-                        // 鍌ㄤ綅鍙�
-                        var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo).LocatNo;
-
-                        #region 鍒ゆ柇
-                        //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
-                        if (string.IsNullOrWhiteSpace(locateNo))
+                    }
+                    else
+                    {
+                        var de = outStockDetail.Where(m =>
+                        m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList();
+                        var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList();
+                        foreach (var b in bo)
                         {
-                            var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
-                            //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� 
-                            if (de != null && de.WareHouseNo == "W02")
+                            var checkLog = new BllStockCheckLog()
                             {
-                                //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 
-                                item.Status = 2;
-                                await Db.Updateable(item).ExecuteCommandAsync();
-                                //鐩樼偣淇℃伅淇敼
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-                                }
-                                //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
-                                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToListAsync();
-                                foreach (var s in stockDetail)
-                                {
-                                    s.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
-                                    s.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
-                                    s.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
-                                    s.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                                    await Db.Updateable(s).ExecuteCommandAsync();
-                                }
-                                flagList.Add(5);
-                                continue;
-                            }
-                            //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
-                            var imBl = com.GetImTask(item.PalletNo);
-                            if (imBl != null)
-                            {
-                                flagList.Add(4);
-                                continue;
-                            }
-                            //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
-                            if (item.Status == 0)
-                            {
-                                //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鏄庣粏淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 
-                                item.Status = 2;//鐘舵�� 
-                                await Db.Updateable(item).ExecuteCommandAsync();
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-                                }
-                            }
-                            continue;
-                        }
-                        //褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
-                        var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo && m.IsDel == "0");
-                        if (locate == null)
-                        {
-                            flagList.Add(2);
-                            continue;
-                        }
-                        //鍒ゆ柇鍌ㄤ綅鏍囧織鏄惁涓烘崯鍧�
-                        if (locate.Flag == "2")
-                        {
-                            flagList.Add(3);
-                            continue;
-                        }
-                        #endregion
-                        if (locate.Status == "1") //鏈夌墿鍝�
-                        {
-                            #region 娣诲姞鍑哄簱浠诲姟
-                            var taskNo = new Common().GetMaxNo("TK");
-                            //娣诲姞鍑哄簱浠诲姟
-                            var exTask = new LogTask
-                            {
-                                TaskNo = taskNo,
-                                Sender = "WMS",
-                                Receiver = "WCS",
-                                IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-                                StartLocat = locate.LocatNo,//璧峰浣嶇疆
-                                EndLocat = outMode,//鐩爣浣嶇疆
-                                PalletNo = item.PalletNo,//鎵樼洏鐮�
-                                IsSend = 1,//鏄惁鍙啀娆′笅鍙�
-                                IsCancel = 1,//鏄惁鍙彇娑�
-                                IsFinish = 1,//鏄惁鍙畬鎴�
-                                Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
-                                Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
-                                OrderType = "2",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+                                CRNo = item.CRNo,
+                                PalletNo = item.PalletNo,
+                                BoxNo = b.BoxNo,
+                                BoxNo2 = b.BoxNo2,
+                                BoxNo3 = b.BoxNo3,
+                                Qty = b.Qty,
+                                SkuNo = b.SkuNo,
+                                SkuName = b.SkuName,
+                                Standard = b.Standard,
+                                LotNo = b.LotNo,
+                                LotText = b.LotText,
+                                SupplierLot = b.SupplierLot,
 
+                                CreateUser = _userManager.UserId,
                                 CreateTime = time
                             };
-                            await Db.Insertable(exTask).ExecuteCommandAsync();
-
-                            outDtoList.Add(new OutCommandDto()
-                            {
-                                PalletNo = item.PalletNo,//鎵樼洏鍙�
-                                StartLocate = locate.LocatNo, // 璧峰浣嶇疆
-                                StartRoadway = locate.RoadwayNo,
-                                EndLocate = "", // 鐩爣浣嶇疆 
-                                TaskNo = exTask.TaskNo, // 浠诲姟鍙�
-                                TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
-                                OutMode = "",  //鐩爣鍦板潃
-                                Order = 1
-                            });
-                            #endregion
-
-                            #region 鏀瑰彉鏁版嵁
-                            if (item.Status == 0)//鍒ゆ柇鎵樼洏鏄惁涓嬪彂杩�
-                            {
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-                                }
-                            }
-                            locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
-                            await Db.Updateable(locate).ExecuteCommandAsync();
-
-                            item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
-                            item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                            await Db.Updateable(item).ExecuteCommandAsync();
-                            #endregion
-
-                            flagList.Add(0);
-                        }
-                        else if (locate.Status == "3") //鍑哄簱涓�
-                        {
-                            #region 鏀瑰彉鏁版嵁
-                            //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
-                            if (item.Status == 0)
-                            {
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-
-                                }
-                            }
-                            var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "2" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
-                            item.TaskNo = taskNo.TaskNo;
-                            item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                            await Db.Updateable(item).ExecuteCommandAsync();
-
-                            #endregion
-                        }
-                        else if (locate.Status == "5") //绉诲嚭涓�
-                        {
-                            flagList.Add(1);
+                            logList.Add(checkLog);
                         }
                     }
-                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
-                    await _operation.AddLogOperationCr(new OperationInputVm()
-                    {
-                        ParentName = "搴撳唴浣滀笟",
-                        MenuName = "鐩樼偣鍗曟嵁",
-                        FkNo = crNo,
-                        TypeName = "鍑哄簱",
-                        Msg = $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟"
-                    });
-                    Db.CommitTran();
 
-                    str = string.Empty;
-                    if (flagList.Count(m => m == 1) > 0)
-                    {
-                        str += "1.褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�";
-                    }
-                    if (flagList.Count(m => m == 2) > 0)
-                    {
-                        str += "2.鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�";
-                    }
-                    if (flagList.Count(m => m == 3) > 0)
-                    {
-                        str += "4.鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�";
-                    }
-                    if (flagList.Count(m => m == 4) > 0)
-                    {
-                        str += "3.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
-                    }
-                    if (flagList.Count(m => m == 5) > 0)
-                    {
-                        str += "5.瑕佸嚭搴撶殑鎵樼洏鍦ㄩ浂绠卞簱銆�";
-                    }
-                    if (outDtoList.Count > 0)
-                    {
-                        // 姝e紡杩愯绋嬪簭鏀惧紑
-                        var list2 = outDtoList.Select(m => m.TaskNo).ToList();
-                        var jsonData = JsonConvert.SerializeObject(outDtoList);
-                        string response = "";
-
-                        try
-                        {
-                            var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
-                            //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑
-                            var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
-
-                            ////瑙f瀽杩斿洖鏁版嵁 
-                            //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
-                            //if (wcsModel.StatusCode == 0)
-                            //{
-                            //        //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
-                            //    new TaskServer().EditTaskIssueOk(list2, time1, time2);
-                            //str += "涓嬪彂鎴愬姛";
-                            //}
-                            //if (wcsModel.StatusCode == -1)
-                            //{
-                            //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
-                            //    throw new Exception(wcsModel.Msg);
-                            //}
-                        }
-                        catch (Exception ex)
-                        {
-                            throw new Exception(ex.Message);
-                        }
-                    }
-                    return outDtoList;
+                    //鐢熸垚鐩樼偣璁板綍
+                    await Db.Insertable(logList).ExecuteCommandAsync();
                 }
-                catch (Exception e)
+                // 鍌ㄤ綅鍙�
+                var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo).LocatNo;
+
+                #region 鍒ゆ柇
+                //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
+                if (string.IsNullOrWhiteSpace(locateNo))
                 {
-                    Db.RollbackTran();
-                    throw new Exception(e.Message);
+                    var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+                    //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� 
+                    if (de != null && de.WareHouseNo == "W02")
+                    {
+                        //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 
+                        item.Status = 2;
+                        await Db.Updateable(item).ExecuteCommandAsync();
+                        //鐩樼偣淇℃伅淇敼
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                        //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
+                        var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToListAsync();
+                        foreach (var s in stockDetail)
+                        {
+                            s.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
+                            s.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
+                            s.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
+                            s.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
+                            await Db.Updateable(s).ExecuteCommandAsync();
+                        }
+                        flagList.Add(5);
+                        continue;
+                    }
+                    //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
+                    var imBl = com.GetImTask(item.PalletNo);
+                    if (imBl != null)
+                    {
+                        flagList.Add(4);
+                        continue;
+                    }
+                    //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
+                    if (item.Status == 0)
+                    {
+                        //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鏄庣粏淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 
+                        item.Status = 2;//鐘舵�� 
+                        await Db.Updateable(item).ExecuteCommandAsync();
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                    }
+                    continue;
+                }
+                //褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
+                var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo && m.IsDel == "0");
+                if (locate == null)
+                {
+                    flagList.Add(2);
+                    continue;
+                }
+                //鍒ゆ柇鍌ㄤ綅鏍囧織鏄惁涓烘崯鍧�
+                if (locate.Flag == "2")
+                {
+                    flagList.Add(3);
+                    continue;
                 }
                 #endregion
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
-        }
+                if (locate.Status == "1") //鏈夌墿鍝�
+                {
+                    #region 娣诲姞鍑哄簱浠诲姟
+                    var taskNo = new Common().GetMaxNo("TK");
+                    //娣诲姞鍑哄簱浠诲姟
+                    var exTask = new LogTask
+                    {
+                        TaskNo = taskNo,
+                        Sender = "WMS",
+                        Receiver = "WCS",
+                        IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+                        StartLocat = locate.LocatNo,//璧峰浣嶇疆
+                        EndLocat = outMode,//鐩爣浣嶇疆
+                        PalletNo = item.PalletNo,//鎵樼洏鐮�
+                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        IsCancel = 1,//鏄惁鍙彇娑�
+                        IsFinish = 1,//鏄惁鍙畬鎴�
+                        Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        OrderType = "2",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
 
+                        CreateTime = time
+                    };
+                    await Db.Insertable(exTask).ExecuteCommandAsync();
+
+                    outDtoList.Add(new OutCommandDto()
+                    {
+                        PalletNo = item.PalletNo,//鎵樼洏鍙�
+                        StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+                        StartRoadway = locate.RoadwayNo,
+                        EndLocate = "", // 鐩爣浣嶇疆 
+                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+                        OutMode = "",  //鐩爣鍦板潃
+                        Order = 1
+                    });
+                    #endregion
+
+                    #region 鏀瑰彉鏁版嵁
+                    if (item.Status == 0)//鍒ゆ柇鎵樼洏鏄惁涓嬪彂杩�
+                    {
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                    }
+                    locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
+                    await Db.Updateable(locate).ExecuteCommandAsync();
+
+                    item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
+                    item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                    await Db.Updateable(item).ExecuteCommandAsync();
+                    #endregion
+
+                    flagList.Add(0);
+                }
+                else if (locate.Status == "3") //鍑哄簱涓�
+                {
+                    #region 鏀瑰彉鏁版嵁
+                    //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
+                    if (item.Status == 0)
+                    {
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+
+                        }
+                    }
+                    var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "2" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
+                    item.TaskNo = taskNo.TaskNo;
+                    item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                    await Db.Updateable(item).ExecuteCommandAsync();
+
+                    #endregion
+                }
+                else if (locate.Status == "5") //绉诲嚭涓�
+                {
+                    flagList.Add(1);
+                }
+            }
+            //娣诲姞鎿嶄綔鏃ュ織璁板綍
+            //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
+            await _operation.AddLogOperationCr(new OperationInputVm()
+            {
+                ParentName = "搴撳唴浣滀笟",
+                MenuName = "鐩樼偣鍗曟嵁",
+                FkNo = crNo,
+                TypeName = "鍑哄簱",
+                Msg = $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟"
+            });
+            //Db.CommitTran();
+
+            str = string.Empty;
+            if (flagList.Count(m => m == 1) > 0)
+            {
+                str += "1.褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�";
+            }
+            if (flagList.Count(m => m == 2) > 0)
+            {
+                str += "2.鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�";
+            }
+            if (flagList.Count(m => m == 3) > 0)
+            {
+                str += "3.鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�";
+            }
+            if (flagList.Count(m => m == 4) > 0)
+            {
+                str += "4.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
+            }
+            if (flagList.Count(m => m == 5) > 0)
+            {
+                str += "5.瑕佸嚭搴撶殑鎵樼洏鍦ㄩ浂绠卞簱銆�";
+            }
+            if (!string.IsNullOrEmpty(str))
+                throw Oops.Bah(str);
+            if (outDtoList.Count > 0)
+            {
+                // 姝e紡杩愯绋嬪簭鏀惧紑
+                var list2 = outDtoList.Select(m => m.TaskNo).ToList();
+                var jsonData = JsonConvert.SerializeObject(outDtoList);
+                string response = "";
+
+                var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                                         //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑
+                var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+                ////瑙f瀽杩斿洖鏁版嵁 
+                //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+                //if (wcsModel.StatusCode == 0)
+                //{
+                //    //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                //    new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                //    str += "涓嬪彂鎴愬姛";
+                //}
+                //if (wcsModel.StatusCode == -1)
+                //{
+                //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
+                //    throw Oops.Bah(wcsModel.Msg);
+                //}
+            }
+            return outDtoList;
+            #endregion
+        }
+        
+        /// <summary>
+        /// 瑙嗚鐩樼偣
+        /// </summary>
+        /// <param name="crNo"></param>
+        /// <param name="url"></param>
+        /// <param name="str"></param>
+        /// <returns></returns>
+        public async Task<List<OutCommandDto>> CheckVision(string crNo, string url, string str)
+        {
+            #region 闆嗗悎 
+            var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� 
+                                                        //璁板綍閿欒淇℃伅鐨勯泦鍚� 
+            var flagList = new List<int>();//1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
+
+            #endregion
+            var com = new Common();
+            //assign.IsHavePyTask();
+            var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
+            if (notice == null)
+            {
+                throw Oops.Bah($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
+            }
+            //鎵�鏈夎鍑哄簱鐨勭洏鐐规槑缁嗕俊鎭�(绛夊緟鐨勪俊鎭拰寰呮嫞璐х殑淇℃伅)
+            var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "InventoryCheckMethod");
+            if (funSetting == null || funSetting.IsEnable == "OFF")
+            {
+                throw Oops.Bah("闇�閰嶇疆鐩樼偣鏂瑰紡");
+            }
+            var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && (a.Status == 0 || a.Status == 1 || a.Status == 2)).ToListAsync();
+            if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鐩樼偣鏄庣粏
+            {
+                throw Oops.Bah("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
+            }
+            if (funSetting.SetValue == "once")
+            {
+                if (list.Any(s => s.Status == 1 || s.Status == 2))
+                {
+                    throw Oops.Bah("宸叉湁姝e湪鍑哄簱鎴栧緟鐩樼偣鐨勬暟鎹紝璇峰畬鎴愮洏鐐瑰悗鍐嶅嚭搴�");
+                }
+                list = new List<BllStockCheckDetail>() { list.FirstOrDefault() };
+            }
+            else
+            {
+                list = list.Where(s => s.Status == 0).ToList();
+            }
+            #region 
+            //瑕佸嚭搴撶殑鎵樼洏闆嗗悎
+            var outLpnList = list.Select(m => m.PalletNo).Distinct().ToList();
+            //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
+            var outStockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+            var outStockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+            //鑾峰彇鐗╂枡淇℃伅
+            var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
+            var time = DateTime.Now;
+            //Db.BeginTran();
+            //寰幆鐩樼偣鏄庣粏鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
+            foreach (var item in list)
+            {
+                if (item.Status == 0)
+                {
+                    var logList = new List<BllStockCheckLog>();
+                    //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂�
+                    if (skuNo.Contains(item.SkuNo))
+                    {
+                        var de = outStockDetail.First(m => m.IsDel == "0" &&
+                        m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+
+                        var checkLog = new BllStockCheckLog()
+                        {
+                            CRNo = item.CRNo,
+                            PalletNo = item.PalletNo,
+                            BoxNo = "",
+                            BoxNo2 = "",
+                            BoxNo3 = "",
+                            Qty = (int?)de.Qty,
+                            SkuNo = de.SkuNo,
+                            SkuName = de.SkuName,
+                            Standard = de.Standard,
+                            LotNo = de.LotNo,
+                            LotText = de.LotText,
+                            SupplierLot = de.SupplierLot,
+
+                            CreateUser = _userManager.UserId,
+                            CreateTime = time
+                        };
+                        logList.Add(checkLog);
+
+                    }
+                    else
+                    {
+                        var de = outStockDetail.Where(m =>
+                        m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList();
+                        var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList();
+                        foreach (var b in bo)
+                        {
+                            var checkLog = new BllStockCheckLog()
+                            {
+                                CRNo = item.CRNo,
+                                PalletNo = item.PalletNo,
+                                BoxNo = b.BoxNo,
+                                BoxNo2 = b.BoxNo2,
+                                BoxNo3 = b.BoxNo3,
+                                Qty = b.Qty,
+                                SkuNo = b.SkuNo,
+                                SkuName = b.SkuName,
+                                Standard = b.Standard,
+                                LotNo = b.LotNo,
+                                LotText = b.LotText,
+                                SupplierLot = b.SupplierLot,
+
+                                CreateUser = _userManager.UserId,
+                                CreateTime = time
+                            };
+                            logList.Add(checkLog);
+                        }
+                    }
+
+                    //鐢熸垚鐩樼偣璁板綍
+                    await Db.Insertable(logList).ExecuteCommandAsync();
+                }
+                // 鍌ㄤ綅鍙�
+                var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo).LocatNo;
+
+                #region 鍒ゆ柇
+                //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
+                if (string.IsNullOrWhiteSpace(locateNo))
+                {
+                    var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+                    //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� 
+                    if (de != null && de.WareHouseNo == "W02")
+                    {
+                        //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 
+                        item.Status = 2;
+                        await Db.Updateable(item).ExecuteCommandAsync();
+                        //鐩樼偣淇℃伅淇敼
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                        //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
+                        var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToListAsync();
+                        foreach (var s in stockDetail)
+                        {
+                            s.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
+                            s.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
+                            s.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
+                            s.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
+                            await Db.Updateable(s).ExecuteCommandAsync();
+                        }
+                        flagList.Add(5);
+                        continue;
+                    }
+                    //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
+                    var imBl = com.GetImTask(item.PalletNo);
+                    if (imBl != null)
+                    {
+                        flagList.Add(4);
+                        continue;
+                    }
+                    //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
+                    if (item.Status == 0)
+                    {
+                        //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鏄庣粏淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 
+                        item.Status = 2;//鐘舵�� 
+                        await Db.Updateable(item).ExecuteCommandAsync();
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                    }
+                    continue;
+                }
+                //褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
+                var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo && m.IsDel == "0");
+                if (locate == null)
+                {
+                    flagList.Add(2);
+                    continue;
+                }
+                //鍒ゆ柇鍌ㄤ綅鏍囧織鏄惁涓烘崯鍧�
+                if (locate.Flag == "2")
+                {
+                    flagList.Add(3);
+                    continue;
+                }
+                #endregion
+                if (locate.Status == "1") //鏈夌墿鍝�
+                {
+                    #region 娣诲姞鍑哄簱浠诲姟
+                    var taskNo = new Common().GetMaxNo("TK");
+                    //娣诲姞鍑哄簱浠诲姟
+                    var exTask = new LogTask
+                    {
+                        TaskNo = taskNo,
+                        Sender = "WMS",
+                        Receiver = "WCS",
+                        IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+                        StartLocat = locate.LocatNo,//璧峰浣嶇疆
+                        //EndLocat = outMode,//鐩爣浣嶇疆
+                        PalletNo = item.PalletNo,//鎵樼洏鐮�
+                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        IsCancel = 1,//鏄惁鍙彇娑�
+                        IsFinish = 1,//鏄惁鍙畬鎴�
+                        Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        OrderType = "4",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗� 4瑙嗚鐩樼偣
+
+                        CreateTime = time
+                    };
+                    await Db.Insertable(exTask).ExecuteCommandAsync();
+
+                    outDtoList.Add(new OutCommandDto()
+                    {
+                        PalletNo = item.PalletNo,//鎵樼洏鍙�
+                        StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+                        StartRoadway = locate.RoadwayNo,
+                        EndLocate = "", // 鐩爣浣嶇疆 
+                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+                        OutMode = "",  //鐩爣鍦板潃
+                        Order = 1
+                    });
+                    #endregion
+
+                    #region 鏀瑰彉鏁版嵁
+                    if (item.Status == 0)//鍒ゆ柇鎵樼洏鏄惁涓嬪彂杩�
+                    {
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                    }
+                    locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
+                    await Db.Updateable(locate).ExecuteCommandAsync();
+
+                    item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
+                    item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                    await Db.Updateable(item).ExecuteCommandAsync();
+                    #endregion
+
+                    flagList.Add(0);
+                }
+                else if (locate.Status == "3") //鍑哄簱涓�
+                {
+                    #region 鏀瑰彉鏁版嵁
+                    //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
+                    if (item.Status == 0)
+                    {
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+
+                        }
+                    }
+                    var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "2" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
+                    item.TaskNo = taskNo.TaskNo;
+                    item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                    await Db.Updateable(item).ExecuteCommandAsync();
+
+                    #endregion
+                }
+                else if (locate.Status == "5") //绉诲嚭涓�
+                {
+                    flagList.Add(1);
+                }
+            }
+            //娣诲姞鎿嶄綔鏃ュ織璁板綍
+            //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
+            await _operation.AddLogOperationCr(new OperationInputVm()
+            {
+                ParentName = "搴撳唴浣滀笟",
+                MenuName = "鐩樼偣鍗曟嵁",
+                FkNo = crNo,
+                TypeName = "鍑哄簱",
+                Msg = $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟"
+            });
+            //Db.CommitTran();
+
+            str = string.Empty;
+            if (flagList.Count(m => m == 1) > 0)
+            {
+                str += "1.褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�";
+            }
+            if (flagList.Count(m => m == 2) > 0)
+            {
+                str += "2.鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�";
+            }
+            if (flagList.Count(m => m == 3) > 0)
+            {
+                str += "3.鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�";
+            }
+            if (flagList.Count(m => m == 4) > 0)
+            {
+                str += "4.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
+            }
+            if (flagList.Count(m => m == 5) > 0)
+            {
+                str += "5.瑕佸嚭搴撶殑鎵樼洏鍦ㄩ浂绠卞簱銆�";
+            }
+            if (!string.IsNullOrEmpty(str))
+                throw Oops.Bah(str);
+            if (outDtoList.Count > 0)
+            {
+                // 姝e紡杩愯绋嬪簭鏀惧紑
+                var list2 = outDtoList.Select(m => m.TaskNo).ToList();
+                var jsonData = JsonConvert.SerializeObject(outDtoList);
+                string response = "";
+
+                var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                                         //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑
+                var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+                ////瑙f瀽杩斿洖鏁版嵁 
+                //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+                //if (wcsModel.StatusCode == 0)
+                //{
+                //    //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                //    new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                //    str += "涓嬪彂鎴愬姛";
+                //}
+                //if (wcsModel.StatusCode == -1)
+                //{
+                //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
+                //    throw Oops.Bah(wcsModel.Msg);
+                //}
+            }
+            return outDtoList;
+            #endregion
+        }
         //鐩樼偣鍑哄簱瀹屾垚
         public async Task CheckSuccess(string taskNo, int userId)
         {
diff --git a/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs b/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
index bf98076..a0520ce 100644
--- a/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
@@ -3,7 +3,9 @@
 using System.Linq;
 using System.Linq.Expressions;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
+using Model.ModelVm.BllSoVm;
 using SqlSugar;
 using WMS.DAL;
 using WMS.Entity.BllSoEntity;
@@ -13,118 +15,58 @@
 
 namespace WMS.BLL.BllSoServer
 {
-    public class CompleteDetailServer: DbHelper<BllCompleteDetail>,ICompleteDetailServer
+    public class CompleteDetailServer : DbHelper<BllCompleteDetail>, ICompleteDetailServer
     {
         private static readonly SqlSugarScope Db = DataContext.Db;
-        public CompleteDetailServer():base(Db)
+        public CompleteDetailServer() : base(Db)
         {
         }
 
         //鏌ヨ鎷h揣鏄庣粏绠辩爜淇℃伅锛堝垎缁勫悗锛�
-        public List<CompleteDetailDto> GetCompleteDetailList(int id, int page, int limit, out int count)
+        public async Task<List<CompleteDetailDto>> GetCompleteDetailList(GetCompleteDetailVm model, RefAsync<int> count)
         {
-            try
-            {
-                var total = 0;
-                var detailInfo = Db.Queryable<BllCompleteDetail>().First(w => string.IsNullOrEmpty(w.BoxNo) || string.IsNullOrEmpty(w.BoxNo3));
-                if (detailInfo == null)
+            Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
+                .And(it => it.ExportAllotId == model.Id)
+                .And(it => it.IsDel == "0")
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+            var data = await GetAllWhereAsync(item)
+                .GroupBy(m => new
                 {
-                    Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
-                    .And(it => it.ExportAllotId == id)
-                    .And(it => it.IsDel == "0")
-                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                    var data = GetAllWhereAsync(item)
-                        .GroupBy(m => new
-                        {
-                            m.SONo,
-                            m.SODetailNo,
-                            m.StockId,
-                            m.ExportAllotId,
+                    m.SONo,
+                    m.SODetailNo,
+                    m.StockId,
+                    m.ExportAllotId,
 
-                            m.BoxNo,
-                            m.LotNo,
-                            m.LotText,
-                            m.SupplierLot,
-                            m.SkuNo,
-                            m.SkuName,
-                            m.Standard,
-                            m.PalletNo,
-                            m.NowPalletNo,
-                        })
-                        .Select(a => new CompleteDetailDto()
-                        {
-                            SONo = a.SONo,
-                            SODetailNo = a.SODetailNo,
-                            StockId = a.StockId,
-                            ExportAllotId = a.ExportAllotId,
-
-                            BoxNo = a.BoxNo,
-                            LotNo = a.LotNo,
-                            LotText = a.LotText,
-                            SupplierLot = a.SupplierLot,
-                            SkuNo = a.SkuNo,
-                            SkuName = a.SkuName,
-                            Standard = a.Standard,
-                            PalletNo = a.PalletNo,
-                            CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
-                            NowPalletNo = a.NowPalletNo,
-                            //CreateTime = a.CreateTime
-                        }).ToOffsetPage(page, limit, ref total);
-                    count = total;
-                    return data;
-                }
-                else //绠辩爜鎴栨敮鐮佷负绌鸿鏄庢槸鎸夋暟閲忔嫞璐э紝澧炲姞 CreateTime 鍒嗙粍鏉′欢
+                    m.BoxNo,
+                    m.LotNo,
+                    m.LotText,
+                    m.SupplierLot,
+                    m.SkuNo,
+                    m.SkuName,
+                    m.Standard,
+                    m.PalletNo,
+                    m.NowPalletNo
+                })
+                .Select(a => new CompleteDetailDto()
                 {
-                    Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
-                    .And(it => it.ExportAllotId == id)
-                    .And(it => it.IsDel == "0")
-                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                    var data = GetAllWhereAsync(item)
-                        .GroupBy(m => new
-                        {
-                            m.SONo,
-                            m.SODetailNo,
-                            m.StockId,
-                            m.ExportAllotId,
+                    SONo = a.SONo,
+                    SODetailNo = a.SODetailNo,
+                    StockId = a.StockId,
+                    ExportAllotId = a.ExportAllotId,
 
-                            m.BoxNo,
-                            m.LotNo,
-                            m.LotText,
-                            m.SupplierLot,
-                            m.SkuNo,
-                            m.SkuName,
-                            m.Standard,
-                            m.PalletNo,
-                            m.NowPalletNo,
-                            m.CreateTime
-                        })
-                        .Select(a => new CompleteDetailDto()
-                        {
-                            SONo = a.SONo,
-                            SODetailNo = a.SODetailNo,
-                            StockId = a.StockId,
-                            ExportAllotId = a.ExportAllotId,
+                    BoxNo = a.BoxNo,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    SupplierLot = a.SupplierLot,
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    Standard = a.Standard,
+                    PalletNo = a.PalletNo,
+                    CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
+                    NowPalletNo = a.NowPalletNo,
+                }).ToPageListAsync(model.Page, model.Limit, count);
 
-                            BoxNo = a.BoxNo,
-                            LotNo = a.LotNo,
-                            LotText = a.LotText,
-                            SupplierLot = a.SupplierLot,
-                            SkuNo = a.SkuNo,
-                            SkuName = a.SkuName,
-                            Standard = a.Standard,
-                            PalletNo = a.PalletNo,
-                            CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
-                            NowPalletNo = a.NowPalletNo,
-                        //CreateTime = a.CreateTime
-                    }).ToOffsetPage(page, limit, ref total);
-                    count = total;
-                    return data;
-                }
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            return data;
         }
 
         //鏌ヨ鎷h揣鏄庣粏鏀爜璇︾粏淇℃伅
@@ -135,7 +77,7 @@
                 Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
                     .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo.Trim())
                     .AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3.Contains(boxNo3.Trim()))
-                    .ToExpression(); 
+                    .ToExpression();
                 var data = GetAllWhereAsync(item)
                     .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
                     .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
@@ -159,7 +101,7 @@
                         CompleteQty = a.CompleteQty,
                         NowPalletNo = a.NowPalletNo,
 
-                        CreateUserName = b.RealName, 
+                        CreateUserName = b.RealName,
                         UpdateUserName = c.RealName,
                         CreateTime = a.CreateTime,
                         UpdateTime = a.UpdateTime,
@@ -201,7 +143,7 @@
                     {
                         page = 1;
                     }
-                    
+
                     sqlString += sqlPub + $" order by 1  offset {((page - 1) * limit)} rows fetch next {limit} rows only;";
 
                     var com = new Common();
@@ -210,7 +152,7 @@
                     var modelList = Db.Ado.SqlQuery<CompleteDetailDto>(sqlString);
                     return modelList;
                 }
-                else 
+                else
                 {
                     string sqlString = string.Empty;
                     string sqlCount = string.Empty;
diff --git a/Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs b/Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs
index 417f7cb..40a89e1 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs
@@ -3,7 +3,9 @@
 using System.Linq;
 using System.Linq.Expressions;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
+using Model.ModelVm.BllSoVm;
 using SqlSugar;
 using WMS.BLL.LogServer;
 using WMS.DAL;
@@ -24,72 +26,66 @@
         }
 
         //鏌ヨ鍑哄簱鍒嗛厤琛ㄤ俊鎭�
-        public List<ExportAllotDto> GetExportAllotList(string no, string waveNo, string palletNo, string skuNo, string skuName, string lotNo, string status, string boxNo, int page, int limit, out int count)
+        public async Task<List<ExportAllotDto>> GetExportAllotList(GetExportAllotVm model, RefAsync<int> count)
         {
-            try
-            {
-                var strList = new List<int>();
+            var strList = new List<int>();
 
-                if (!string.IsNullOrWhiteSpace(boxNo))
+            if (!string.IsNullOrWhiteSpace(model.BoxNo))
+            {
+                var detailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo.Contains(model.BoxNo.Trim())).Select(m => m.ExportAllotId).Distinct().ToList();
+                strList = detailList;
+            }
+            Expression<Func<BllExportAllot, bool>> item = Expressionable.Create<BllExportAllot>()
+                .AndIF(!string.IsNullOrWhiteSpace(model.SoNo), it => it.SONo.Contains(model.SoNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.WaveNo), it => it.WaveNo.Contains(model.WaveNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.PalletNo), it => it.PalletNo.Contains(model.PalletNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.SkuName), it => it.SkuName.Contains(model.SkuName.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
+                .AndIF(!string.IsNullOrWhiteSpace(model.BoxNo), m => strList.Contains(m.Id))
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+            var total = 0;
+            var data = await GetAllWhereAsync(item)
+                .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
+                .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
+                .Select((a, b, c, d) => new ExportAllotDto()
                 {
-                    var detailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo.Contains(boxNo.Trim())).Select(m => m.ExportAllotId).Distinct().ToList();
-                    strList = detailList;
-                }
-                Expression<Func<BllExportAllot, bool>> item = Expressionable.Create<BllExportAllot>()
-                    .AndIF(!string.IsNullOrWhiteSpace(no), it => it.SONo.Contains(no.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(waveNo), it => it.WaveNo.Contains(waveNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(palletNo), it => it.PalletNo.Contains(palletNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(skuNo), it => it.SkuNo.Contains(skuNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(skuName), it => it.SkuName.Contains(skuName.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(lotNo), it => it.LotNo.Contains(lotNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(status), it => it.Status == status)
-                    .AndIF(!string.IsNullOrWhiteSpace(boxNo), m => strList.Contains(m.Id))
-                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                var total = 0;
-                var data = GetAllWhereAsync(item)
-                    .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
-                    .Select((a, b, c, d) => new ExportAllotDto()
-                    {
-                        Id = a.Id,
-                        SONo = a.SONo,
-                        WaveNo = a.WaveNo,
-                        SODetailNo = a.SODetailNo,
-                        StockId = a.StockId,
-                        TaskNo = a.TaskNo,
+                    Id = a.Id,
+                    SONo = a.SONo,
+                    WaveNo = a.WaveNo,
+                    SODetailNo = a.SODetailNo,
+                    StockId = a.StockId,
+                    TaskNo = a.TaskNo,
 
-                        LotNo = a.LotNo,
-                        LotText = a.LotText,
-                        SupplierLot = a.SupplierLot,
-                        SkuNo = a.SkuNo,
-                        SkuName = a.SkuName,
-                        Standard = a.Standard,
-                        PalletNo = a.PalletNo,
-                        IsBale = a.IsBale,
-                        IsBelt = a.IsBelt,
-                        Qty = a.Qty,
-                        CompleteQty = a.CompleteQty,
-                        Status = a.Status,
-                        LogisticsId = a.LogisticsId,
-                        LogisticsName = b.CarrierName,
-                        IsAdvance = a.IsAdvance,
-                        OutMode = a.OutMode,
-                        LoadingAddre=a.LoadingAddre,
-                        UnstackingMode=a.UnstackingMode,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    SupplierLot = a.SupplierLot,
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    Standard = a.Standard,
+                    PalletNo = a.PalletNo,
+                    IsBale = a.IsBale,
+                    IsBelt = a.IsBelt,
+                    Qty = a.Qty,
+                    CompleteQty = a.CompleteQty,
+                    Status = a.Status,
+                    LogisticsId = a.LogisticsId,
+                    LogisticsName = b.CarrierName,
+                    IsAdvance = a.IsAdvance,
+                    OutMode = a.OutMode,
+                    LoadingAddre = a.LoadingAddre,
+                    UnstackingMode = a.UnstackingMode,
 
-                        CreateUserName = c.RealName,
-                        UpdateUserName = d.RealName,
-                        CreateTime = a.CreateTime,
-                        UpdateTime = a.UpdateTime
-                    }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.Status).OrderBy(a => a.SkuNo).ToOffsetPage(page, limit, ref total);
-                count = total;
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+                    CreateUserName = c.RealName,
+                    UpdateUserName = d.RealName,
+                    CreateTime = a.CreateTime,
+                    UpdateTime = a.UpdateTime
+                }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.Status).OrderBy(a => a.SkuNo)
+                .ToPageListAsync(model.Page, model.Limit, count);
+            count = total;
+            return data;
         }
 
         //鎾ら攢鍒嗛厤锛堝垹闄わ級
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeDetailServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeDetailServer.cs
index f6f4fe9..3cc19b6 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeDetailServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeDetailServer.cs
@@ -26,59 +26,53 @@
         }
         public async Task<List<ExportNoticeDetailDto>> GetExportNoticeDetailList(GetExportNoticeDetailVm model, RefAsync<int> count)
         {
-            try
+            if (string.IsNullOrWhiteSpace(model.SoNo))
             {
-                if (string.IsNullOrWhiteSpace(model.SoNo))
-                {
-                    throw new Exception("鍑哄簱鍗曞彿涓虹┖");
-                }
-                var notice = DataContext.Db.Queryable<BllExportNotice>().Where(m => m.IsDel == "0" && m.SONo == model.SoNo).ToList().FirstOrDefault();
-                if (notice == null)
-                {
-                    throw new Exception("鍑哄簱鍗曞彿涓虹┖");
-                }
-
-                var data = await GetAllWhereAsync(a=>a.SONo == model.SoNo)
-                    .LeftJoin<SysPackag>((a,b)=> a.PackagNo == b.PackagNo)
-                    .LeftJoin<SysUserInfor>((a,b,c)=> a.CreateUser == c.Id)
-                    .LeftJoin<SysUserInfor>((a,b,c,d)=> a.UpdateUser == d.Id)
-                    .Select((a, b, c, d) => new ExportNoticeDetailDto()
-                    {
-                        Id = a.Id,
-                        Status = a.Status,
-                        Origin = notice.Origin,
-                        SONo = a.SONo,
-                        SkuNo = a.SkuNo,
-                        SkuName = a.SkuName,
-                        Standard = a.Standard,
-                        LotNo = a.LotNo,
-                        LotText = a.LotText,
-                        Qty = a.Qty,
-                        AllotQty = a.AllotQty,
-                        FactQty = a.FactQty,
-                        CompleteQty = a.CompleteQty,
-                        PackagNo = a.PackagNo,
-                        PackagName = b.PackagName,
-                        Price = a.Price,
-                        Money = a.Money,
-                        IsBale = a.IsBale,
-                        IsBelt = a.IsBelt,
-                        SupplierLot = a.SupplierLot,
-                        IsWave = a.IsWave,
-                        WaveNo = a.WaveNo,
-
-                        CreateUserName = c.RealName,
-                        UpdateUserName = d.RealName,
-                        CreateTime = a.CreateTime,
-                        UpdateTime = a.UpdateTime
-                    }).ToPageListAsync(model.Page, model.Limit, count);
-
-                return data;
+                throw new Exception("鍑哄簱鍗曞彿涓虹┖");
             }
-            catch (Exception e)
+            var notice = DataContext.Db.Queryable<BllExportNotice>().Where(m => m.IsDel == "0" && m.SONo == model.SoNo).ToList().FirstOrDefault();
+            if (notice == null)
             {
-                throw new Exception(e.Message);
+                throw new Exception("鍑哄簱鍗曞彿涓虹┖");
             }
+
+            var data = await GetAllWhereAsync(a => a.SONo == model.SoNo)
+                .LeftJoin<SysPackag>((a, b) => a.PackagNo == b.PackagNo)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
+                .LeftJoin<SysUserInfor>((a, b, c, d) => a.UpdateUser == d.Id)
+                .Select((a, b, c, d) => new ExportNoticeDetailDto()
+                {
+                    Id = a.Id,
+                    Status = a.Status,
+                    Origin = notice.Origin,
+                    SONo = a.SONo,
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    Standard = a.Standard,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    Qty = a.Qty,
+                    AllotQty = a.AllotQty,
+                    FactQty = a.FactQty,
+                    CompleteQty = a.CompleteQty,
+                    PackagNo = a.PackagNo,
+                    PackagName = b.PackagName,
+                    Price = a.Price,
+                    Money = a.Money,
+                    IsBale = a.IsBale,
+                    IsBelt = a.IsBelt,
+                    SupplierLot = a.SupplierLot,
+                    IsWave = a.IsWave,
+                    WaveNo = a.WaveNo,
+                    IsMixBox = a.IsMixBox,
+
+                    CreateUserName = c.RealName,
+                    UpdateUserName = d.RealName,
+                    CreateTime = a.CreateTime,
+                    UpdateTime = a.UpdateTime
+                }).ToPageListAsync(model.Page, model.Limit, count);
+
+            return data;
         }
 
         public bool DelExportNoticeDetail(int id, int userId)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 3f7e3e2..e746979 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -430,6 +430,7 @@
                                 IsWave = "0",
                                 WaveNo = "",
                                 IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo) ? "0" : "1",
+                                IsMixBox = d.IsMixBox,
 
                                 OrderDetailCode = d.OrderDetailCode,
 
@@ -540,7 +541,7 @@
                                 var item = new BllExportNoticeDetail()
                                 {
                                     SONo = billNo,
-                                    OrderDetailCode=d.OrderDetailCode,
+                                    OrderDetailCode = d.OrderDetailCode,
                                     SkuNo = sku.SkuNo,
                                     SkuName = sku.SkuName,
                                     Standard = sku.Standard,
@@ -559,6 +560,7 @@
                                     IsWave = "0",
                                     WaveNo = "",
                                     IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo) ? "0" : "1",
+                                    IsMixBox = d.IsMixBox,
 
                                     CreateUser = 0,
                                 };
@@ -814,67 +816,60 @@
 
         public async Task<List<ExportNoticeDto>> GetExportNoticeList(GetExportNoticeVm model, RefAsync<int> count)
         {
-            try
-            {
-                var strList = new List<string>();
+            var strList = new List<string>();
 
-                if (!string.IsNullOrWhiteSpace(model.LotNo))
+            if (!string.IsNullOrWhiteSpace(model.LotNo))
+            {
+                var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.LotNo.Contains(model.LotNo.Trim())).Select(m => m.SONo).Distinct().ToList();
+                strList = detailList;
+            }
+            Expression<Func<BllExportNotice, bool>> item = Expressionable.Create<BllExportNotice>()
+                .AndIF(!string.IsNullOrWhiteSpace(model.No), it => it.SONo.Contains(model.No.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.Type), it => it.Type == model.Type)
+                .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
+                .AndIF(model.LogisticsId != null, it => it.LogisticsId == model.LogisticsId)
+                .AndIF(!string.IsNullOrWhiteSpace(model.IsWave), it => it.IsWave == model.IsWave)
+                .AndIF(!string.IsNullOrWhiteSpace(model.IsDespatch), it => it.IsDespatch == model.IsDespatch)
+                .AndIF(!string.IsNullOrWhiteSpace(model.WaveNo), it => it.WaveNo.Contains(model.WaveNo.Trim()))
+                .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => strList.Contains(it.SONo))
+                .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+
+            var data = await GetAllWhereAsync(item)
+                .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
+                .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
+                .LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
+                .Select((a, b, c, d, e) => new ExportNoticeDto()
                 {
-                    var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.LotNo.Contains(model.LotNo.Trim())).Select(m => m.SONo).Distinct().ToList();
-                    strList = detailList;
-                }
-                Expression<Func<BllExportNotice, bool>> item = Expressionable.Create<BllExportNotice>()
-                    .AndIF(!string.IsNullOrWhiteSpace(model.No), it => it.SONo.Contains(model.No.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(model.Type), it => it.Type == model.Type)
-                    .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
-                    .AndIF(model.LogisticsId != null, it => it.LogisticsId == model.LogisticsId)
-                    .AndIF(!string.IsNullOrWhiteSpace(model.IsWave), it => it.IsWave == model.IsWave)
-                    .AndIF(!string.IsNullOrWhiteSpace(model.IsDespatch), it => it.IsDespatch == model.IsDespatch)
-                    .AndIF(!string.IsNullOrWhiteSpace(model.WaveNo), it => it.WaveNo.Contains(model.WaveNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => strList.Contains(it.SONo))
-                    .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+                    Id = a.Id,
+                    SONo = a.SONo,
+                    Type = a.Type,
+                    Status = a.Status,
+                    Origin = a.Origin,
+                    CustomerNo = a.CustomerNo,
+                    CustomerName = a.CustomerName,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    SupplierLot = a.SupplierLot,
+                    LogisticsId = a.LogisticsId,
+                    LogisticsName = b.CarrierName,
+                    IsWave = a.IsWave,
+                    WaveNo = a.WaveNo,
+                    IsDespatch = a.IsDespatch,
+                    Demo = a.Demo,
 
-                var data = await GetAllWhereAsync(item)
-                    .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
-                    .Select((a, b, c, d, e) => new ExportNoticeDto()
-                    {
-                        Id = a.Id,
-                        SONo = a.SONo,
-                        Type = a.Type,
-                        Status = a.Status,
-                        Origin = a.Origin,
-                        CustomerNo = a.CustomerNo,
-                        CustomerName = a.CustomerName,
-                        LotNo = a.LotNo,
-                        LotText = a.LotText,
-                        SupplierLot = a.SupplierLot,
-                        LogisticsId = a.LogisticsId,
-                        LogisticsName = b.CarrierName,
-                        IsWave = a.IsWave,
-                        WaveNo = a.WaveNo,
-                        IsDespatch = a.IsDespatch,
-                        Demo = a.Demo,
+                    CreateUserName = c.RealName,
+                    UpdateUserName = c.RealName,
+                    CreateTime = a.CreateTime,
+                    UpdateTime = a.UpdateTime,
 
-                        CreateUserName = c.RealName,
-                        UpdateUserName = c.RealName,
-                        CreateTime = a.CreateTime,
-                        UpdateTime = a.UpdateTime,
+                    CheckUserName = e.RealName,
+                    CheckTime = a.CheckTime
+                })
+                .OrderByDescending(a => a.CreateTime)
+                .ToPageListAsync(model.Page, model.Limit, count);
 
-                        CheckUserName = e.RealName,
-                        CheckTime = a.CheckTime
-                    })
-                    .OrderByDescending(a => a.CreateTime)
-                    .ToPageListAsync(model.Page, model.Limit, count);
-
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            return data;
         }
 
         //鑾峰彇娣诲姞/缂栬緫鍑哄簱鍗曟椂閫夋嫨鐗╂枡鏄庣粏淇℃伅
@@ -1907,33 +1902,23 @@
         /// <param name="limit">闆舵墭鏍囪</param> 
         /// <param name="count">闆舵墭鏍囪</param> 
         /// <returns></returns>
-        public List<DataStockDetail> GetPalletNoOutList(string skuNo, string skuName, string palletNo, string lotNo, string inspectMark, string bitPalletMark, int page, int limit, out int count)
+        public async Task<List<DataStockDetail>> GetPalletNoOutList(GetPalletNoOutVm model, RefAsync<int> count)
         {
+            Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
+                   .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), m => m.SkuNo.Contains(model.SkuNo.Trim()))
+                   .AndIF(!string.IsNullOrWhiteSpace(model.SkuName), m => m.SkuName.Contains(model.SkuName.Trim()))
+                   .AndIF(!string.IsNullOrWhiteSpace(model.PalletNo), m => m.PalletNo.Contains(model.PalletNo.Trim()))
+                   .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), m => m.LotNo.Contains(model.LotNo.Trim()))
+                   .AndIF(!string.IsNullOrWhiteSpace(model.InspectMark), m => m.InspectMark == model.InspectMark)
+                   .AndIF(!string.IsNullOrWhiteSpace(model.BitPalletMark), m => m.BitPalletMark == model.BitPalletMark)
+                   .And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
+                   .And(a => a.Status == "0")
+                   .And(a => a.WareHouseNo == "W01")
+                   .ToExpression();
+            var data = await Db.Queryable<DataStockDetail>().Where(item).OrderBy(m => m.LocatNo).ToPageListAsync(model.Page, model.Limit, count);
+            //data.Select(m => m.Status == "0" && m.IsDel == "0");
 
-            try
-            {
-                Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
-                    .AndIF(!string.IsNullOrWhiteSpace(skuNo), m => m.SkuNo.Contains(skuNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(skuName), m => m.SkuName.Contains(skuName.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(palletNo), m => m.PalletNo.Contains(palletNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(lotNo), m => m.LotNo.Contains(lotNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(inspectMark), m => m.InspectMark == inspectMark)
-                    .AndIF(!string.IsNullOrWhiteSpace(bitPalletMark), m => m.BitPalletMark == bitPalletMark)
-                    .And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
-                    .And(a => a.Status == "0")
-                    .And(a => a.WareHouseNo == "W01")
-                    .ToExpression();
-                var total = 0;
-                var data = Db.Queryable<DataStockDetail>().Where(item).OrderBy(m => m.LocatNo).ToOffsetPage(page, limit, ref total);
-                //data.Select(m => m.Status == "0" && m.IsDel == "0");
-                count = total;
-
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            return data;
         }
 
         //鎵樼洏鍑哄簱
@@ -4324,6 +4309,8 @@
                 var noticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == soNo).ToList();
                 //搴撳瓨鎬昏〃淇℃伅
                 var data = Db.Queryable<DataStock>().Where(m => m.IsDel == "0").ToList();
+                //搴撳瓨鏄庣粏涓楠屽悎鏍兼壒娆¢泦鍚�
+                var dataDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.InspectStatus == "1").GroupBy(g => g.LotNo).Select(s => s.LotNo).ToList();
                 //搴撳瓨鏄庣粏琛ㄤ俊鎭�
                 var dataBoxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0").ToList();
 
@@ -4333,7 +4320,7 @@
                 {
                     //楠岃瘉鍏堣繘鍏堝嚭鍘熷垯
                     
-                    var forData = data.Where(m => m.SkuNo == item.SkuNo && m.LotNo != item.LotNo && (m.Qty - m.FrozenQty - m.LockQty) > 0 ).Select(m=>m.LotNo).ToList(); //鑾峰彇褰撳墠鐗╂枡鐨勬墍鏈夋壒娆′俊鎭�(鎺掗櫎鍗曟嵁鐨勬壒娆★紝闃叉鍗曟嵁鎵�鍦ㄦ壒娆¢攣瀹氭暟閲忓悗楠岃瘉灏忎簬绛変簬0)
+                    var forData = data.Where(m => m.SkuNo == item.SkuNo && m.LotNo != item.LotNo && (m.Qty - m.FrozenQty - m.LockQty) > 0 && dataDetail.Contains(m.LotNo)).Select(m=>m.LotNo).ToList(); //鑾峰彇褰撳墠鐗╂枡鐨勬墍鏈夋壒娆′俊鎭�(鎺掗櫎鍗曟嵁鐨勬壒娆★紝闃叉鍗曟嵁鎵�鍦ㄦ壒娆¢攣瀹氭暟閲忓悗楠岃瘉灏忎簬绛変簬0)
 
                     forData.Add(item.LotNo);  //闆嗗悎娣诲姞鍗曟嵁鐨勬壒娆�
                     //鑾峰彇鎺掑簭鍚庣殑绗竴涓壒娆�
diff --git a/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs b/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs
index 692cc5c..88419dd 100644
--- a/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/WaveMageServer.cs
@@ -3,8 +3,10 @@
 using System.Linq;
 using System.Linq.Expressions;
 using System.Text;
+using System.Threading.Tasks;
 using Model.InterFaceModel;
 using Model.ModelDto.BllSoDto;
+using Model.ModelVm.BllSoVm;
 using Newtonsoft.Json;
 using SqlSugar;
 using WMS.BLL.Logic;
@@ -27,52 +29,44 @@
         }
 
         //鑾峰彇娉㈡鍗曚俊鎭�
-        public List<WaveMageDto> GetWaveMageList(string waveNo, string status, string lotNo, int? logisticsId, int page, int limit, out int count)
+        public async Task<List<WaveMageDto>> GetWaveMageList(GetWaveMageVm model, RefAsync<int> count)
         {
-            try
-            {
-                Expression<Func<BllWaveMage, bool>> item = Expressionable.Create<BllWaveMage>()
-                    .AndIF(!string.IsNullOrWhiteSpace(waveNo), it => it.WaveNo.Contains(waveNo.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(status), it => it.Status == status)
-                    .AndIF(logisticsId != null, it => it.LogisticsId == logisticsId)
-                    .AndIF(!string.IsNullOrWhiteSpace(lotNo), it => it.LotNo.Contains(lotNo))
+            Expression<Func<BllWaveMage, bool>> item = Expressionable.Create<BllWaveMage>()
+                    .AndIF(!string.IsNullOrWhiteSpace(model.WaveNo), it => it.WaveNo.Contains(model.WaveNo.Trim()))
+                    .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
+                    .AndIF(model.LogisticsId != null, it => it.LogisticsId == model.LogisticsId)
+                    .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo))
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                var total = 0;
-                var data = GetAllWhereAsync(item)
-                    .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
-                    .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
-                    .Select((a, b, c, d) => new WaveMageDto()
-                    {
-                        Id = a.Id,
-                        WaveNo = a.WaveNo,
-                        Status = a.Status,
-                        Origin = a.Origin,
-                        CustomerNo = a.CustomerNo,
-                        CustomerName = a.CustomerName,
-                        LotNo = a.LotNo,
-                        LotText = a.LotText,
-                        SupplierLot = a.SupplierLot,
-                        LogisticsId = a.LogisticsId,
-                        LogisticsName = b.CarrierName,
-                        Address = a.Address,
 
-                        CreateUserName = c.RealName,
-                        UpdateUserName = c.RealName,
-                        CreateTime = a.CreateTime,
-                        UpdateTime = a.UpdateTime,
+            var data = await GetAllWhereAsync(item)
+                .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
+                .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
+                .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
+                .Select((a, b, c, d) => new WaveMageDto()
+                {
+                    Id = a.Id,
+                    WaveNo = a.WaveNo,
+                    Status = a.Status,
+                    Origin = a.Origin,
+                    CustomerNo = a.CustomerNo,
+                    CustomerName = a.CustomerName,
+                    LotNo = a.LotNo,
+                    LotText = a.LotText,
+                    SupplierLot = a.SupplierLot,
+                    LogisticsId = a.LogisticsId,
+                    LogisticsName = b.CarrierName,
+                    Address = a.Address,
 
-                    })
-                    .OrderByDescending(a => a.CreateTime)
-                    .ToOffsetPage(page, limit, ref total);
-                count = total;
+                    CreateUserName = c.RealName,
+                    UpdateUserName = c.RealName,
+                    CreateTime = a.CreateTime,
+                    UpdateTime = a.UpdateTime,
 
-                return data;
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+                })
+                .OrderByDescending(a => a.CreateTime)
+                .ToPageListAsync(model.Page, model.Limit, count);
+
+            return data;
         }
 
         //鑾峰彇娣诲姞娉㈡鍗曠殑鍑哄簱鍗曚俊鎭�
diff --git a/Wms/WMS.BLL/LogServer/OperationCrServer.cs b/Wms/WMS.BLL/LogServer/OperationCrServer.cs
index 0a660f3..45580a1 100644
--- a/Wms/WMS.BLL/LogServer/OperationCrServer.cs
+++ b/Wms/WMS.BLL/LogServer/OperationCrServer.cs
@@ -101,7 +101,7 @@
             input.Type = (await Db.Queryable<SysDictionary>().FirstAsync(s => s.DictName == input.TypeName && s.IsDel == "0"))?.Id.ToString();
             input.CreateUser = _userManager.UserId;
             input.CreateTime = DateTime.Now;
-            return await Db.Insertable<LogOperationSys>(input).ExecuteCommandAsync();
+            return await Db.Insertable<LogOperationCR>(input).ExecuteCommandAsync();
         }
     }
 }
diff --git a/Wms/WMS.BLL/LogServer/OperationSOServer.cs b/Wms/WMS.BLL/LogServer/OperationSOServer.cs
index f8cff57..f59a724 100644
--- a/Wms/WMS.BLL/LogServer/OperationSOServer.cs
+++ b/Wms/WMS.BLL/LogServer/OperationSOServer.cs
@@ -3,6 +3,7 @@
 using System.Linq;
 using System.Linq.Expressions;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.LogDto;
 using SqlSugar;
 using WMS.BLL.SysServer;
@@ -21,43 +22,35 @@
         public OperationSOServer() : base(Db)
         {
         }
-        public List<OperationDto> GetLogOperationSoList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count)
+        public async Task<List<OperationDto>> GetLogOperationSoList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, RefAsync<int> count)
         {
-            try
-            {
-                var item = Expressionable.Create<LogOperationSO>()
+            var item = Expressionable.Create<LogOperationSO>()
                     .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim()))
                     .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type)
                     .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim()))
                     .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime))
                     .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(endTime).AddDays(1))
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-                var total = 0;
-                var list = GetAllWhereAsync(item)
-                    .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString())
-                    .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id)
-                    .Select((it, dic, users) => new OperationDto()
-                    {
-                        Id = it.Id,
-                        ParentNo = it.ParentNo,
-                        MenuNo = it.MenuNo,
-                        MenuName = it.MenuName,
-                        FkNo = it.FkNo,
-                        Type =  dic.DictName,
-                        Msg = it.Msg,
-                        CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
-                        CreateUserName =  users.RealName,
-                    })
-                    .OrderByDescending(it => it.CreateTime)
-                    .ToOffsetPage(page, limit, ref total);
 
-                count = total;
-                return list.OrderByDescending(m => m.CreateTime).ToList();
-            }
-            catch (Exception e)
-            {
-                throw new Exception(e.Message);
-            }
+            var list = await GetAllWhereAsync(item)
+                .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString())
+                .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id)
+                .Select((it, dic, users) => new OperationDto()
+                {
+                    Id = it.Id,
+                    ParentNo = it.ParentNo,
+                    MenuNo = it.MenuNo,
+                    MenuName = it.MenuName,
+                    FkNo = it.FkNo,
+                    Type = dic.DictName,
+                    Msg = it.Msg,
+                    CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                    CreateUserName = users.RealName,
+                })
+                .OrderByDescending(it => it.CreateTime)
+                .ToPageListAsync(page, limit, count);
+
+            return list.OrderByDescending(m => m.CreateTime).ToList();
         }
         public bool AddLogOperationSo(string parentNo, string menuName, string fkNo, string type, string msg, int userId)
         {
diff --git a/Wms/WMS.BLL/SysServer/PalletsServer.cs b/Wms/WMS.BLL/SysServer/PalletsServer.cs
index 8a7c445..7905c29 100644
--- a/Wms/WMS.BLL/SysServer/PalletsServer.cs
+++ b/Wms/WMS.BLL/SysServer/PalletsServer.cs
@@ -125,8 +125,17 @@
 
                 var str = pallNo.Substring(3, 5);
                 string remove = pallNo.Substring(0, 3);
-                int sibelius = Convert.ToInt16(str);
+                int sibelius = 0;
                 var num = 0;
+                if (remove != "T" + DateTime.Now.ToString("yy"))
+                {
+                    remove = "T" + DateTime.Now.ToString("yy");
+                    sibelius = 0;
+                }
+                else
+                {
+                    sibelius = Convert.ToInt16(str);
+                }
                 for (int i = 0; i < groupCount; i++)
                 {
                     sibelius += 1;
diff --git a/Wms/WMS.Entity/BllAsnEntity/BllArrivalNoticeDetail.cs b/Wms/WMS.Entity/BllAsnEntity/BllArrivalNoticeDetail.cs
index 494490e..8a3d951 100644
--- a/Wms/WMS.Entity/BllAsnEntity/BllArrivalNoticeDetail.cs
+++ b/Wms/WMS.Entity/BllAsnEntity/BllArrivalNoticeDetail.cs
@@ -59,19 +59,21 @@
         /// Nullable:False
         /// </summary>           
         public decimal Qty {get;set;}
-        
+
         /// <summary>
         /// Desc:宸茬粍鏁伴噺
         /// Default:0
         /// Nullable:True
-        /// </summary>           
+        /// </summary>          
+        [SugarColumn(DefaultValue = "0")]
         public decimal? FactQty {get;set;}
 
         /// <summary>
         /// Desc:鍏ュ簱鏁伴噺
         /// Default:0
         /// Nullable:True
-        /// </summary>           
+        /// </summary>         
+        [SugarColumn(DefaultValue = "0")]
         public decimal? CompleteQty {get;set;}
 
         /// <summary>
diff --git a/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs b/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs
index c7580de..f1094de 100644
--- a/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs
+++ b/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs
@@ -153,7 +153,13 @@
         /// Nullable:True
         /// </summary>           
         public string IsIssueLotNo { get; set; }
-        
+
+        /// <summary>
+        /// Desc:鏄惁鎺ュ彈鎷肩
+        /// Default: 0锛氬惁  1锛氭槸
+        /// Nullable:True
+        /// </summary>
+        public string IsMixBox { get; set; }
 
         /// <summary>
         /// 鑷畾涔夊垪1
diff --git a/Wms/WMS.Entity/LogEntity/LogTask.cs b/Wms/WMS.Entity/LogEntity/LogTask.cs
index 53d440d..fdbd504 100644
--- a/Wms/WMS.Entity/LogEntity/LogTask.cs
+++ b/Wms/WMS.Entity/LogEntity/LogTask.cs
@@ -128,7 +128,7 @@
         public int? IsFinish {get;set;}
 
         /// <summary>
-        /// Desc:鍗曟嵁绫诲瀷 0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+        /// Desc:鍗曟嵁绫诲瀷 0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗� 4瑙嗚鐩樼偣
         /// Default:
         /// Nullable:True
         /// </summary>           
diff --git a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
index a9936ce..5372da9 100644
--- a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
@@ -3,7 +3,9 @@
 using Model.ModelDto.SysDto;
 using Model.ModelVm;
 using Model.ModelVm.SysVm;
+using SqlSugar;
 using System.Collections.Generic;
+using System.Threading.Tasks;
 
 namespace WMS.IBLL.IBllAsnServer
 {
@@ -17,7 +19,7 @@
         /// <param name="model">鏌ヨ鏉′欢</param>
         /// <param name="count">鏁伴噺</param>
         /// <returns>鍏ュ簱鍗曚俊鎭�</returns>
-        List<ArrivalNoticeDto> GetArrivalNoticeList(ArrivalNoticeVm model, out int count);
+        Task<List<ArrivalNoticeDto>> GetArrivalNoticeList(ArrivalNoticeVm model, RefAsync<int> count);
 
         /// <summary>
         /// 鍏ュ簱鍗曟槑缁嗘暟閲�
@@ -25,7 +27,7 @@
         /// <param name="model">鏌ヨ鏉′欢</param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<ArrivalNoticeDetailDto> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, out int count);
+        Task<List<ArrivalNoticeDetailDto>> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, RefAsync<int> count);
 
         /// <summary>
         /// 鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲�
diff --git a/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs b/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs
index c9c34be..a8c8e2e 100644
--- a/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs
+++ b/Wms/WMS.IBLL/IBllCheckServer/IStockCheckServer.cs
@@ -104,6 +104,14 @@
         /// <param name="str"></param>
         /// <returns></returns>
         Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str);
+        /// <summary>
+        /// 瑙嗚鐩樼偣
+        /// </summary>
+        /// <param name="crNo"></param>
+        /// <param name="url"></param>
+        /// <param name="str"></param>
+        /// <returns></returns>
+        Task<List<OutCommandDto>> CheckVision(string crNo, string url, string str);
 
         /// <summary>
         /// 鐩樼偣鍑哄簱瀹屾垚
diff --git a/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs b/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs
index d786a62..20c29d2 100644
--- a/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs
@@ -1,7 +1,10 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
+using Model.ModelVm.BllSoVm;
+using SqlSugar;
 
 namespace WMS.IBLL.IBllSoServer
 {
@@ -15,7 +18,7 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<CompleteDetailDto> GetCompleteDetailList(int id, int page, int limit, out int count);
+        Task<List<CompleteDetailDto>> GetCompleteDetailList(GetCompleteDetailVm model, RefAsync<int> count);
 
         /// <summary>
         /// 鑾峰彇鎷h揣鏄庣粏涓缁嗙鏀俊鎭� 鏍规嵁绠辩爜\鏀爜
diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportAllotServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportAllotServer.cs
index 6754893..8e63369 100644
--- a/Wms/WMS.IBLL/IBllSoServer/IExportAllotServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/IExportAllotServer.cs
@@ -1,7 +1,10 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
+using Model.ModelVm.BllSoVm;
+using SqlSugar;
 
 namespace WMS.IBLL.IBllSoServer
 {
@@ -22,7 +25,7 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<ExportAllotDto> GetExportAllotList(string no, string waveNo, string palletNo, string skuNo, string skuName, string lotNo, string status, string boxNo, int page, int limit, out int count);
+        Task<List<ExportAllotDto>> GetExportAllotList(GetExportAllotVm model, RefAsync<int> count);
 
         /// <summary>
         /// 鎾ら攢鍒嗛厤锛堝垹闄わ級
diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
index 870ddad..c5939bc 100644
--- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
@@ -110,8 +110,7 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<DataStockDetail> GetPalletNoOutList(string skuNo, string skuName, string palletNo, string lotNo,
-            string inspectMark, string bitPalletMark, int page, int limit, out int count);
+        Task<List<DataStockDetail>> GetPalletNoOutList(GetPalletNoOutVm model, RefAsync<int> count);
 
         /// <summary>
         /// 鎵樼洏涓嬪彂鍑哄簱
diff --git a/Wms/WMS.IBLL/IBllSoServer/IWaveMageServer.cs b/Wms/WMS.IBLL/IBllSoServer/IWaveMageServer.cs
index 190caf7..16d646b 100644
--- a/Wms/WMS.IBLL/IBllSoServer/IWaveMageServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/IWaveMageServer.cs
@@ -1,8 +1,11 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.InterFaceModel;
 using Model.ModelDto.BllSoDto;
+using Model.ModelVm.BllSoVm;
+using SqlSugar;
 
 namespace WMS.IBLL.IBllSoServer
 {
@@ -19,7 +22,7 @@
         /// <param name="limit">鏁伴噺</param>
         /// <param name="count">涓暟閲�</param>
         /// <returns></returns>
-        List<WaveMageDto> GetWaveMageList(string waveNo, string status, string lotNo, int? logisticsId, int page, int limit, out int count);
+        Task<List<WaveMageDto>> GetWaveMageList(GetWaveMageVm model, RefAsync<int> count);
 
         /// <summary>
         /// 鑾峰彇娣诲姞娉㈡鍗曠殑鍑哄簱鍗曚俊鎭�
diff --git a/Wms/WMS.IBLL/ILogServer/IOperationSOServer.cs b/Wms/WMS.IBLL/ILogServer/IOperationSOServer.cs
index 0197a1a..5043705 100644
--- a/Wms/WMS.IBLL/ILogServer/IOperationSOServer.cs
+++ b/Wms/WMS.IBLL/ILogServer/IOperationSOServer.cs
@@ -1,7 +1,9 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.LogDto;
+using SqlSugar;
 
 namespace WMS.IBLL.ILogServer
 {
@@ -19,8 +21,8 @@
         /// <param name="limit"></param>
         /// <param name="count"></param>
         /// <returns></returns>
-        List<OperationDto> GetLogOperationSoList(string menuName, string type, string msg, string startTime,
-            string endTime, int page, int limit, out int count);
+        Task<List<OperationDto>> GetLogOperationSoList(string menuName, string type, string msg, string startTime,
+            string endTime, int page, int limit, RefAsync<int> count);
         /// <summary>
         /// 娣诲姞鍑哄簱鎿嶄綔鏃ュ織
         /// </summary>
diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs
index acaa4b0..d92a29a 100644
--- a/Wms/Wms/Controllers/BllAsnController.cs
+++ b/Wms/Wms/Controllers/BllAsnController.cs
@@ -20,7 +20,7 @@
     [Route("api/[controller]/[action]")]
     [ApiController]
     [Authorize]
-    
+
     public class BllAsnController : ControllerBase
     {
         #region 渚濊禆娉ㄥ叆
@@ -36,7 +36,7 @@
         #endregion
 
         #region 鏋勯�犲嚱鏁�
-        public BllAsnController(IArrivalNoticeServer arrivalNoticeSvc, IPalletBindServer palletBindSvc,IBllBoxInfoServer bllBoxInfoSvc, ITaskServer taskSvc,IOperationASNServer logSvc, IPalletUnbindServer palletUnbind,IAuditLogServer auditLog,IBllLabelBoxNoServer labelBox, IProcurePlanServer procurePlanSvc)
+        public BllAsnController(IArrivalNoticeServer arrivalNoticeSvc, IPalletBindServer palletBindSvc, IBllBoxInfoServer bllBoxInfoSvc, ITaskServer taskSvc, IOperationASNServer logSvc, IPalletUnbindServer palletUnbind, IAuditLogServer auditLog, IBllLabelBoxNoServer labelBox, IProcurePlanServer procurePlanSvc)
         {
             _arrivalNoticeSvc = arrivalNoticeSvc;
             _PalletBindSvc = palletBindSvc;
@@ -57,33 +57,23 @@
         /// <param name="model">鏌ヨ鏉′欢</param>
         /// <returns>鍏ュ簱鍗曚俊鎭�</returns>
         [HttpPost]
-        public IActionResult GetArrivalNoticeList(ArrivalNoticeVm model)
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetArrivalNoticeList(ArrivalNoticeVm model)
         {
-            try
-            {
-                var models = _arrivalNoticeSvc.GetArrivalNoticeList(model, out int count);
 
-                return Ok(new { code = 0, count, msg = "鍏ュ簱鍗曚俊鎭�", data = models });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
-        } 
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _arrivalNoticeSvc.GetArrivalNoticeList(model, count);
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
+        }
+
 
         [HttpPost]
-        public IActionResult GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model)
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model)
         {
-            try
-            {
-                var models = _arrivalNoticeSvc.GetArrivalNoticeDetailList(model, out int count);
-
-                return Ok(new { code = 0, count, msg = "鍏ュ簱鍗曟槑缁嗕俊鎭�", data = models });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _arrivalNoticeSvc.GetArrivalNoticeDetailList(model, count);
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
         }
 
         /// <summary>
@@ -178,6 +168,10 @@
                 {
                     throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
                 }
+                if (string.IsNullOrWhiteSpace(model.ASNNo)) 
+                {
+                    throw new Exception("鍗曟嵁鍙蜂笉鍙负null!");
+                }
 
                 model.CreateUser = int.Parse(UserId);
                 string strMesage = _arrivalNoticeSvc.EditArrivalNotice(model);
@@ -188,7 +182,7 @@
                 }
                 if (strMesage.Contains("-1"))
                 {
-                    return Ok(new { code = 0, msg = "閮ㄥ垎鎴愬姛 "+ strMesage });
+                    return Ok(new { code = 0, msg = "閮ㄥ垎鎴愬姛 " + strMesage });
                 }
                 else
                 {
@@ -276,7 +270,7 @@
         /// <param name="reason"></param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult CancelOrder(int id,string reason)
+        public IActionResult CancelOrder(int id, string reason)
         {
             try
             {
@@ -290,12 +284,12 @@
                 {
                     throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
                 }
-                 
-                _arrivalNoticeSvc.CancelOrder(id,reason,int.Parse(userId));
 
-                 
+                _arrivalNoticeSvc.CancelOrder(id, reason, int.Parse(userId));
+
+
                 return Ok(new { code = 0, msg = "鍏ュ簱鍗曟挙閿�鐢宠鎴愬姛" });
-                 
+
             }
             catch (Exception e)
             {
@@ -370,13 +364,13 @@
         }
 
         [HttpGet]
-        public IActionResult GetBoxInfoByBoxNo(string boxNo, string boxNo3,int bindNo=0)
+        public IActionResult GetBoxInfoByBoxNo(string boxNo, string boxNo3, int bindNo = 0)
         {
             try
             {
-                var models = _PalletBindSvc.GetBoxInfoByBoxNo(boxNo, boxNo3,bindNo);
+                var models = _PalletBindSvc.GetBoxInfoByBoxNo(boxNo, boxNo3, bindNo);
 
-                return Ok(new { code = 0, count= models.Count, msg = "绠辨敮鏄庣粏淇℃伅", data = models });
+                return Ok(new { code = 0, count = models.Count, msg = "绠辨敮鏄庣粏淇℃伅", data = models });
             }
             catch (Exception e)
             {
@@ -434,7 +428,7 @@
                 {
                     throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
                 }
-                _PalletBindSvc.DelBindBoxInfo(boxNo,int.Parse(userId));
+                _PalletBindSvc.DelBindBoxInfo(boxNo, int.Parse(userId));
 
                 return Ok(new { code = 0, count = 0, msg = "鍒犻櫎鎴愬姛", data = "" });
             }
@@ -466,7 +460,7 @@
                 {
                     throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
                 }
-                _PalletBindSvc.CancelPalletBind(id, reason,int.Parse(userId));
+                _PalletBindSvc.CancelPalletBind(id, reason, int.Parse(userId));
 
                 return Ok(new { code = 0, count = 0, msg = "鎵樼洏缁戝畾鎾ら攢鐢宠鎴愬姛", data = "" });
             }
@@ -490,7 +484,7 @@
             {
                 var list = _BoxInfoSvc.GetBoxInfoList(boxNo, isContinue, boxNo2);
                 var num = 0;
-                if (list!=null)
+                if (list != null)
                 {
                     num = list.Count;
                 }
@@ -516,7 +510,7 @@
         {
             try
             {
-                var models = _PalletBindSvc.GetLocateList("W01",model.RoadwayNo,model.Row,model.Column,model.Layer,model.LocateNo,model.StockDetailId, model.Page,model.Limit, out int count);
+                var models = _PalletBindSvc.GetLocateList("W01", model.RoadwayNo, model.Row, model.Column, model.Layer, model.LocateNo, model.StockDetailId, model.Page, model.Limit, out int count);
 
                 return Ok(new { code = 0, count, msg = "鑾峰彇鎸囧畾鍌ㄤ綅淇℃伅", data = models });
             }
@@ -546,7 +540,7 @@
                 {
                     throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
                 }
-                _PalletBindSvc.SaveAppointSlot(model.BindId,model.LocateId,int.Parse(userId));
+                _PalletBindSvc.SaveAppointSlot(model.BindId, model.LocateId, int.Parse(userId));
 
                 return Ok(new { code = 0, count = 0, msg = "鎸囧畾鍌ㄤ綅鎴愬姛", data = "" });
             }
@@ -698,7 +692,7 @@
                 RefAsync<int> count = new RefAsync<int>();
                 var bolls = await _taskSvc.GetTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "鍏ュ簱浠诲姟淇℃伅", data = bolls });
+                return Ok(new { code = 0, count = count.Value, msg = "鍏ュ簱浠诲姟淇℃伅", data = bolls });
             }
             catch (Exception e)
             {
@@ -867,9 +861,9 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _auditLog.EditAudit(model.Id,model.Status,model.Opinion, int.Parse(userId));
+                _auditLog.EditAudit(model.Id, model.Status, model.Opinion, int.Parse(userId));
 
-                return Ok(new { code = 0, count=0, msg = "瀹℃牳璁板綍鍒楄〃", data = "" });
+                return Ok(new { code = 0, count = 0, msg = "瀹℃牳璁板綍鍒楄〃", data = "" });
             }
             catch (Exception e)
             {
@@ -926,7 +920,7 @@
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
                 var list = _BoxInfoSvc.AddLabelBox(model.Id, model.IsReset, decimal.Parse(model.ArriveQty), model.ProductionTime, model.ExpirationTime, model.StoreTime, model.SupplierLot, int.Parse(userId));
-                return Ok(new { code = 0,  msg = "鐢熸垚绠辩爜鏍囩鎴愬姛", data = list });
+                return Ok(new { code = 0, msg = "鐢熸垚绠辩爜鏍囩鎴愬姛", data = list });
             }
             catch (Exception e)
             {
@@ -951,7 +945,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                var list = _BoxInfoSvc.GetBuDaLabelList(model.BoxNo, model.EndBoxNo, model.BoxNo2, model.EndBoxNo2,model.Type,int.Parse(userId));
+                var list = _BoxInfoSvc.GetBuDaLabelList(model.BoxNo, model.EndBoxNo, model.BoxNo2, model.EndBoxNo2, model.Type, int.Parse(userId));
                 return Ok(new { code = 0, msg = "鑾峰彇琛ユ墦绠辩爜鏍囩淇℃伅", data = list });
             }
             catch (Exception e)
@@ -992,7 +986,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _BoxInfoSvc.DelLabelByAsnNo(model.AsnNo,model.LotNo,int.Parse(userId));
+                _BoxInfoSvc.DelLabelByAsnNo(model.AsnNo, model.LotNo, int.Parse(userId));
                 return Ok(new { code = 0, msg = "鍒犻櫎鎴愬姛", data = "" });
             }
             catch (Exception e)
@@ -1134,7 +1128,7 @@
         {
             try
             {
-                var type = new List<string>() { "0","1","2" };
+                var type = new List<string>() { "0", "1", "2" };
                 var bolls = _taskSvc.GetArchivingTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, out int count);
 
                 return Ok(new { code = 0, count, msg = "浠诲姟淇℃伅", data = bolls });
@@ -1155,7 +1149,7 @@
         {
             try
             {
-                var bolls = _logSvc.GetArchivingLogOperationList(model.ComeFrom,model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, out int count);
+                var bolls = _logSvc.GetArchivingLogOperationList(model.ComeFrom, model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, out int count);
 
                 return Ok(new { code = 0, count, msg = "鍏ュ簱鎿嶄綔鏃ュ織淇℃伅", data = bolls });
             }
@@ -1174,7 +1168,7 @@
         /// <returns>閲囪喘鍗曚俊鎭�</returns>
         [HttpPost]
         [ServiceFilter(typeof(ApiResponseActionFilter))]
-        public async Task<SqlSugarPagedList>  GetProcurePlanNoticeList(ProcurePlanNoticeVm model)
+        public async Task<SqlSugarPagedList> GetProcurePlanNoticeList(ProcurePlanNoticeVm model)
         {
             RefAsync<int> count = new RefAsync<int>();
             var bolls = await _procurePlanSvc.GetProcurePlanNoticeList(model, count);
@@ -1221,7 +1215,7 @@
                 {
                     throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
                 }
-               
+
                 _procurePlanSvc.CreateAsnByProcurePlan(Convert.ToInt32(model.Id), int.Parse(UserId));
 
                 return Ok(new { code = 0, msg = "娣诲姞鎴愬姛" });
diff --git a/Wms/Wms/Controllers/BllCheckController.cs b/Wms/Wms/Controllers/BllCheckController.cs
index 812b777..5ac84ab 100644
--- a/Wms/Wms/Controllers/BllCheckController.cs
+++ b/Wms/Wms/Controllers/BllCheckController.cs
@@ -70,7 +70,7 @@
         {
             RefAsync<int> count = new RefAsync<int>();
             var bolls = await _stockCheckSvc.GetStockCheckList(model.CrNo, model.Status, model.PalletNo, model.SkuNo, model.SkuName, model.LotNo, model.StartTime, model.EndTime, model.Page, model.Limit, count);
-            return Ok(new { code = 0, count, msg = "鐩樼偣鍗曚俊鎭�", data = bolls });
+            return Ok(new { code = 0, count = count.Value, msg = "鐩樼偣鍗曚俊鎭�", data = bolls });
         }
 
         /// <summary>
@@ -84,7 +84,7 @@
             RefAsync<int> count = new RefAsync<int>();
             var bolls = await _stockCheckSvc.GetStockCheckDetailList(model.CrNo, model.Page, model.Limit, count);
 
-            return Ok(new { code = 0, count, msg = "鐩樼偣鍗曟槑缁嗕俊鎭�", data = bolls });
+            return Ok(new { code = 0, count = count.Value, msg = "鐩樼偣鍗曟槑缁嗕俊鎭�", data = bolls });
         }
         /// <summary>
         /// 鑾峰彇搴撳瓨鏄庣粏淇℃伅锛堢洏鐐归�夋嫨鏄庣粏鏁版嵁婧愶級
@@ -96,7 +96,7 @@
         {
             RefAsync<int> count = new RefAsync<int>();
             var bolls = await _stockCheckSvc.GetCheckStockDetailList(model.HouseNo, model.RoadwayNo, model.LocateNo, model.Msg, model.Page, model.Limit, count);
-            return Ok(new { code = 0, count, msg = "鑾峰彇搴撳瓨鏄庣粏淇℃伅", data = bolls });
+            return Ok(new { code = 0, count = count.Value, msg = "鑾峰彇搴撳瓨鏄庣粏淇℃伅", data = bolls });
         }
 
         /// <summary>
@@ -175,7 +175,7 @@
                 RefAsync<int> count = new RefAsync<int>();
                 var list = await _stockCheckLogSvc.GetStockCheckLogList(model.CrNo, model.Status, model.PalletNo, model.BoxNo, model.SkuNo, model.SkuName, model.LotNo, model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "鐩樼偣璁板綍", data = list });
+                return Ok(new { code = 0, count = count.Value, msg = "鐩樼偣璁板綍", data = list });
             }
             catch (Exception e)
             {
@@ -201,7 +201,7 @@
                 RefAsync<int> count = new RefAsync<int>();
                 var bolls = await _taskSvc.GetTaskList(type, model.Type, model.Status, model.TaskNo, model.IsSuccess, model.PalletNo, model.Msg, model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "搴撳唴浠诲姟淇℃伅", data = bolls });
+                return Ok(new { code = 0, count = count.Value, msg = "搴撳唴浠诲姟淇℃伅", data = bolls });
             }
             catch (Exception e)
             {
@@ -222,7 +222,7 @@
                 RefAsync<int> count = new RefAsync<int>();
                 var bolls = await _logSvc.GetLogOperationCrList(model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "鍑哄簱鎿嶄綔鏃ュ織淇℃伅", data = bolls });
+                return Ok(new { code = 0, count = count.Value, msg = "鍑哄簱鎿嶄綔鏃ュ織淇℃伅", data = bolls });
             }
             catch (Exception e)
             {
@@ -336,7 +336,7 @@
         {
             RefAsync<int> count = new RefAsync<int>();
             List<MateDataStockDto> mateDataStockDtos = await _stockPallet.GetPalletsOutside(model.SkuNo, model.SkuName, model.LotNo, model.PalletNo, model.Page, model.Limit, count);
-            return Ok(new { code = 0, count, msg = "鑾峰彇搴撳鎵樼洏淇℃伅鎴愬姛", data = mateDataStockDtos });
+            return Ok(new { code = 0, count = count.Value, msg = "鑾峰彇搴撳鎵樼洏淇℃伅鎴愬姛", data = mateDataStockDtos });
         }
 
         /// <summary>
diff --git a/Wms/Wms/Controllers/BllSoController.cs b/Wms/Wms/Controllers/BllSoController.cs
index f81022e..73a6d6d 100644
--- a/Wms/Wms/Controllers/BllSoController.cs
+++ b/Wms/Wms/Controllers/BllSoController.cs
@@ -522,18 +522,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetExportAllotList(GetExportAllotVm model)
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetExportAllotList(GetExportAllotVm model)
         {
-            try
-            {
-                var bolls = _exAllotSvc.GetExportAllotList(model.SoNo, model.WaveNo, model.PalletNo, model.SkuNo, model.SkuName, model.LotNo, model.Status,model.BoxNo, model.Page, model.Limit, out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _exAllotSvc.GetExportAllotList(model, count);
 
-                return Ok(new { code = 0, count, msg = "鍑哄簱鍒嗛厤淇℃伅", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
         }
 
         /// <summary>
@@ -577,18 +572,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetCompleteDetailList(GetCompleteDetailVm model)
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetCompleteDetailList(GetCompleteDetailVm model)
         {
-            try
-            {
-                var bolls = _comDetailSvc.GetCompleteDetailList(model.Id,model.Page, model.Limit, out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _comDetailSvc.GetCompleteDetailList(model, count);
 
-                return Ok(new { code = 0, count, msg = "鎷h揣鏄庣粏淇℃伅", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
         }
 
         [HttpGet]
@@ -615,19 +605,14 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        [HttpPost] 
-        public IActionResult GetPalletNoOutList(GetPalletNoOutVm model)
+        [HttpPost]
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetPalletNoOutList(GetPalletNoOutVm model)
         {
-            try
-            {
-                var bolls = _exNoticeSvc.GetPalletNoOutList(model.SkuNo,model.SkuName,model.PalletNo,model.LotNo,model.InspectMark,model.BitPalletMark,model.Page,model.Limit,out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _exNoticeSvc.GetPalletNoOutList(model, count);
 
-                return Ok(new { code = 0, count, msg = "鑾峰彇鎵樼洏鍑哄簱鏁版嵁寮傚父", data = bolls});
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = "鎵樼洏鍑哄簱鏁版嵁" + e.Message });
-            }
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
         }
 
         /// <summary>
@@ -722,7 +707,7 @@
                 RefAsync<int> count = new RefAsync<int>();
                 var bolls = await _taskSvc.GetTaskList( type, model.Type,model.Status,model.TaskNo,model.IsSuccess,model.PalletNo,model.Msg,model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "鍑哄簱浠诲姟淇℃伅", data = bolls });
+                return Ok(new { code = 0, count = count.Value, msg = "鍑哄簱浠诲姟淇℃伅", data = bolls });
             }
             catch (Exception e)
             {
@@ -865,18 +850,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetLogOperationSoList(GetOperationVm model)
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetLogOperationSoList(GetOperationVm model)
         {
-            try
-            {
-                var bolls = _logSvc.GetLogOperationSoList(model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime,model.Page, model.Limit, out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _logSvc.GetLogOperationSoList(model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, count);
 
-                return Ok(new { code = 0, count, msg = "鍑哄簱鎿嶄綔鏃ュ織淇℃伅", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
         }
 
         #endregion
@@ -910,18 +890,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult GetWaveMageList(GetWaveMageVm model)
+        [ServiceFilter(typeof(ApiResponseActionFilter))]
+        public async Task<SqlSugarPagedList> GetWaveMageList(GetWaveMageVm model)
         {
-            try
-            {
-                var bolls = _waveSvc.GetWaveMageList(model.WaveNo, model.Status, model.LotNo, model.LogisticsId, model.Page, model.Limit, out int count);
+            RefAsync<int> count = new RefAsync<int>();
+            var bolls = await _waveSvc.GetWaveMageList(model, count);
 
-                return Ok(new { code = 0, count, msg = "鍑哄簱鍗曚俊鎭�", data = bolls });
-            }
-            catch (Exception e)
-            {
-                return Ok(new { code = 1, msg = e.Message });
-            }
+            return new SqlSugarPagedList() { Items = bolls, Total = count };
         }
 
         /// <summary>
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index fd9e65d..d8da14f 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -174,33 +174,54 @@
         /// <returns></returns>
         [Authorize]
         [HttpGet]
+        [UnitOfWork]
         public async Task<IActionResult> CheckOutHouse(string crNo, string outMode)
         {
-            try
+            //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+            var claimsIdentity = this.User.Identity as ClaimsIdentity;
+            if (claimsIdentity == null)
             {
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩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 = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                string str = "";
-                var list = await _crCheckSvc.CheckOutHouse(crNo, outMode, _config.WcsHost + _config.IssueComApiUrl, str);
-
-                return Ok(new { code = 0, msg = str, data = list });
-
+                return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
             }
-            catch (Exception e)
+            var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+            if (string.IsNullOrWhiteSpace(userId))
             {
-                return Ok(new { code = 1, msg = e.Message });
+                return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
             }
+            string str = "";
+            var list = await _crCheckSvc.CheckOutHouse(crNo, outMode, _config.WcsHost + _config.IssueComApiUrl, str);
+
+            return Ok(new { code = 0, msg = str, data = list });
+
         }
+        /// <summary>
+        /// 鎸囦护涓嬪彂锛堣瑙夌洏鐐癸級
+        /// </summary>
+        /// <param name="crNo"></param>
+        /// <param name="outMode"></param>
+        /// <returns></returns>
+        [Authorize]
+        [HttpGet]
+        [UnitOfWork]
+        public async Task<IActionResult> CheckVision(string crNo)
+        {
+            //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩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 = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+            }
+            string str = "";
+            var list = await _crCheckSvc.CheckVision(crNo, _config.WcsHost + _config.IssueComApiUrl, str);
 
+            return Ok(new { code = 0, msg = str, data = list });
+
+        }
         /// <summary>
         /// 閲嶆柊涓嬪彂鐩樼偣浠诲姟
         /// </summary>

--
Gitblit v1.8.0