From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期五, 28 二月 2025 11:06:36 +0800
Subject: [PATCH] 修改客户需求

---
 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs      |    1 
 Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs           |   10 
 Wms/Wms/Controllers/PdaAsnController.cs           |   27 
 Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs  |    5 
 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs    |   55 
 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs          |   38 +
 Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs           |    8 
 HTML/views/ASNSetting/ArrivalLogTask.html         |    2 
 HTML/views/ASNSetting/LabelPrintSelect.html       |   14 
 HTML/views/ASNSetting/RequestLocation.html        |    8 
 Wms/Model/ModelDto/SysDto/MaterialsDto.cs         |    4 
 Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs          |    3 
 Wms/Utility/XML/ExInfoXml.xml                     |   32 
 Wms/Model/ModelVm/PdaVm/PdaCrVm.cs                |   17 
 Wms/Model/ModelVm/PdaVm/PdaSoVm.cs                |   12 
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs           |  148 +++++
 HTML/views/ASNSetting/ArrivalNotice.html          |    4 
 HTML/views/BaseSetting/MaterialsForm.html         |   16 
 HTML/views/ASNSetting/LabelPrint.html             |   10 
 HTML/views/SOSetting/ExportNotice.html            |    2 
 HTML/views/ASNSetting/LabelBoxBuDa.html           |    7 
 Wms/Wms/Controllers/PdaCrController.cs            |   33 +
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs   |   76 +-
 Wms/WMS.BLL/LogServer/TaskServer.cs               |    5 
 HTML/views/WareHouseSetting/LocateEditArea.html   |   24 
 Wms/WMS.IBLL/ILogServer/ITaskServer.cs            |    2 
 Pda/View/SoSetting/palletOut.html                 |  155 ++++
 Wms/WMS.BLL/DataServer/StockServer.cs             |  428 +++++++++++++-
 Pda/View/AsnSetting/palletEnter.html              |  117 +++
 HTML/views/WareHouseSetting/Roadway.html          |   14 
 Wms/Utility/Tools/HttpHelper.cs                   |    2 
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs     |   11 
 HTML/views/BaseSetting/Materials.html             |    6 
 HTML/views/index.html                             |    2 
 HTML/views/QualityControl/QualityInformation.html |    2 
 Wms/WMS.BLL/SysServer/PackagServer.cs             |    5 
 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs           |  309 ++++++++--
 Wms/WMS.BLL/SysServer/MaterialsServer.cs          |   12 
 Wms/Model/InterFaceModel/HttpModel.cs             |    6 
 Wms/WMS.IBLL/IDataServer/IStockServer.cs          |   12 
 Wms/Wms/Controllers/DownApiController.cs          |   44 +
 41 files changed, 1,407 insertions(+), 281 deletions(-)

diff --git a/HTML/views/ASNSetting/ArrivalLogTask.html b/HTML/views/ASNSetting/ArrivalLogTask.html
index 5cbcd1b..da83d21 100644
--- a/HTML/views/ASNSetting/ArrivalLogTask.html
+++ b/HTML/views/ASNSetting/ArrivalLogTask.html
@@ -540,7 +540,7 @@
 					title: '鐢宠鍌ㄤ綅',
 					content: 'RequestLocation.html',
 					maxmin: true,
-					area: ['25%', '40%'],
+					area: ['25%', '60%'],
 					btn: ["纭畾", "鍙栨秷"],
 					yes: function (index, layero) {
 						
diff --git a/HTML/views/ASNSetting/ArrivalNotice.html b/HTML/views/ASNSetting/ArrivalNotice.html
index 31f6d04..461c73a 100644
--- a/HTML/views/ASNSetting/ArrivalNotice.html
+++ b/HTML/views/ASNSetting/ArrivalNotice.html
@@ -156,7 +156,7 @@
 						<div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
 							<label class="layui-form-label">瀵嗙爜</label>
 							<div class="layui-input-inline" style="width: 220px;">
-								<input type="text" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off"
+								<input type="password" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off"
 								class="layui-input">
 							</div>
 						</div>
@@ -909,6 +909,7 @@
 			//鏄庣粏琛ㄦ搷浣滄爮浜嬩欢
 			table.on('tool(LAY-app-content-list2)', function (obj) {
 				var data = obj.data;
+				console.log("data.supplierlot:"+data.SupplierLot);
 				var lotno = data.LotNo;
 				
 				
@@ -940,6 +941,7 @@
 								}
 							});
 						});	
+						
 
 						break;
 					case "Addlabel" :
diff --git a/HTML/views/ASNSetting/LabelBoxBuDa.html b/HTML/views/ASNSetting/LabelBoxBuDa.html
index 1a17122..2e1990e 100644
--- a/HTML/views/ASNSetting/LabelBoxBuDa.html
+++ b/HTML/views/ASNSetting/LabelBoxBuDa.html
@@ -46,6 +46,9 @@
         .font-size10{
             font-size: 10px;
         }
+        /* .layui-table-cell {
+            word-break: break-all;
+        } */
     </style>
 </head>
 
@@ -75,13 +78,13 @@
                     </tr> -->
                     <tr>
                         <td class="font-size12">杩涘巶缂栧彿</td>
-                        <td id="LotNo" class="font-size10"></td>
+                        <td id="LotNo" style="overflow-wrap: break-word;" class="font-size10"></td>
                         <td class="font-size12">鐗╂枡浠g爜</td>
                         <td id="SkuNo" class="font-size10"></td>
                     </tr>
                     <tr>
                         <td class="font-size12">鍘熷巶鎵瑰彿</td>
-                        <td id="SupplierLot" class="font-size10"></td> 
+                        <td id="SupplierLot" style="overflow-wrap: break-word;" class="font-size10"></td> 
                         <td class="font-size12">鏁�   閲�</td>
                         <td id="Qty" class="font-size10"></td> 
                     </tr>
diff --git a/HTML/views/ASNSetting/LabelPrint.html b/HTML/views/ASNSetting/LabelPrint.html
index aaa3fa2..ddce481 100644
--- a/HTML/views/ASNSetting/LabelPrint.html
+++ b/HTML/views/ASNSetting/LabelPrint.html
@@ -119,9 +119,11 @@
             var expirationTime = getQueryString('ExpirationTime');
             var storeTime = getQueryString('StoreTime');  
 
+            
+
             var supplierLot=getQueryString('SupplierLot'); //鍘熷巶鎵瑰彿
-            $("#SupplierLot").html(supplierLot);
-            console.log(supplierLot);
+            //$("#SupplierLot").html(supplierLot);
+            //console.log(supplierLot);
 
             var Lotno=getQueryString('Lotno'); //鍘熷巶鎵瑰彿
             $("#Lotno").html(Lotno);
@@ -191,7 +193,9 @@
                         $("#SkuNo").html(res.data.SkuNo);
                         
                         $("#ExpirationTime").html(expirationTime);
-                        $("#StoreTime").html( storeTime);
+                        $("#StoreTime").html(storeTime);
+                        $("#SupplierLot").html(res.data.SupplierLot);
+
                         
                         // $("#imgBar").attr("src", res.data[0].imageStr); 
                     } else { //涓嶆垚鍔�
diff --git a/HTML/views/ASNSetting/LabelPrintSelect.html b/HTML/views/ASNSetting/LabelPrintSelect.html
index 6bf016f..d7a2ea3 100644
--- a/HTML/views/ASNSetting/LabelPrintSelect.html
+++ b/HTML/views/ASNSetting/LabelPrintSelect.html
@@ -122,9 +122,9 @@
                     });
 
 					var id = getQueryString('Id');
-					var SupplierLot=getQueryString('SupplierLot');//渚涜揣鎵规
-					$('#SupplierLot').val(SupplierLot);
-					console.log(SupplierLot);
+					//var SupplierLot=getQueryString('SupplierLot');//渚涜揣鎵规
+					//$('#SupplierLot').val(SupplierLot);
+					//console.log(SupplierLot);
 					var asnType = getQueryString('Type');
 					console.log(asnType);
 					console.log(asnType == 4);
@@ -145,6 +145,7 @@
 							$("#productionTime").val(res.data.ProductionTime);
 							$("#expirationTime").val(res.data.ExpirationTime);
 							$("#storeTime").val(res.data.StoreTime);
+							$("#SupplierLot").val(res.data.SupplierLot);
 							console.log(res.data);
 						} else { //涓嶆垚鍔�
 							layer.msg(res.msg, {
@@ -215,6 +216,13 @@
 						if (r != null) return unescape(r[2]);
 						return null;
 					}
+					// 鑾峰彇浼犻�掑弬鏁�
+					function getQueryString2(name) {
+						var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+						var r = window.location.search.substr(1).match(reg);
+						if (r != null) return unescape(r[2]);
+						return null;
+					}
 
 				})
 			</script>
diff --git a/HTML/views/ASNSetting/RequestLocation.html b/HTML/views/ASNSetting/RequestLocation.html
index 5533e0a..3cc2f24 100644
--- a/HTML/views/ASNSetting/RequestLocation.html
+++ b/HTML/views/ASNSetting/RequestLocation.html
@@ -33,6 +33,14 @@
                         <option value=""></option>
                         <option value="R01">1宸烽亾</option>
                         <option value="R02">2宸烽亾</option>
+						<option value="R03">3宸烽亾</option>
+                        <option value="R04">4宸烽亾</option>
+						<option value="R05">5宸烽亾</option>
+                        <option value="R06">6宸烽亾</option>
+						<option value="R07">7宸烽亾</option>
+                        <option value="R08">8宸烽亾</option>
+						<option value="R09">9宸烽亾</option>
+                        <option value="R10">10宸烽亾</option>
                     </select>
                 </div>
             </div>
diff --git a/HTML/views/BaseSetting/Materials.html b/HTML/views/BaseSetting/Materials.html
index 53cc29e..5ac5cf5 100644
--- a/HTML/views/BaseSetting/Materials.html
+++ b/HTML/views/BaseSetting/Materials.html
@@ -98,7 +98,7 @@
 							<select name="Environment" id="Environment" lay-verify="" lay-verify="" lay-search>
 								<option value=""></option>
 								<option value="0">甯告俯</option>
-								<option value="1">浣庢俯</option>
+								<option value="1">闃村噳</option>
 								<!-- <option value="3">骞茬嚗閫氶</option> -->
 							</select>
 						</div>
@@ -451,6 +451,7 @@
 										Environment: field.Environment,
 										Weight: Number(field.Weight),
 										Warranty: Number(field.Warranty),
+										Warrantydate:field.Warrantydate,
 										Price: Number(field.Price),
 										AdventTime: Number(field.AdventTime), //涓存湡
 										LowInventory: Number(field.LowInventory), //浣庡簱瀛�
@@ -458,9 +459,10 @@
 									};
 									if (doing) {
 										doing = false;
+										
 										sendData(IP + "/Basis/AddMate", param, 'post', function (res) {
 											console.log(res);
-											if (res.code == 0) { //鎴愬姛
+											if (res.code == 1) { //鎴愬姛
 												layer.msg(res.msg, {
 													icon: 1,
 													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
diff --git a/HTML/views/BaseSetting/MaterialsForm.html b/HTML/views/BaseSetting/MaterialsForm.html
index e01ecc5..53e89f6 100644
--- a/HTML/views/BaseSetting/MaterialsForm.html
+++ b/HTML/views/BaseSetting/MaterialsForm.html
@@ -144,10 +144,18 @@
 		</div>
 		<div class="layui-form-item">
 			<div class="layui-inline">
-				<label class="layui-form-label" style="width: 70px;">淇濊川鏈�(澶�)</label>
-				<div class="layui-input-block" style="width: 182px;">
+				<label class="layui-form-label" style="width: 90px;">淇濊川鏈�(澶�)</label>
+				
+				<div class="layui-input-inline" style="width: 120px;">
 					<input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" name="Warranty" placeholder="璇疯緭鍏ヤ繚璐ㄦ湡"
 						lay-verify="" autocomplete="off" class="layui-input">
+				</div>
+				<div class="layui-input-inline" style="width: 60px;">
+					<select name="Warrantydate" id="Warrantydate" lay-verify="" lay-verify="" lay-search>
+						<option value="0">澶�</option>
+						<option value="1">鏈�</option>
+						<option value="2">骞�</option>
+					</select>
 				</div>
 			</div>
 			<div class="layui-inline">
@@ -313,6 +321,7 @@
 							if (res.data.SkuNo != "") {
 								$("input[name='SkuNo']").attr("disabled", "disabled")
 							}
+							
 							//椤甸潰璧嬪��
 							$("input[name='SkuNo']").val(res.data.SkuNo); // 鐗╂枡鍙�
 							$("input[name='SkuName']").val(res.data.SkuName); // 鐗╂枡鍚嶇О
@@ -326,7 +335,8 @@
 							$("#UnitNo option[value='" + res.data.UnitNo + "']").attr("selected", "selected");// 鍗曚綅
 							$("#PackagNo option[value='" + res.data.PackagNo + "']").attr("selected", "selected"); // 鍖呰
 							$("#PackagNo").attr("disabled", "disabled")
-							$("#Environment option[value='" + res.data.Environment + "']").attr("selected", "selected"); // 瀛樺偍鐜
+							$("#Environment option[value='" + res.data.Environment + "']").attr("selected", "selected"); //    
+							$("#Warrantydate option[value='" + res.data.Warrantydate + "']").attr("selected", "selected"); // 淇濇寔鏈熷崟浣�
 							$("input[name='Weight']").val(res.data.Weight); // 鐞嗚閲嶉噺
 							$("input[name='Warranty']").val(res.data.Warranty); // 淇濊川鏈�
 							$("input[name='Price']").val(res.data.Price); // 鐞嗚鍗曚环
diff --git a/HTML/views/QualityControl/QualityInformation.html b/HTML/views/QualityControl/QualityInformation.html
index dbb65f2..d405737 100644
--- a/HTML/views/QualityControl/QualityInformation.html
+++ b/HTML/views/QualityControl/QualityInformation.html
@@ -84,7 +84,7 @@
 							<div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
 								<label class="layui-form-label">瀵嗙爜</label>
 								<div class="layui-input-inline" style="width: 220px;">
-									<input type="text" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off"
+									<input type="password" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off"
 									class="layui-input">
 								</div>
 							</div>
diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html
index e4a727b..8bf72a2 100644
--- a/HTML/views/SOSetting/ExportNotice.html
+++ b/HTML/views/SOSetting/ExportNotice.html
@@ -185,7 +185,7 @@
 							<div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
 								<label class="layui-form-label">瀵嗙爜</label>
 								<div class="layui-input-inline" style="width: 220px;">
-									<input type="text" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off"
+									<input type="password" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off"
 									class="layui-input">
 								</div>
 							</div>
diff --git a/HTML/views/WareHouseSetting/LocateEditArea.html b/HTML/views/WareHouseSetting/LocateEditArea.html
index a343fae..85290e3 100644
--- a/HTML/views/WareHouseSetting/LocateEditArea.html
+++ b/HTML/views/WareHouseSetting/LocateEditArea.html
@@ -32,19 +32,19 @@
 			<div class="layui-form-item">
 				<label class="layui-form-label">&emsp;&emsp;鍌ㄦ帓</label>
 				<div class="layui-input-inline">
-					<input type="number" lay-verify="required|PRules" id="Row" name="Row" placeholder="鎺捖仿仿�" autocomplete="off"
+					<input type="number" lay-verify="PRules" id="Row" name="Row" placeholder="鎺捖仿仿�" autocomplete="off"
 						class="layui-input" >
 				</div>
                 <label class="layui-form-label">&emsp;&emsp;鍌ㄥ垪</label>
 				<div class="layui-input-inline">
-					<input type="number" lay-verify="required|LRules" id="Column" name="Column" placeholder="鍒椔仿仿�" autocomplete="off"
+					<input type="number" lay-verify="LRules" id="Column" name="Column" placeholder="鍒椔仿仿�" autocomplete="off"
 						class="layui-input" >
 				</div>
 			</div>
 			<div class="layui-form-item">
 				<label class="layui-form-label">&emsp;&emsp;鍌ㄥ眰</label>
 				<div class="layui-input-inline">
-					<input type="number" lay-verify="required|CRules" id="Layer" name="Layer" placeholder="灞偮仿仿�" autocomplete="off"
+					<input type="number" lay-verify="CRules" id="Layer" name="Layer" placeholder="灞偮仿仿�" autocomplete="off"
 						class="layui-input" >
 				</div>
                 <label class="layui-form-label">鍌ㄤ綅娣卞害</label>
@@ -114,20 +114,24 @@
 				  //鑷畾涔夐獙璇佽鍒�
 				  form.verify({
 				    PRules: function(value, item){
+						if($("#Row").val() != ""){
 						var pattern = /^[a-zA-Z0-9_]+$/; // 杩欓噷鍐欎綘鐨勬鍒欒〃杈惧紡
 						if(!pattern.test(value)){
-				      						return '鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�';
-				      }
-				    },LRules: function(value, item){
+				      						return '鎺掑彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�';
+				      }}
+				    }
+					,LRules: function(value, item){
+						if($("#Column").val() != ""){
 						var pattern = /^[a-zA-Z0-9_]+$/; // 杩欓噷鍐欎綘鐨勬鍒欒〃杈惧紡
 						if(!pattern.test(value)){
-				     						return '鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�';
-						}
+				     						return '鍒楀彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�';
+						}}
 				    },CRules: function(value, item){
+						if($("#Layer").val() != ""){
 						var pattern = /^[a-zA-Z0-9_]+$/; // 杩欓噷鍐欎綘鐨勬鍒欒〃杈惧紡
 						if(!pattern.test(value)){
-				      						return '鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�';
-						}
+				      						return '灞傚彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�';
+						}}
 				    }
 				  });
 				 
diff --git a/HTML/views/WareHouseSetting/Roadway.html b/HTML/views/WareHouseSetting/Roadway.html
index 3a5c98a..544cd45 100644
--- a/HTML/views/WareHouseSetting/Roadway.html
+++ b/HTML/views/WareHouseSetting/Roadway.html
@@ -224,13 +224,15 @@
 								width: 100,
 								align: 'center'
 								
-							}, {
-								field: 'TypeName',
-								title: '鍖哄煙绫诲埆',
-								width: 150,
-								align: 'center'
+							}, 
+							// {
+							// 	field: 'TypeName',
+							// 	title: '鍖哄煙绫诲埆',
+							// 	width: 150,
+							// 	align: 'center'
 								
-							}, {
+							// }, 
+							{
 								field: 'TemperatureName',
 								title: '瀛樺偍鐜',
 								align: 'center',
diff --git a/HTML/views/index.html b/HTML/views/index.html
index 13eab3b..2e9a9a5 100644
--- a/HTML/views/index.html
+++ b/HTML/views/index.html
@@ -53,7 +53,7 @@
 								</cite>
 							</a>
 							<dl class="layui-nav-child">
-								<!-- <dd><a lay-href="set/user/info.html">鍩烘湰璧勬枡</a></dd> -->
+								<!--  <dd><a lay-href="set/user/info.html">鍩烘湰璧勬枡</a></dd>-->
 								<dd><a lay-href="set/user/password.html" id="changePassword">淇敼瀵嗙爜</a></dd>
 								<hr>
 								<dd><a href="Login.html">閫�鍑�</a></dd>
diff --git a/Pda/View/AsnSetting/palletEnter.html b/Pda/View/AsnSetting/palletEnter.html
index 5f4f167..30215ff 100644
--- a/Pda/View/AsnSetting/palletEnter.html
+++ b/Pda/View/AsnSetting/palletEnter.html
@@ -57,11 +57,39 @@
 									autocomplete="off" class="layui-input">
 							</div>
 						</div>
-						<div id="" style="margin-left: 21%; width: 38%;float: left;">
+						<div id="layout-boxcode" class="layui-form-item layout-input">
+							<label class="layui-form-label">鍦扮爜锛�</label>
+							<div class="layui-input-block">
+								<input id="LocatNo" type="text" placeholder="璇锋壂鎻忓湴鐮�"
+									autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div id="" class="layui-form-item layout-dropdownlist">
+                            <label class="layui-form-label" lang>鍏ュ簱鍙o細</label>
+                            <div class="layui-input-block" id="selectRuku">
+                                <select id="Ruku" lay-filter="getRuku" lay-search>
+                                    <option value=""></option>
+                                    <option value="033">033</option>
+                                    <option value="039">039</option>
+                                    <option value="044">044</option>
+                                    <option value="051">051</option>
+                                    <option value="443">443</option>
+                                    <option value="440">440</option>
+									<option value="001">001</option>
+									<option value="002">002</option>
+                                </select>
+                                <img src="/assets/down_arraw.png">
+                            </div>
+                        </div>
+
+						<div id="" style="margin-left: 21%; width: 25%;float: left;">
 							<button id="btnScanBox" class="layout-btn layout-btn-blue" lay-submit lay-filter="formBind"  type="button">缁戝畾</button>
 						</div>
-						<div id="" style="width: 38%;float: left;">
+						<div id="" style="width: 25%;float: left;">
 							<button id="btnScanBox" class="layout-btn layout-btn-red" lay-submit lay-filter="formUnbind"   type="button">瑙g粦</button>
+						</div>
+						<div id="" style="width: 25%;float: left;">
+							<button id="btnAGVTrans" class="layout-btn layout-btn-red" lay-submit lay-filter="formAGVIN"   type="button">AGV鍏ュ簱</button>
 						</div>
 						
 					</form>
@@ -74,6 +102,7 @@
 		<script src="/layui/layui.js"></script>
 		<script src="/js/public.js"></script>
 		<script src="/js/jquery.cookie.js"></script>
+		<script src="/js/language.js"></script>
 		<script>
 			layui.use(['form', 'jquery'], function() {
 				var form = layui.form
@@ -126,6 +155,7 @@
 				$("#PalletNo").on('input',function(){
 					  
 					  if($("#PalletNo").val() == "" || $("#PalletNo").val().length<10){
+						
 						  return
 					  }
 					  if ($("#PalletNo").val().length>=10) {
@@ -134,7 +164,39 @@
 					  }
 					  checkPalletStat()
 				  }) 
-				
+
+				  //妫�鏌ュ湴鐮佺姸鎬�
+				function checkLocatStatus(){
+					var param = {
+						"LocatNo": $("#LocatNo").val()
+					}
+					sendData(IP + "/PdaAsn/IsEnableLocatNo", param, 'post', function (res) {
+						if (res.code == 0) {
+							$("#palletNum").focus();
+						} else {
+							layer.msg(res.msg, {
+								icon: 2,
+								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+							},
+							function () { });
+							$("#LocatNo").val('')
+						}
+					});
+				}
+				//褰撳湴鐮佽緭鍏ユ澶卞幓鐒︾偣鏃�,妫�鏌ヤ竴涓嬪湴鐮佺姸鎬�
+				$("#LocatNo").on('input',function(){
+					  
+					  if($("#LocatNo").val() == "" || $("#LocatNo").val().length!=9){
+						layer.msg('璇锋鏌ュ湴鐮佹槸鍚︽纭�', {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						});
+						return;
+					  }
+					  checkLocatStatus()
+
+				  })
+
 				// $("#bar").focus();
 				$("#PalletNo").keydown(function(e) {
 					//console.log("e.keyCode is "+e.keyCode)
@@ -289,6 +351,55 @@
 					
 					return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆�
 				});
+
+				form.on('submit(formAGVIN)', function(data) {
+					
+					if (!$("#LocatNo").val()) {
+						layer.msg('璇锋壂鎻忓湴鐮�', {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						});
+						return;
+					}
+					if (!$("#Ruku").val()) {
+						layer.msg('璇烽�夋嫨鍏ュ簱鍙�', {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						});
+						return;
+					}
+					//鍏堢粦瀹氱┖鎵樼洏鍨�
+					//bind();
+					//缁戝畾鎴愬姛鍚庤皟搴GV杩愰�佺┖鎵樼洏鍨�
+					var param = {
+						'PalletNo':$("#PalletNo").val(),
+						"LocatNo": $("#LocatNo").val(),
+						"Ruku": $("#Ruku").val(),
+					}
+					sendData(IP + "/PdaCr/AgvTransport3", param, 'post', function(res) {
+						//console.log("鎵樼洏鐘舵�侊細"+res.msg)
+						if (res.code == 0) { //鎴愬姛 
+							layer.msg(res.msg, {
+								icon: 1,
+								time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+							}, function() {
+							});
+							$("#PalletNo").val(''),
+							$("#palletNum").val(''),
+							$("#LocatNo").val(''),
+							$("#Ruku").val('')
+						} else { //涓嶆垚鍔�
+							layer.msg(res.msg, {
+								icon: 2,
+								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+							}, function() {
+								//鍥炶皟
+							});
+						}
+					});
+					return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆�
+				});
+
 				function unbind(){
 					layer.msg('璇ユ搷浣滀細瑙g粦杩欎釜鎵樼洏涓婄殑鎵�鏈夋墭鐩橈紝纭畾瑕佽В缁戝悧锛�', {
 						time: 0 //涓嶈嚜鍔ㄥ叧闂�
diff --git a/Pda/View/SoSetting/palletOut.html b/Pda/View/SoSetting/palletOut.html
index 0e7ac26..ef77d81 100644
--- a/Pda/View/SoSetting/palletOut.html
+++ b/Pda/View/SoSetting/palletOut.html
@@ -55,36 +55,65 @@
 						<li><a href="../login.html">閲嶆柊鐧诲綍</a></li>
 					</ul>
 				</div>
-				<div id="" class="layout-bill-info">
-					<form class="layui-form" action="">
-						<div id="layout-pallet" class="layui-form-item layout-input" style="margin-top: 10px;">
-							<label class="layui-form-label">鎵樼洏鍨涙暟锛�</label>
-							<div class="layui-input-block">
-								<input id="STOCKCODE" type="number" lay-verify="stock" placeholder="鎵樼洏鍨涙暟"
-									autocomplete="off" class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
+
+				<button id="option1" class="layout-btn" type="button"> 鏁存墭</button>
+            	<button id="option2" class="layout-btn" type="button">鍗曟墭</button>
+
+				<div id="content1">
+					<div id="" class="layout-bill-info">
+						<form class="layui-form" action="">
+							<div id="layout-pallet" class="layui-form-item layout-input" style="margin-top: 10px;">
+								<label class="layui-form-label">鎵樼洏鍨涙暟锛�</label>
+								<div class="layui-input-block">
+									<input id="STOCKCODE" type="number" lay-verify="stock" placeholder="鎵樼洏鍨涙暟"
+										autocomplete="off" class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
+								</div>
 							</div>
-						</div>
-						<div id="layout-bill" class="layui-form-item layout-dropdownlist" >
-							<label class="layui-form-label">鍑哄簱鍙o細</label>
-							<div class="layui-input-block" id="selectDiv">
-								<select id="bar" lay-filter="getbar" lay-verify="required" lay-search>
-									<option value=""></option>
-									<option value="033">033</option>
-									<option value="039">039</option>
-									<option value="044">044</option>
-									<option value="051">051</option>
-									<option value="059">059</option>
-									<option value="440">440</option>
-									<option value="443">443</option>
-								</select>
-								<!-- <img src="/assets/down_arraw.png" > -->
+							<div id="layout-bill" class="layui-form-item layout-dropdownlist" >
+								<label class="layui-form-label">鍑哄簱鍙o細</label>
+								<div class="layui-input-block" id="selectDiv">
+									<select id="bar" lay-filter="getbar" lay-verify="required" lay-search>
+										<option value=""></option>
+										<option value="033">033</option>
+										<option value="039">039</option>
+										<option value="044">044</option>
+										<option value="051">051</option>
+										<option value="059">059</option>
+										<option value="440">440</option>
+										<option value="443">443</option>
+									</select>
+									<!-- <img src="/assets/down_arraw.png" > -->
+								</div>
 							</div>
-						</div>
-						<div id="" class="btn-out">
-							<button id="btnOut" class="layout-btn layout-btn-blue" type="button">鍑哄簱</button>
-						</div>
-					</form>
+							<div id="" class="btn-out">
+								<button id="btnOut" class="layout-btn layout-btn-blue" type="button">鍑哄簱</button>
+							</div>
+						</form>
+					</div>
 				</div>
+
+				<div id="content2">
+					<div id="" class="layout-bill-info">
+						<form class="layui-form" action="">
+							<div id="layout-bill" class="layui-form-item layout-dropdownlist" >
+								<label class="layui-form-label">鎷h揣鍙o細</label>
+								<div class="layui-input-block" id="selectDiv">
+									<select id="bar2" lay-filter="getbar" lay-verify="required" lay-search>
+										<option value=""></option>
+										<option value="001">001</option>
+										<option value="002">002</option>
+									</select>
+									<!-- <img src="/assets/down_arraw.png" > -->
+								</div>
+							</div>
+							<div id="" class="btn-out">
+								<button id="btnOut2" class="layout-btn layout-btn-blue" type="button">鍙┖鎵�</button>
+							</div>
+						</form>
+					</div>
+				</div>
+
+
 			</div>
 		</div>
 		
@@ -96,6 +125,37 @@
 			layui.use(['form', 'jquery'], function() {
 				var form = layui.form
 				var isChongFu = true;
+
+				/* 鏍囩鍒囨崲浠g爜 */
+
+				var xianshiyemian = 0;
+
+				$('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹�
+				$('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊
+				$('#content2').hide();
+				$(document).ready(function () {
+					$('#option1').click(function () {
+						// qingkong();
+						xianshiyemian = 0;
+						$('#content1').show();
+						$('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹�
+
+						$('#content2').hide();
+						$('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊
+						$("#palletNo").focus();//鍏夋爣榛樿閫変腑
+					});
+
+					$('#option2').click(function () {
+						// qingkong();
+						xianshiyemian = 1;
+						$('#content1').hide();
+						$('#option1').attr("style", "background-color: #999;width: 50%;float: left;text-align: center;"); //榛樿棰滆壊
+
+						$('#content2').show();
+						$('#option2').attr("style", "background-color: red;width: 50%;float: right;text-align: center;"); //閫変腑鍚庨鑹�
+						$("#palletNo2").focus();//鍏夋爣榛樿閫変腑
+					});
+				});
 				//鎵�閫夊叆搴撳崟鐨勮缁嗕俊鎭�
 				//console.log($.cookie('userId'));
 				// if (!$.cookie('userId')) {
@@ -111,6 +171,7 @@
 				function clear(){ 
 					$("#STOCKCODE").val(""); 
 					$("#bar option[value='']").attr("selected", "selected");
+					$("#bar2 option[value='']").attr("selected", "selected");
 					form.render('select');
 				}
 				   
@@ -182,6 +243,46 @@
 					}
 					
 				})
+				//鍙崟绌烘墭
+				$('#btnOut2').click(function(){
+					
+					if($('#bar2').val() == ''){
+						layer.msg("璇烽�夋嫨鎷h揣鍙�", {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						}, function() {});
+						return
+					} 
+					if (isChongFu == true) {
+						isChongFu = false; 
+						var param2 = {
+							OutMode:$('#bar2').val()
+						};
+						
+						// Int(param.Num)
+						console.log(param2)
+						sendData(IP + "/DownApi/IssuePlnCheckHouseWcs", param2, 'post', function(res) {
+							console.log("鍑哄簱锛�"+JSON.stringify(res))
+							if (res.code == 0) { //鎴愬姛
+								layer.msg(res.msg, {
+									icon: 1,
+									time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function() {isChongFu = true;clear();});
+							} else { //涓嶆垚鍔�
+								layer.msg(res.msg, {
+									icon: 2,
+									time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function() {isChongFu = true;clear();});
+							}
+						});
+					}else{
+						layer.msg("璇峰嬁閲嶅鐐瑰嚮", {
+							icon: 2,
+							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+						});
+					}
+					
+				})
 				
 				//鑾峰彇鍑哄簱鍙�
 				// $("#selectDiv").click(function(){
diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index 206f8e1..7327c9e 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -111,6 +111,12 @@
         public string Msg { get; set; }
     }
 
+    public class WcsAgvModel
+    {
+        public int Success { get; set; }
+        public string Message { get; set; }
+    }
+
     /// <summary>
     /// 鎺ユ敹wcs鍙斁淇″彿model
     /// </summary>
diff --git a/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs b/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs
index e2fc37a..5a82dce 100644
--- a/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs
+++ b/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs
@@ -118,6 +118,11 @@
         /// 鍌ㄥ瓨鏈熻嚦
         /// </summary>
         public string StoreTime { get; set; }
+
+        /// <summary>
+        /// 渚涜揣鎵规
+        /// </summary>
+        public string SupplierLot { get; set; }
     }
 
 }
diff --git a/Wms/Model/ModelDto/SysDto/MaterialsDto.cs b/Wms/Model/ModelDto/SysDto/MaterialsDto.cs
index f12fc69..aaaf68e 100644
--- a/Wms/Model/ModelDto/SysDto/MaterialsDto.cs
+++ b/Wms/Model/ModelDto/SysDto/MaterialsDto.cs
@@ -88,6 +88,10 @@
         /// 淇濊川鏈�
         /// </summary>
         public int? Warranty { get; set; }
+        /// <summary>
+        /// 淇濊川鏈熷崟浣�
+        /// </summary>
+        public string Warrantydate { get; set; }
 
         /// <summary>
         /// 鐞嗚鍗曚环
diff --git a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs
index f3ead93..50338c5 100644
--- a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs
+++ b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs
@@ -86,4 +86,21 @@
         public string EndLocatNo { get; set; }
     }
 
+
+    public class PdaAgvTransNullPalnoModel
+    {
+        
+        /// <summary>
+        /// 鎵樼洏鏉$爜
+        /// </summary>
+        public string PalletNo { get; set; }
+        /// <summary>
+        /// 鐩爣鍖哄煙
+        /// </summary>
+        public string LocatNo { get; set; }
+        /// <summary>
+        /// 鍏ュ簱鍙�
+        /// </summary>
+        public string Ruku { get; set; }
+    }
 }
diff --git a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs
index 47db435..8803a87 100644
--- a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs
+++ b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs
@@ -86,4 +86,16 @@
         public string OutMode { get; set; }
     }
 
+    /// <summary>
+    /// 鎷h揣鍙┖鎵樼洏
+    /// </summary>
+    public class CheckModePalletVm
+    {
+       
+        /// <summary>
+        /// 鎷h揣鍙�
+        /// </summary>
+        public string OutMode { get; set; }
+    }
+
 }
diff --git a/Wms/Utility/Tools/HttpHelper.cs b/Wms/Utility/Tools/HttpHelper.cs
index 2f7b637..4b90152 100644
--- a/Wms/Utility/Tools/HttpHelper.cs
+++ b/Wms/Utility/Tools/HttpHelper.cs
@@ -218,7 +218,7 @@
                 //淇敼鍙傛暟鐨勫��
                 foreach (var de in Pars)
                 {
-                    string subNode = "DataList/Product/Batch";// + de.Key.ToString();
+                    string subNode = "DataList/Events/Event/DataField";// + de.Key.ToString();
                     
                     XmlNode node = xml.SelectSingleNode(subNode, nsmgr);
                     if (de != null)
diff --git a/Wms/Utility/XML/ExInfoXml.xml b/Wms/Utility/XML/ExInfoXml.xml
index 2898d93..1e76c09 100644
--- a/Wms/Utility/XML/ExInfoXml.xml
+++ b/Wms/Utility/XML/ExInfoXml.xml
@@ -1,10 +1,26 @@
 锘�
-<DataList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" corpName="澶╂触甯備腑鍗囨寫鎴樼敓鐗╃鎶�鏈夐檺鍏徃" 
-          toUnitType="2" manCode="19053107" dataType="wareHouseOut" version="1.1" 
-          xsi:noNamespaceSchemaLocation="鍏借嵂浜у搧鍑哄簱鏁版嵁1.1.xsd">
-	<Product>
-		<Batch operator="鐢虫姤璁惧鍚嶇О" oprDate="2022/06/25" toProvince="榛戦緳姹熺渷" toCity="鍝堝皵婊ㄥ競" toCounty="鍙屽煄鍖�" toUnit="鍝堝皵婊ㄦ簮绛栧晢璐告湁闄愬叕鍙�" toUnitcode="">
-			<!--<Data code="202203240009000479940290"/>-->
-		</Batch>
-	</Product>
+<DataList version="1.0" encoding="utf-8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="缁堢鎺ュ彛XML Schema-3.0.xsd" SN="BZ010" Version="3.0" License="1001122">
+	<Events>
+		<Event Name="SalesWareHouseOut" MainAction="WareHouseOut">
+			<ActionMaping>
+				<Action Name="WareHouseOut">
+					<ActionData>CorpOrderID</ActionData>
+					<ActionData>Actor</ActionData>
+					<ActionData>ToCorpID</ActionData>
+					<ActionData>ActDate</ActionData>
+					<ActionData>Code</ActionData>
+				</Action>
+			</ActionMaping>
+			<DataMaping>
+				<MetaData Name="CorpOrderID" Type="String"/>
+				<MetaData Name="Actor" Type="String"/>
+				<MetaData Name="ActDate" Type="Date"/>
+				<MetaData Name="ToCorpID" Type="String"/>
+				<MetaData Name="Code" Type="String"/>
+			</DataMaping>
+			<DataField>
+				
+			</DataField>
+		</Event>
+	</Events>
 </DataList>
\ No newline at end of file
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index d163829..8597905 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -156,6 +156,7 @@
                             data.ProductionTime = boxInfo.ProductionTime!= null ? ((DateTime)boxInfo.ProductionTime).ToString("yyyy-MM-dd"):"";
                             data.ExpirationTime = boxInfo.ExpirationTime != null ? ((DateTime)boxInfo.ExpirationTime).ToString("yyyy-MM-dd") : "";
                             data.StoreTime = boxInfo.StoreTime != null ? ((DateTime)boxInfo.StoreTime).ToString("yyyy-MM-dd") : "";
+                            
                         }
                     }
                 }
@@ -163,6 +164,7 @@
                 var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty);
                 var qty = detail.Qty - labelQty;
                 data.Qty = qty.ToString();
+                data.SupplierLot = detail.SupplierLot;
                 return data;
             }
             catch (Exception e)
@@ -213,7 +215,7 @@
                         break;
                     case "6"://浠e偍鍏ュ簱
                         skuType = "(0,1,2,3,4)";
-                        IsPack = 2; //涓嶈创
+                        //IsPack = 2; //涓嶈创
                         break;
                     case "7"://瀵勫瓨鍏ュ簱
                         //skuType = "(3)";
@@ -1269,45 +1271,45 @@
                 };
 
                 #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp 鎴� mes
-                //绯荤粺瀵规帴鍚庢斁寮�
-                var jsonData = JsonConvert.SerializeObject(asnInfo);
-                var mesList = new List<string>() { "0", "4" };  //0 鎴愬搧鍏ュ簱 4浣欐枡閫�鍥炲叆搴�
-                var erpList = new List<string>() { "1", "2", "3" }; //1 閲囪喘鍏ュ簱  2涓棿鍝佸叆搴�  3 閫�璐у叆搴�
+                ////绯荤粺瀵规帴鍚庢斁寮�
+                //var jsonData = JsonConvert.SerializeObject(asnInfo);
+                //var mesList = new List<string>() { "0", "4" };  //0 鎴愬搧鍏ュ簱 4浣欐枡閫�鍥炲叆搴�
+                //var erpList = new List<string>() { "1", "2", "3" }; //1 閲囪喘鍏ュ簱  2涓棿鍝佸叆搴�  3 閫�璐у叆搴�
 
-                if (mesList.Contains(notice.Type)) // mes 
-                {
-                    //鑾峰彇浠ょ墝
-                    //var token = new Token().GetMesToken(mesTokenUrl); //娴嬭瘯涓嶄娇鐢═OKEN锛屾寮忚繍琛屾椂鏀惧紑
-                    var token = "";
-                    Dictionary<string, string> mesDic = new Dictionary<string, string>()
-                    {
-                        {"Authorization",token }
-                    };
-                    var mesData = new FinishAsnModel()
-                    {
-                        no = asnInfo.OrderCode,
-                        qty = asnInfo.AsnDetails.Sum(m=>m.Qty)
-                    };
-                    jsonData = JsonConvert.SerializeObject(mesData);
-                    //璋冪敤鎺ュ彛
-                    var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic);
+                //if (mesList.Contains(notice.Type)) // mes 
+                //{
+                //    //鑾峰彇浠ょ墝
+                //    //var token = new Token().GetMesToken(mesTokenUrl); //娴嬭瘯涓嶄娇鐢═OKEN锛屾寮忚繍琛屾椂鏀惧紑
+                //    var token = "";
+                //    Dictionary<string, string> mesDic = new Dictionary<string, string>()
+                //    {
+                //        {"Authorization",token }
+                //    };
+                //    var mesData = new FinishAsnModel()
+                //    {
+                //        no = asnInfo.OrderCode,
+                //        qty = asnInfo.AsnDetails.Sum(m=>m.Qty)
+                //    };
+                //    jsonData = JsonConvert.SerializeObject(mesData);
+                //    //璋冪敤鎺ュ彛
+                //    var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic);
 
-                    var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
-                    if (obj.status != "success")
-                    {
-                        throw new Exception("涓婁紶澶辫触" + obj.message);
-                    }
-                }
-                else if (erpList.Contains(notice.Type)) //erp  
-                {
-                    var response = HttpHelper.DoPost(erpUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
+                //    var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                //    if (obj.status != "success")
+                //    {
+                //        throw new Exception("涓婁紶澶辫触" + obj.message);
+                //    }
+                //}
+                //else if (erpList.Contains(notice.Type)) //erp  
+                //{
+                //    var response = HttpHelper.DoPost(erpUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
 
-                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
-                    if (obj.Success != 0)
-                    {
-                        throw new Exception("涓婁紶澶辫触" + obj.Message);
-                    }
-                }
+                //    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                //    if (obj.Success != 0)
+                //    {
+                //        throw new Exception("涓婁紶澶辫触" + obj.Message);
+                //    }
+                //}
 
                 
                 #endregion
diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index 5f6f123..650d65e 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -529,6 +529,7 @@
                 data.Standard = asnDetail.Standard;
                 data.SupplierLot = asnDetail.SupplierLot;
                 data.PackageStandard = str;
+                data.SupplierLot = asnDetail.SupplierLot;
                 return data;
             }
             catch (Exception e)
diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
index acf4038..2e8dd5f 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -995,7 +995,7 @@
                                 }
                             }
 
-                            //鐢熸垚鐩樼偣璁板綍
+                            //鐢熸垚鐩樼偣璁板綍                                                        
                             Db.Insertable(logList).ExecuteCommand();
                         }
                         // 鍌ㄤ綅鍙�
@@ -1397,8 +1397,8 @@
                                 materiel_name = item.SkuName,
                                 qty = item.Qty,
                                 batch = item.LotNo,
-                                producttime = item.ProductionTime.ToString().Substring(1, 8),
-                                expiry = item.ExpirationTime.ToString().Substring(1, 8)
+                                producttime = item2.ProductionTime.ToString().Substring(1, 8),
+                                expiry = item2.ExpirationTime.ToString().Substring(1, 8)
 
                             });
                         }
@@ -1427,32 +1427,33 @@
                     Db.Updateable(endLocate).ExecuteCommand();
 
                 }
-                if (endLocate!= null && endLocate.AreaNo == "B12")
-                {
-                    //鑾峰彇浠ょ墝
-                    var token = new Token().GetMesToken(mesTokenUrl);
-                    Dictionary<string, string> mesDic = new Dictionary<string, string>()
-                    {
-                        {"Authorization",token }
-                    };
-                    var mesData = new RequertBeiliaoModel()
-                    {
-                        morder_no = stockDetail.First().SONo,
-                        pallet = stockDetail.First().PalletNo,
-                        layer_no = endLocate.LocatNo,
-                        items = data
-                    };
-                    var jsonData = JsonConvert.SerializeObject(mesData);
-                    //璋冪敤鎺ュ彛
-                    var response = HttpHelper.DoPost(mesUrl, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic);
+                //姝e紡杩愯绋嬪簭鏀惧紑
+                //if (endLocate!= null && endLocate.AreaNo == "B12")
+                //{
+                //    //鑾峰彇浠ょ墝
+                //    var token = new Token().GetMesToken(mesTokenUrl);
+                //    Dictionary<string, string> mesDic = new Dictionary<string, string>()
+                //    {
+                //        {"Authorization",token }
+                //    };
+                //    var mesData = new RequertBeiliaoModel()
+                //    {
+                //        morder_no = stockDetail.First().SONo,
+                //        pallet = stockDetail.First().PalletNo,
+                //        layer_no = endLocate.LocatNo,
+                //        items = data
+                //    };
+                //    var jsonData = JsonConvert.SerializeObject(mesData);
+                //    //璋冪敤鎺ュ彛
+                //    var response = HttpHelper.DoPost(mesUrl, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic);
 
-                    var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
-                    if (obj.status != "0")
-                    {
-                        throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message);
-                    }
+                //    var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                //    if (obj.status != "0")
+                //    {
+                //        throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message);
+                //    }
 
-                }
+                //}
                 if (userId != 0)
                 {
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index b38fcf2..461c9fc 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -44,7 +44,7 @@
             try
             {
                 //model.Type锛氬崟鎹被鍨� 鍦ㄨ繖閲屼唬琛ㄥ墠绔〉绛剧被鍨嬶細鍗虫爣绛鹃〉绛撅細璐存爣鐗╂枡锛� 鏁伴噺椤电锛氫笉璐磋〃鐗╂枡锛屽師鍥狅細鎳掑緱鍔犲弬鏁�
-                var data = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.Status != "3" && m.Status != "4").Select(m => m.ASNNo).ToList();
+                var data = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.Status !="2" && m.Status != "3" && m.Status != "4").Select(m => m.ASNNo).ToList();
                 var list = new List<ArrivalNoticeDetailDto>();
                 if (model.Type.Contains("0"))//0璐存爣
                 {
@@ -267,6 +267,42 @@
             }
         }
 
+
+
+        /// <summary>
+        /// 楠岃瘉鍦扮爜鏄惁瀛樺湪
+        /// </summary>
+        /// <param name="locatNo">鍦扮爜</param>
+        /// <returns>"":鍙娇鐢� -1:涓嶅彲浣跨敤锛堝師鍥�)</returns>
+        public string IsEnableLocatNo(string locatNo)
+        {
+            string sqlMsg = "";
+            string sqlString = string.Empty;
+            try
+            {
+                sqlString = $"select * from SysStorageLocat where LocatNo = '{locatNo}' and WareHouseNo = 'W02' and isdel = '0';";
+                var models = Db.Ado.SqlQuery<PalletBindVm>(sqlString);
+
+                if (models.Count > 0)
+                {
+                    if (models[0].Status != "0")
+                    {
+                        sqlMsg = "-1:姝ゅ簱浣嶄娇鐢ㄤ腑锛岃鍦ㄥ簱鍐呰鏍稿疄!";
+                    }
+                }
+                else
+                {
+                    sqlMsg = "-1:搴撲綅涓嶅瓨鍦�!";
+                }
+
+                return sqlMsg;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
         // 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅   liudl 
         public List<BoxInfoDto> GetBoxInfos(BoxInfoVm model)
         {
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
index f4b7e60..73bf387 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -970,26 +970,30 @@
                 Db.BeginTran();
 
                 //璇锋眰WCS鍏ュ簱鍙f斁璐х‘璁�
-                try
+                if (!string.IsNullOrEmpty(ruku))
                 {
-                    var port = new
+                    try
                     {
-                        Port = EndLocat
-                    };
-                    var json = JsonConvert.SerializeObject(port);
-                    var res = HttpHelper.DoPost(wcsurl, json, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS");
+                        var port = new
+                        {
+                            Port = EndLocat
+                        };
+                        var json = JsonConvert.SerializeObject(port);
+                        var res = HttpHelper.DoPost(wcsurl, json, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS");
 
-                    //////瑙f瀽杩斿洖鏁版嵁 
-                    var ret = JsonConvert.DeserializeObject<WcsModel>(res);
-                    if (ret.StatusCode == -1)
+                        //////瑙f瀽杩斿洖鏁版嵁 
+                        var ret = JsonConvert.DeserializeObject<WcsModel>(res);
+                        if (ret.StatusCode == -1)
+                        {
+                            throw new Exception(EndLocat + "鍙峰叆搴撳彛宸叉湁鍏朵粬浠诲姟鍗犵敤,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�");
+                        }
+                    }
+                    catch (Exception ex)
                     {
-                        throw new Exception(EndLocat + "鍙峰叆搴撳彛宸叉湁鍏朵粬浠诲姟鍗犵敤,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�");
+                        throw new Exception(ex.Message);
                     }
                 }
-                catch (Exception ex)
-                {
-                    throw new Exception(ex.Message);
-                }
+                
                 
 
                 //娣诲姞鍑哄簱浠诲姟
@@ -1040,38 +1044,19 @@
                 #region 鍛煎彨灏忚溅浠g爜
 
                 var endlono = EndLocat;
-                
-                //鏍规嵁鐩殑鍦板潃搴撳尯鑾峰彇灏忚溅浠诲姟绫诲瀷
-                switch (storageLocatEnd.AreaNo)
-                {
-                    case "B13" :
-                        tasktype = "D02";  // 鍙犳墭浠诲姟锛堢洰鐨勫湴鍧�涓虹┖鎵樼洏鏀堕泦鍖猴級
-                        break;
-                    case "B15":
-                        tasktype = "D01";  // 鎷嗘墭浠诲姟锛堢洰鐨勫湴鍧�涓烘嫞璐у尯锛�
-                        break;
-                }
                 if (OrderTy == "0")
                 {
                     tasktype = "RK0"; //鍏ュ簱浠诲姟
                 }
 
-                //缂撳瓨搴撲綅杞崲     3妤煎師杈呮枡Y003_001锛孻003_002锛孻003_003  1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖�   1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖�
+                //缂撳瓨搴撲綅杞崲     3妤兼帴椹充綅Y003_001锛孻003_002锛孻003_003  
                 if (storageLocatEnd.AreaNo == "B12")
                 {
                     switch (EndLocat.ToString().Substring(4, 1))
                     {
                         case "1":
-                            endlono = "Y003_00" + EndLocat.ToString().Substring(6, 1);
+                            endlono = "Y003_0" + EndLocat.ToString().Substring(5, 2);
                             tasktype = "D00";     //鐐瑰埌鐐逛换鍔�
-                            break;
-                        case "2":
-                            endlono = "Y138_0" + EndLocat.ToString().Substring(5, 2);
-                            tasktype = "F20";    //鐢垫浠诲姟
-                            break;
-                        case "3":
-                            endlono = "Y128_0" + EndLocat.ToString().Substring(5, 2);
-                            tasktype = "F20";     //鐢垫浠诲姟
                             break;
                         default:
                             break;
@@ -1297,21 +1282,13 @@
                             break;
                     }
 
-                    //缂撳瓨搴撲綅杞崲     3妤煎師杈呮枡Y003_001鍒癥003_009  1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖�   1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖�
+                    //缂撳瓨搴撲綅杞崲     3妤煎師杈呮枡Y003_001鍒癥003_011 
                     if (storageLocatEnd.AreaNo == "B12")
                     {
                         switch (EndLocat.ToString().Substring(4, 1))
                         {
                             case "1":
-                                endlono = "Y003_00" + EndLocat.ToString().Substring(6, 1);
-                                break;
-                            case "2":
-                                endlono = "Y138_0" + EndLocat.ToString().Substring(5, 2);
-                                tasktype = "F20";    //鐢垫浠诲姟
-                                break;
-                            case "3":
-                                endlono = "Y128_0" + EndLocat.ToString().Substring(5, 2);
-                                tasktype = "F20";     //鐢垫浠诲姟
+                                endlono = "Y003_0" + EndLocat.ToString().Substring(5, 2);
                                 break;
                             default:
                                 break;
@@ -1427,8 +1404,203 @@
             }
         }
 
+        /// <summary>
+        /// 绌烘墭鐩樺叆搴撳懠鍙皬杞�
+        /// </summary>
+        /// <param name="palletNo"></param>
+        /// <param name="areaNo"></param>
+        /// <param name="ruku"></param>
+        public void AgvTransport3(string palletNo, string LocatNo, string ruku, int userId, string url, string wcsurl)
+        {
+            if (string.IsNullOrEmpty(palletNo))
+            {
+                throw new Exception("璇锋壂鎻忔墭鐩樻潯鐮侊紒");
+            }
+            if (string.IsNullOrEmpty(ruku))
+            {
+                throw new Exception("璇烽�夋嫨鍏ュ簱鍙o紒");
+            }
+            try
+            {
+                if (ruku == "001")
+                {
+                    var xlocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101"));
+                    if (xlocate == null)
+                    {
+                        throw new Exception("绌烘墭鐩樻敹闆嗗櫒宸叉弧");
+                    }
+                    ruku = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo;
+                }
+                if (ruku == "002")
+                {
+                    var dlocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13040101" || w.LocatNo == "B13050101" || w.LocatNo == "B13060101"));
+                    if (dlocate == null)
+                    {
+                        throw new Exception("绌烘墭鐩樻敹闆嗗櫒宸叉弧");
+                    }
+                    ruku = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13040101" || w.LocatNo == "B13050101" || w.LocatNo == "B13060101")).LocatNo;
+                }
+                if (ruku == null)
+                {
+                    throw new Exception("褰撳墠鎵樼洏鏀堕泦鍣ㄥ伐浣嶆棤绌轰綑锛岃灏嗙┖鎵樼洏鍨涘叆绔嬩綋搴�");
+                }
+                string EndLocat = ruku;//鐩爣浣嶇疆
+                string OrderTy = ruku.Length ==3 ? "0":"2";
+                var tasktype = "RK0"; //鍏ュ簱浠诲姟
+                int palnoqty = 1;
+                var log = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && (w.Status == "0" || w.Status == "1"));
+                if (log != null)
+                {
+                    throw new Exception("璇ユ墭鐩樺凡鏈夊皬杞︾瓑寰呮墽琛屾垨姝e湪鎵ц鐨勪换鍔�!");
+                }
+                //璧峰鍌ㄤ綅淇℃伅
+                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == LocatNo);
+                if (storageLocat == null)
+                {
+                    throw new Exception("鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!");
+                }
+
+                //寮�鍚簨鍔�
+                Db.BeginTran();
+                if (EndLocat.Length == 3)
+                {
+                    //璇锋眰WCS鍏ュ簱鍙f斁璐х‘璁�
+                    try
+                    {
+                        var port = new
+                        {
+                            Port = EndLocat
+                        };
+                        var json = JsonConvert.SerializeObject(port);
+                        var res = HttpHelper.DoPost(wcsurl, json, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS");
+
+                        //////瑙f瀽杩斿洖鏁版嵁 
+                        var ret = JsonConvert.DeserializeObject<WcsModel>(res);
+                        if (ret.StatusCode == -1)
+                        {
+                            throw new Exception(EndLocat + "鍙峰叆搴撳彛宸叉湁鍏朵粬浠诲姟鍗犵敤,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�");
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        throw new Exception(ex.Message);
+                    }
+                }
+                else
+                {
+                    tasktype = "D02";
+                    palnoqty = (int)Db.Queryable<BllPalletBind>().First(w => w.PalletNo == palletNo && w.Status == "1" && w.IsDel == "0").Qty;
+
+                }
+
+                //娣诲姞鍏ュ簱浠诲姟
+                var taskNo = new Common().GetMaxNo("TK");
+                var exTask = new LogTask
+                {
+                    TaskNo = taskNo,
+                    Sender = "WMS",
+                    Receiver = "AGV",
+                    IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+                    StartLocat = LocatNo,//璧峰浣嶇疆
+                    EndLocat = EndLocat,//鐩爣浣嶇疆
+                    PalletNo = palletNo,//鎵樼洏鐮�
+                    Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", LocatNo, EndLocat),
+                    IsSend = 0,//鏄惁鍙啀娆′笅鍙�
+                    IsCancel = 0,//鏄惁鍙彇娑�
+                    IsFinish = 0,//鏄惁鍙畬鎴�
+                    Type = OrderTy,//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                    Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                    OrderType = OrderTy,//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+
+                    CreateTime = DateTime.Now
+                };
+                Db.Insertable(exTask).ExecuteCommand();
+
+                //淇敼璧峰鍌ㄤ綅鍦板潃鐘舵��
+                storageLocat.Status = "5";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                Db.Updateable(storageLocat).ExecuteCommand();
+
+                //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "绌烘墭鍏ュ簱", palletNo, OrderTy == "0" ? "鍏ュ簱" : "绉诲簱", $"PDA鍛煎彨灏忚溅瀵规墭鐩樺彿锛歿palletNo}鍙戣捣杞繍", userId);
+
+                #region 鍛煎彨灏忚溅浠g爜
+
+                //鐐瑰埌鐐规寚浠ら泦鍚�
+                object[] position = new object[2];
+                position[0] = new
+                {
+                    positionCode = LocatNo,
+                    type = "00"
+                };
+                position[1] = new
+                {
+                    positionCode = EndLocat,
+                    type = "00"
+                };
+
+                List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+
+
+                AgvSchedulingTask agvTask = new AgvSchedulingTask();
+                Random r = new Random();
+                long ran = DateTime.Now.Ticks;
+                agvTask.ReqCode = ran.ToString();
+                agvTask.TaskCode = taskNo;
+                agvTask.TaskTyp = tasktype;
+                agvTask.PositionCodePath = position;
+                agvTask.CtnrTyp = palnoqty.ToString();
+
+                agvTaskList.Add(agvTask);
+
+
+                // 姝e紡杩愯绋嬪簭鏀惧紑
+                string str = "";
+                var list2 = agvTaskList.Select(m => m.TaskCode).ToList();
+                var jsonData = JsonConvert.SerializeObject(agvTaskList);
+                jsonData = jsonData.Substring(1, jsonData.Length - 1);
+                jsonData = jsonData.Substring(0, jsonData.Length - 1);
+                string response = "";
+
+                try
+                {
+                    var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                    response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+                    var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+                    //////瑙f瀽杩斿洖鏁版嵁 
+                    var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+                    if (agvModel.Code == "0")
+                    {
+                        //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                        new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                        str += "涓嬪彂鎴愬姛";
+                    }
+                    if (agvModel.Code == "1")
+                    {
+                        new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message);
+                        throw new Exception(agvModel.Message);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+
+                #endregion
+
+                //鎻愪氦浜嬪姟
+                Db.CommitTran();
+            }
+            catch (Exception ex)
+            {
+                Db.RollbackTran();
+                throw new Exception(ex.Message);
+            }
+        }
+
         #region
-        
+
         /// <summary>
         /// agv璋冨害浠诲姟涓嬪彂
         /// </summary>
@@ -1458,21 +1630,13 @@
                     break;
             }
 
-            // MES鐢宠澶囨枡锛屽鏂欏尯搴撲綅闇�瑕佽浆鎹�     杞﹂棿澶囨枡缂撳瓨浣嶅悕绉帮細3妤煎師杈呮枡Y003_001-->Y003_003  1妤煎鍖呯紦瀛樺尯Y138_001-->Y138_021   1妤煎唴鍖呯紦瀛樺尯Y128_001-->Y128_015
+            // MES鐢宠澶囨枡锛屽鏂欏尯搴撲綅闇�瑕佽浆鎹�     杞﹂棿澶囨枡缂撳瓨浣嶅悕绉帮細Y003_001-->Y003_011  
             if (storageLocatEnd.AreaNo == "B12")
             {
                 switch (endlono.ToString().Substring(4, 1))
                 {
                     case "1":
-                        endlono = "Y003_00" + endlono.Substring(6, 1);
-                        break;
-                    case "2":
-                        endlono = "Y138_0" + endlono.Substring(5, 2);
-                        tasktype = "F20";    //鐢垫浠诲姟
-                        break;
-                    case "3":
-                        endlono = "Y128_0" + endlono.Substring(5, 2);
-                        tasktype = "F20";     //鐢垫浠诲姟
+                        endlono = "Y003_0" + endlono.Substring(5, 2);
                         break;
                     default:
                         break;
@@ -1618,6 +1782,7 @@
                         endLocat = locatInfo3.LocatNo;
                     }
                 }
+                
                 return endLocat;
             }
             catch (Exception ex)
@@ -1634,7 +1799,15 @@
         /// <returns></returns>
         public void AgvContinue(string taskno,string url) 
         {
-            var data = new { reqCode =taskno  };
+
+            Random r = new Random();
+            long ran = DateTime.Now.Ticks;
+            var ReqCode = ran.ToString();
+            var data = new 
+            { 
+                reqCode = ReqCode, 
+                taskCode = taskno  
+            };
             var jsonData = JsonConvert.SerializeObject(data);
             try
             {
@@ -1745,15 +1918,19 @@
                         //var boxno = boxInfo.GroupBy(w => w.BoxNo).ToList();
                         var boxno = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).GroupBy(m => new
                         {
-                            m.BoxNo
+                            m.BoxNo,
+                            m.ProductionTime,
+                            m.ExpirationTime,
                         }).Select(it => new DataBoxInfo()
                         {
-                            BoxNo = it.BoxNo
+                            BoxNo = it.BoxNo,
+                            ProductionTime = it.ProductionTime,
+                            ExpirationTime = it.ExpirationTime,
                         }).ToList();
 
                         //璁板綍鎵樼洏涓婁俊鎭粰MES
                         foreach (var item2 in boxno) {
-                            var a = item.ProductionTime.ToString();
+                            //var a = item.ProductionTime.ToString();
                             data.Add(new RequertBeiliaoInfoModel()
                             {
                                 no = item2.BoxNo,
@@ -1761,8 +1938,8 @@
                                 materiel_name = item.SkuName,
                                 qty = item.Qty,
                                 batch = item.LotNo,
-                                producttime = item.ProductionTime.ToString().Substring(0,10),
-                                expiry = item.ExpirationTime.ToString().Substring(0, 10)
+                                producttime = item2.ProductionTime.ToString().Substring(0,10),
+                                expiry = item2.ExpirationTime.ToString().Substring(0, 10)
 
                             });
                         }
@@ -1800,13 +1977,7 @@
                     switch (EndLocat.LocatNo.ToString().Substring(4, 1))
                     {
                         case "1":
-                            endlono = "Y003_00" + EndLocat.LocatNo.ToString().Substring(6, 1);
-                            break;
-                        case "2":
-                            endlono = "Y138_0" + EndLocat.LocatNo.ToString().Substring(5, 2);
-                            break;
-                        case"3":
-                            endlono = "Y128_0" + EndLocat.LocatNo.ToString().Substring(5, 2);
+                            endlono = "Y003_0" + EndLocat.LocatNo.ToString().Substring(5, 2);
                             break;
                         default:
                             break;
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 52a0b07..12de074 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -20,6 +20,7 @@
 using WMS.Entity.LogEntity;
 using Model.ModelDto.SysDto;
 using Model.ModelDto.BllSoDto;
+using System.Security.Policy;
 
 namespace WMS.BLL.BllPdaServer
 {
@@ -2411,6 +2412,153 @@
         }
 
 
+        /// <summary>
+        /// WMS鐢宠鎷h揣绌烘墭
+        /// </summary>
+        /// <param name="model"> </param>
+        /// <param name="userId"> </param>
+        /// <param name="url"> </param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId, string url)
+        {
+            try
+            {
+                string StartLocate = "" ,EndLocate = "";
+                
+                Db.BeginTran();
+                if (model.OutMode == "001") //瑗夸晶鎷h揣浣嶅彨绌烘墭鐩�
+                {
+                    var xLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101"));
+                    if (xLocate == null)
+                    {
+                        throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏");
+                    }
+                    StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo;
+                    EndLocate = "B15010101";
+                }
+                else//涓滀晶鎷h揣浣嶅彨绌烘墭鐩�
+                {
+                    var dLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101"));
+                    if (dLocate == null)
+                    {
+                        throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏");
+                    }
+                    StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")).LocatNo;
+                    EndLocate = "B15020101";
+                }
+
+                //娣诲姞鍑哄簱浠诲姟
+                var taskNo = new Common().GetMaxNo("TK");
+                var exTask = new LogTask
+                {
+                    TaskNo = taskNo,
+                    Sender = "WMS",
+                    Receiver = "AGV",
+                    IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+                    StartLocat = StartLocate,//璧峰浣嶇疆
+                    EndLocat = EndLocate,//鐩爣浣嶇疆
+                    PalletNo = "",//鎵樼洏鐮�
+                    Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", StartLocate, EndLocate),
+                    IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                    IsCancel = 1,//鏄惁鍙彇娑�
+                    IsFinish = 1,//鏄惁鍙畬鎴�
+                    Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                    Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                    OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+
+                    CreateTime = DateTime.Now
+                };
+                Db.Insertable(exTask).ExecuteCommand();
+
+                var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == EndLocate);
+                //淇敼鐩爣鍌ㄤ綅鍦板潃鐘舵��
+                if (storageLocatEnd != null)
+                {
+                    storageLocatEnd.Status = "4";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                    Db.Updateable(storageLocatEnd).ExecuteCommand();
+                }
+
+                #region 鍛煎彨灏忚溅浠g爜
+
+                var endlono = EndLocate;
+                string tasktype = "D01";
+
+                //鐐瑰埌鐐规寚浠ら泦鍚�
+                object[] position = new object[2];
+                position[0] = new
+                {
+                    positionCode = StartLocate,
+                    type = "00"
+                };
+                position[1] = new
+                {
+                    positionCode = endlono,
+                    type = "00"
+                };
+
+                List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+                AgvSchedulingTask agvTask = new AgvSchedulingTask();
+                Random r = new Random();
+                long ran = DateTime.Now.Ticks;
+                agvTask.ReqCode = ran.ToString();
+                agvTask.TaskCode = taskNo;
+                agvTask.TaskTyp = tasktype;
+                agvTask.PositionCodePath = position;
+                agvTask.CtnrTyp = "1";
+
+                agvTaskList.Add(agvTask);
+
+                string str = "";
+                var list2 = agvTaskList.Select(m => m.TaskCode).ToList();
+                var jsonData = JsonConvert.SerializeObject(agvTaskList);
+                jsonData = jsonData.Substring(1, jsonData.Length - 1);
+                jsonData = jsonData.Substring(0, jsonData.Length - 1);
+                string response = "";
+
+                try
+                {
+                    var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                    response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+                    var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+                    //////瑙f瀽杩斿洖鏁版嵁 
+                    var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+                    if (agvModel.Code == "0")
+                    {
+                        //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                        new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                        str += "涓嬪彂鎴愬姛";
+                    }
+                    if (agvModel.Code == "1")
+                    {
+                        new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message);
+                        throw new Exception(agvModel.Message);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+
+                #endregion
+
+                //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", "", "绉诲簱", $"PDA鍛煎彨灏忚溅鎷嗙┖鎵樼洏鎷h揣", userId);
+                Db.CommitTran();
+
+                return "";
+            }
+            catch (Exception e)
+            {
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
+
+
+
         public string MoveAddress(string oldAddress, string roadWay, string skuNo,string areaNo="")//01020201  鎺�-鍒�-灞�-娣卞害
         {
             string nowAddress = "";
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 07842f2..68367c9 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2249,7 +2249,7 @@
                 //鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙�
                 var TtaskNo = taskNo;
                 var outLine = "";
-                if (userId == 0)
+                if (taskNo.Length == 18)
                 {
                     TtaskNo = taskNo.Substring(0, taskNo.Length - 3);
                     outLine = taskNo.Substring(taskNo.Length - 3, 3);
@@ -2481,7 +2481,8 @@
                         agvTask.CtnrTyp = "1";            //瀹瑰櫒绫诲瀷锛屽�间负1
                         if (type == "D02")
                         {
-                            agvTask.CtnrNum = "10";     //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
+                            var palnoNum = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
+                            agvTask.CtnrNum = palnoNum.Qty.ToString();     //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
                         }
 
                         agvTaskList.Add(agvTask);
@@ -3931,7 +3932,7 @@
                     throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
                 }
                 decimal pickQty = 0;//鎷h揣鐨勬暟閲�
-
+                Db.BeginTran();
                 var comList = new List<BllCompleteDetail>();
                 foreach (var item in boxInfos)
                 {
@@ -4038,12 +4039,12 @@
                 }
                 //淇敼鍑哄簱鍗曚俊鎭�
                 Db.Updateable(notice).ExecuteCommand();
-                
+                Db.CommitTran();
                 return allot.LoadingAddre;
             }
             catch (Exception e)
             {
-
+                Db.RollbackTran();
                 throw new Exception(e.Message);
             }
         }
diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs
index 89c8c23..8ab0b61 100644
--- a/Wms/WMS.BLL/DataServer/StockServer.cs
+++ b/Wms/WMS.BLL/DataServer/StockServer.cs
@@ -16,6 +16,7 @@
 using Utility.Tools;
 using WMS.BLL.LogServer;
 using WMS.DAL;
+using WMS.Entity.BllAsnEntity;
 using WMS.Entity.BllSoEntity;
 using WMS.Entity.Context;
 using WMS.Entity.DataEntity;
@@ -1060,13 +1061,18 @@
                 palletNo.Status = "2";   //宸插畬鎴�
                 Db.Updateable(palletNo).ExecuteCommand();
 
-                //淇敼搴撳瓨鏄庣粏
-                stockDetail.Status = "0";//寰呭垎閰�
-                stockDetail.LocatNo = "";
-                stockDetail.AreaNo = "";
-                stockDetail.RoadwayNo = "";
-                stockDetail.WareHouseNo = "";
-                Db.Updateable(stockDetail).ExecuteCommand();
+                
+                if (stockDetail !=null)
+                {
+                    //淇敼搴撳瓨鏄庣粏
+                    stockDetail.Status = "0";//寰呭垎閰�
+                    stockDetail.LocatNo = "";
+                    stockDetail.AreaNo = "";
+                    stockDetail.RoadwayNo = "";
+                    stockDetail.WareHouseNo = "";
+                    Db.Updateable(stockDetail).ExecuteCommand();
+                }
+                
 
                 #region 涓嬪彂WCS鏀捐揣瀹屾垚
                 var data = new
@@ -1088,6 +1094,7 @@
                         throw new Exception("鏀捐揣澶辫触锛學CS杩斿洖淇℃伅閿欒");
                     }
                 }
+
                 catch (Exception ex)
                 {
                     throw new Exception(ex.Message);
@@ -1101,7 +1108,7 @@
             }
             catch (Exception ex)
             {
-
+                Db.RollbackTran();
                 throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex);
             }
         }
@@ -1110,8 +1117,9 @@
         /// AGV鍑哄簱瀹屾垚
         /// </summary>
         /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <param name="url">鍙嶉MES澶囨枡瀹屾垚鍦板潃</param>
         /// <returns></returns>
-        public void SoFinish(string TaskCode)
+        public void SoFinish(string TaskCode,string url)
         {
             try
             {
@@ -1153,12 +1161,162 @@
             }
         }
 
+
+        //瀹屾垚鎺ュ彛淇敼锛堟湭瀹屾垚锛�
+        //try
+        //{
+        //    var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.Status == "1");//鑾峰彇姝e湪鎵ц鐨勪换鍔′俊鎭�
+        //    if (palletNo == null)
+        //    {
+        //        throw new Exception("姝や换鍔″凡瀹屾垚");
+        //    }
+        //    var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅
+        //    var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
+        //    var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo).ToList();
+        //    if (stockDetail.Count == 0)
+        //    {
+        //        throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樻槑缁嗕俊鎭笉瀛樺湪,璇锋鏌�!");
+        //    }
+        //    //寮�鍚簨鍔�
+        //    Db.BeginTran();
+        //    if (storageLocat != null)
+        //    {
+        //        if (storageLocat.AreaNo == "B12")//杞﹂棿缂撳瓨浣嶉渶瑕侀�氱煡MES 
+        //        {
+        //            var data = new List<RequertBeiliaoInfoModel>();
+        //            //鏇存敼搴撳瓨鏄庣粏
+        //            foreach (var item in stockDetail)
+        //            {
+        //                item.LocatNo = item.LocatNo;//鍌ㄤ綅鏇存敼
+        //                item.WareHouseNo = item.WareHouseNo;//鎵�灞炰粨搴撴洿鏀�
+        //                item.RoadwayNo = item.RoadwayNo;//鎵�灞炲贩閬撴洿鏀�
+        //                item.AreaNo = item.AreaNo;//鎵�灞炲尯鍩熸洿鏀� 
+
+        //                Db.Updateable(item).ExecuteCommand();
+
+
+        //                if (string.IsNullOrWhiteSpace(item.SONo))
+        //                {
+        //                    throw new Exception("褰撳墠鎵樼洏涓嶆槸鎷兼墭鍑哄簱鎵樼洏");
+        //                }
+        //                var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList();
+        //                if (boxInfo.Count == 0)
+        //                {
+        //                    throw new Exception("鎵樼洏涓婄墿鏂欑鐮佷俊鎭笉瀛樺湪,璇锋鏌�!");
+        //                }
+        //                //var boxno = boxInfo.GroupBy(w => w.BoxNo).ToList();
+        //                var boxno = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).GroupBy(m => new
+        //                {
+        //                    m.BoxNo
+        //                }).Select(it => new DataBoxInfo()
+        //                {
+        //                    BoxNo = it.BoxNo
+        //                }).ToList();
+
+        //                //璁板綍鎵樼洏涓婁俊鎭粰MES
+        //                foreach (var item2 in boxno)
+        //                {
+        //                    var a = item.ProductionTime.ToString();
+        //                    data.Add(new RequertBeiliaoInfoModel()
+        //                    {
+        //                        no = item2.BoxNo,
+        //                        materiel_no = item.SkuNo,
+        //                        materiel_name = item.SkuName,
+        //                        qty = item.Qty,
+        //                        batch = item.LotNo,
+        //                        producttime = item.ProductionTime.ToString().Substring(0, 10),
+        //                        expiry = item.ExpirationTime.ToString().Substring(0, 10)
+
+        //                    });
+        //                }
+        //                //搴撳瓨绠辩爜鏄庣粏鍒犻櫎
+        //                Db.Deleteable(boxInfo).ExecuteCommand();
+        //                //鍒犻櫎搴撳瓨鎵樼洏淇℃伅
+        //                Db.Deleteable(item).ExecuteCommand();
+        //                //鏇存敼搴撳瓨鎬昏〃
+        //                var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
+        //                stock.LockQty -= (decimal)item.Qty;
+        //                stock.Qty -= (decimal)item.Qty;
+        //                Db.Updateable(stock).ExecuteCommand();
+        //                //鏇存敼鎵樼洏鐘舵��
+        //                var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+        //                if (pallet != null)
+        //                {
+        //                    pallet.Status = "0";
+        //                    Db.Updateable(pallet).ExecuteCommand();
+        //                }
+
+        //            }
+
+        //            //鑾峰彇浠ょ墝
+        //            //var token = new Token().GetMesToken(mesTokenUrl);
+        //            var token = "";
+        //            Dictionary<string, string> mesDic = new Dictionary<string, string>()
+        //        {
+        //        {"Authorization",token }
+        //        };
+        //            var endlono = palletNo.EndLocat;
+        //            //缂撳瓨搴撲綅杞崲
+        //            switch (palletNo.EndLocat.ToString().Substring(4, 1))
+        //            {
+        //                case "1":
+        //                    endlono = "Y003_00" + palletNo.EndLocat.ToString().Substring(6, 1);
+        //                    break;
+        //                case "2":
+        //                    endlono = "Y138_0" + palletNo.EndLocat.ToString().Substring(5, 2);
+        //                    break;
+        //                case "3":
+        //                    endlono = "Y128_0" + palletNo.EndLocat.ToString().Substring(5, 2);
+        //                    break;
+        //                default:
+        //                    break;
+        //            }
+        //            var mescode = Db.Queryable<BllExportNotice>().Where(w => w.SONo == stockDetail.First().SONo).First();
+        //            var mesData = new RequertBeiliaoModel()
+        //            {
+        //                morder_no = mescode.OrderCode,
+        //                pallet = stockDetail.First().PalletNo,
+        //                layer_no = endlono,
+        //                items = data
+        //            };
+        //            var jsonData = JsonConvert.SerializeObject(mesData);
+        //            //璋冪敤鎺ュ彛
+        //            var response = HttpHelper.DoPost(url, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic);
+
+        //            var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
+        //            if (obj.status != "success")
+        //            {
+        //                throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message);
+        //            }
+
+
+        //        }
+        //        //淇敼鐩殑搴撲綅鐘舵��
+        //        storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+        //        Db.Updateable(storageLocat).ExecuteCommand();
+
+        //        //淇敼浠诲姟鐘舵��
+        //        palletNo.Status = "2";   //宸插畬鎴�
+        //        Db.Updateable(palletNo).ExecuteCommand();
+
+        //        //淇敼搴撳瓨鏄庣粏
+        //        item.Status = "2";// 0:寰呭垎閰�   1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾
+        //        stockDetail.LocatNo = storageLocat.LocatNo;
+        //        stockDetail.AreaNo = storageLocat.AreaNo;
+        //        stockDetail.RoadwayNo = storageLocat.RoadwayNo;
+        //        stockDetail.WareHouseNo = storageLocat.WareHouseNo;
+        //        Db.Updateable(stockDetail).ExecuteCommand();
+        //    }
+        //    Db.CommitTran();
+
+        //}
         /// <summary>
         /// AGV绉诲簱瀹屾垚
         /// </summary>
         /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <param name="url">鍙嶉MES澶囨枡瀹屾垚鍦板潃</param>
         /// <returns></returns>
-        public void MoveFinish(string TaskCode)
+        public void MoveFinish(string TaskCode,string url)
         {
             try
             {
@@ -1167,40 +1325,211 @@
                 {
                     throw new Exception("姝や换鍔″凡瀹屾垚");
                 }
-                var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅
-                var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅
-                var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //鑾峰彇搴撳瓨淇℃伅
+                var startLocat = new SysStorageLocat();
+
+                var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇鐩殑搴撲綅淇℃伅
+                if (endLocat == null)
+                {
+                    throw new Exception("鏈壘鍒扮浉搴旂殑鐩殑搴撲綅");
+                }
+                var storageStart = new SysStorageLocat();
+                
+                int isstock = 1;
+                var bindDetail = new BllPalletBind();
+                var sysPanlno = new SysPallets();
+
+                var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo).ToList(); //鑾峰彇搴撳瓨淇℃伅
+                if (stockDetail.Count == 0)
+                {
+                    //鏈壘鍒板簱瀛樺悗闇�瑕佸垽鏂槸鍚︽槸绌烘墭鐩樼Щ搴�
+                    isstock = 0;
+                    bindDetail = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat);//鑾峰彇缁勬墭鐩樹俊鎭�
+                    if (bindDetail == null)
+                    {
+                        bindDetail = Db.Queryable<BllPalletBind>().OrderByDescending(w => w.Id).First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat);//鑾峰彇缁勬墭鐩樹俊鎭�
+                        if (bindDetail == null)
+                        {
+                            throw new Exception("鏈壘鍒扮┖鎵樼洏缁勬墭淇℃伅");
+                        }
+                    }
+                }
+                else
+                {
+                    storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇璧峰搴撲綅淇℃伅
+                    if (storageStart == null)
+                    {
+                        throw new Exception("鏈壘鍒扮浉搴旂殑璧峰搴撲綅");
+                    }
+                }
                 //var soAllot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo);//鑾峰彇鍒嗛厤淇℃伅
                 
                 
                 //寮�鍚簨鍔�
                 Db.BeginTran();
-                //淇敼璧峰搴撲綅鐘舵��
-                storageLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
-                Db.Updateable(storageLocat).ExecuteCommand();
 
                 //淇敼鐩殑搴撲綅鐘舵��
-                storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
-                Db.Updateable(storageLocat).ExecuteCommand();
+                endLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                Db.Updateable(endLocat).ExecuteCommand();
 
                 //淇敼浠诲姟鐘舵��
                 palletNo.Status = "2";   //宸插畬鎴�
                 Db.Updateable(palletNo).ExecuteCommand();
 
-                //淇敼搴撳瓨鏄庣粏
-                stockDetail.Status = "2";// 0:寰呭垎閰�   1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾
-                stockDetail.LocatNo = storageLocat.LocatNo;
-                stockDetail.AreaNo = storageLocat.AreaNo;
-                stockDetail.RoadwayNo = storageLocat.RoadwayNo;
-                stockDetail.WareHouseNo = storageLocat.WareHouseNo;
-                Db.Updateable(stockDetail).ExecuteCommand();
+                if (isstock == 1)
+                {
+                    startLocat = Db.Queryable<SysStorageLocat>().First(w=> w.IsDel == "0" && w.LocatNo == palletNo.StartLocat);
+                    //淇敼璧峰搴撲綅鐘舵��
+                    startLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                    Db.Updateable(startLocat).ExecuteCommand();
+
+                    //璋冪敤MES澶囨枡鍙嶉瀹屾垚鎺ュ彛
+                    #region  MES澶囨枡瀹屾垚鍙嶉
+                    var data = new List<RequertBeiliaoInfoModel>();
+
+                    //鏇存敼搴撳瓨鏄庣粏
+                    foreach (var item in stockDetail)
+                    {
+                        item.LocatNo = endLocat.LocatNo;//鍌ㄤ綅鏇存敼
+                        item.WareHouseNo = endLocat.WareHouseNo;//鎵�灞炰粨搴撴洿鏀�
+                        item.RoadwayNo = endLocat.RoadwayNo;//鎵�灞炲贩閬撴洿鏀�
+                        item.AreaNo = endLocat.AreaNo;//鎵�灞炲尯鍩熸洿鏀� 
+
+                        Db.Updateable(item).ExecuteCommand();
+
+                        if (endLocat != null && endLocat.AreaNo == "B12") //鏄惁鏄�3妤肩紦瀛樺尯 鏄細鍒犻櫎搴撳瓨
+                        {
+                            if (string.IsNullOrWhiteSpace(item.SONo))
+                            {
+                                throw new Exception("褰撳墠鎵樼洏涓嶆槸鎷兼墭鍑哄簱鎵樼洏");
+                            }
+                            var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList();
+                            if (boxInfo.Count == 0)
+                            {
+                                throw new Exception("鎵樼洏涓婄墿鏂欑鐮佷俊鎭笉瀛樺湪,璇锋鏌�!");
+                            }
+                            //var boxno = boxInfo.GroupBy(w => w.BoxNo).ToList();
+                            var boxno = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).GroupBy(m => new
+                            {
+                                m.BoxNo,
+                                m.ProductionTime,
+                                m.ExpirationTime,
+                            }).Select(it => new DataBoxInfo()
+                            {
+                                BoxNo = it.BoxNo,
+                                ProductionTime = it.ProductionTime,
+                                ExpirationTime = it.ExpirationTime,
+                            }).ToList();
+
+                            //璁板綍鎵樼洏涓婁俊鎭粰MES
+                            foreach (var item2 in boxno)
+                            {
+                                //var a = item.ProductionTime.ToString();
+                                data.Add(new RequertBeiliaoInfoModel()
+                                {
+                                    no = item2.BoxNo,
+                                    materiel_no = item.SkuNo,
+                                    materiel_name = item.SkuName,
+                                    qty = item.Qty,
+                                    batch = item.LotNo,
+                                    producttime = item2.ProductionTime.ToString().Substring(0, 10),
+                                    expiry = item2.ExpirationTime.ToString().Substring(0, 10)
+
+                                });
+                            }
+                            //搴撳瓨绠辩爜鏄庣粏鍒犻櫎
+                            Db.Deleteable(boxInfo).ExecuteCommand();
+                            //鍒犻櫎搴撳瓨鎵樼洏淇℃伅
+                            Db.Deleteable(item).ExecuteCommand();
+                            //鏇存敼搴撳瓨鎬昏〃
+                            var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
+                            stock.LockQty -= (decimal)item.Qty;
+                            stock.Qty -= (decimal)item.Qty;
+                            Db.Updateable(stock).ExecuteCommand();
+                            //鏇存敼鎵樼洏鐘舵��
+                            var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo);
+                            if (pallet != null)
+                            {
+                                pallet.Status = "0";
+                                Db.Updateable(pallet).ExecuteCommand();
+                            }
+                        }
+                    }
 
 
+                    if (endLocat != null && endLocat.AreaNo == "B12")
+                    {
+                        //鑾峰彇浠ょ墝
+                        //var token = new Token().GetMesToken(mesTokenUrl);
+                        var token = "";
+                        Dictionary<string, string> mesDic = new Dictionary<string, string>()
+                        {
+                            {"Authorization",token }
+                        };
+                        var endlono = endLocat.LocatNo;
+                        //缂撳瓨搴撲綅杞崲
+                        switch (endLocat.LocatNo.ToString().Substring(4, 1))
+                        {
+                            case "1":
+                                endlono = "Y003_0" + endLocat.LocatNo.ToString().Substring(5, 2);
+                                break;
+                            
+                        }
+                        var mescode = Db.Queryable<BllExportNotice>().Where(w => w.SONo == stockDetail.First().SONo).First();
+                        var mesData = new RequertBeiliaoModel()
+                        {
+                            morder_no = mescode.OrderCode,
+                            pallet = stockDetail.First().PalletNo,
+                            layer_no = endlono,
+                            items = data
+                        };
+                        var jsonData = JsonConvert.SerializeObject(mesData);
+                        //璋冪敤鎺ュ彛
+                        var response = HttpHelper.DoPost(url, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic);
+
+                        var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                        if (obj.status != "success")
+                        {
+                            throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message);
+                        }
+
+                    }
+                    #endregion
+                }
+                else  //绌烘墭鐩樺鐞�
+                {
+                    //淇敼缁勬墭淇℃伅
+                    if (bindDetail.WareHouseNo == "W01") //1銆佺┖鎵樼洏鍨涘埌绌烘墭鐩樻敹闆嗗櫒锛�
+                    {
+                        bindDetail.WareHouseNo = "W02";
+                        bindDetail.LocatNo = endLocat.LocatNo;
+                        bindDetail.RoadwayNo = "";
+                        //淇敼璧峰搴撲綅鐘舵��
+                        startLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                        Db.Updateable(startLocat).ExecuteCommand();
+                    }
+                    else//2銆佹嫞璐у彨绌烘墭鐩橈紝灏忚溅瀹屾垚涓�娆★紝鎵e噺涓�涓┖鎵樼洏鍨涗笂鏁伴噺
+                    {
+                        bindDetail.Qty = bindDetail.Qty - 1;
+                        if (bindDetail.Qty == 0)//鏁伴噺涓�0鍚庢洿鏀圭粍鎵樼姸鎬佸拰鎵樼洏浣跨敤鐘舵��
+                        {
+                            bindDetail.Status = "2";
+                            bindDetail.IsDel = "1";
+                            //淇敼璧峰搴撲綅鐘舵��
+                            startLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 
+                            Db.Updateable(startLocat).ExecuteCommand();
+                        }
+                        else
+                        {
+                            bindDetail.LocatNo = startLocat.LocatNo;//?????鎷h揣浣嶆墭鐩樺浣曞鐞嗭紝鎷h揣浣嶆槸鍚﹂渶瑕佹洿鏀圭姸鎬侊紝鏄惁闇�瑕佸鍔犲簱瀛橈紱
+                        }
+                    }
+                    Db.Updateable(bindDetail).ExecuteCommand();
+                }
                 Db.CommitTran();
             }
             catch (Exception ex)
             {
-
+                Db.RollbackTran();
                 throw new Exception("AGV杩斿洖绉诲簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細"+ex);
             }
         }
@@ -1217,32 +1546,41 @@
         {
             try
             {
-                List<ReLocateDataModel> list = new List<ReLocateDataModel>();
 
                 //搴撳瓨淇℃伅
-                var stockDetailsList = Db.Queryable<StockDetailDto>().ToList();
-               
-                if (stockDetailsList.Count == 0)
-                {
-                    return list;
-                }
-                for (int i = 0; i < stockDetailsList.Count; i++)
-                {
-                    list[i].LocatNo = stockDetailsList[i].LocatNo;                  //搴撲綅
-                    list[i].PalletNo = stockDetailsList[i].PalletNo;                //鎵樼洏鍙�
-                    list[i].SkuName = stockDetailsList[i].SkuName;                  //鐗╂枡鍚嶇О
-                    list[i].Stadard = stockDetailsList[i].Standard;                  //瑙勬牸
-                    list[i].LotNo = stockDetailsList[i].LotNo;                      //鎵规
-                    list[i].InspectStatus = stockDetailsList[i].InspectStatus;      //璐ㄩ噺鐘舵��
-                    list[i].Qty = stockDetailsList[i].Qty.ToString();                           //搴撳瓨鏁伴噺
-                    list[i].Warranty = stockDetailsList[i].ExpirationTime.ToString();           //鏈夋晥鏈�   ??杩囨湡鏃堕棿锛屾槸鍚﹁鏇存敼
-                }
+                var stockDetailsList = Db.Queryable<DataStockDetail>().ToList();
+                var sql = "select LocatNo,PalletNo,SkuName,Standard,LotNo,InspectStatus,Qty,ExpirationTime as Warranty from DataStockDetail ";
+
+                List<ReLocateDataModel> list = Db.Ado.SqlQuery<ReLocateDataModel>(sql);
+
+                //if (stockDetailsList.Count == 0)
+                //{
+                //    return list;
+                //}
+                //foreach (var item in stockDetailsList)
+                //{
+                //    list.Add(item);
+
+                //}
+                //for (int i = 0; i < stockDetailsList.Count; i++)
+                //{
+
+                //    list.Add(stockDetailsList);
+                //    list[i].LocatNo = stockDetailsList[i].LocatNo;                  //搴撲綅
+                //    list[i].PalletNo = stockDetailsList[i].PalletNo;                //鎵樼洏鍙�
+                //    list[i].SkuName = stockDetailsList[i].SkuName;                  //鐗╂枡鍚嶇О
+                //    list[i].Stadard = stockDetailsList[i].Standard;                  //瑙勬牸
+                //    list[i].LotNo = stockDetailsList[i].LotNo;                      //鎵规
+                //    list[i].InspectStatus = stockDetailsList[i].InspectStatus;      //璐ㄩ噺鐘舵��
+                //    list[i].Qty = stockDetailsList[i].Qty.ToString();                           //搴撳瓨鏁伴噺
+                //    list[i].Warranty = stockDetailsList[i].ExpirationTime.ToString();           //鏈夋晥鏈�   ??杩囨湡鏃堕棿锛屾槸鍚﹁鏇存敼
+                //}
                 return list;
             }
             catch (Exception ex)
             {
 
-                throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex);
+                throw new Exception("杩斿洖搴撳瓨淇℃伅鏈夎锛岄敊璇俊鎭細" + ex);
             }
         }
         #endregion
diff --git a/Wms/WMS.BLL/LogServer/TaskServer.cs b/Wms/WMS.BLL/LogServer/TaskServer.cs
index ca411ac..3177aa7 100644
--- a/Wms/WMS.BLL/LogServer/TaskServer.cs
+++ b/Wms/WMS.BLL/LogServer/TaskServer.cs
@@ -130,7 +130,7 @@
                 {
                      taskNo = taskNo.Substring(0, taskNo.Length - 3);
                 }
-                var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo);
+                var task = Db.Queryable<LogTask>().OrderByDescending(m=>m.Id).First(m => m.TaskNo == taskNo);
                 if (task == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌{taskNo}浠诲姟鍙风殑浠诲姟淇℃伅");
@@ -168,10 +168,11 @@
         /// <param name="port"></param> 鍏ュ簱鍙�
         /// <param name="url"></param>  璇锋眰鍦板潃
         /// <returns></returns>
-        public string  GetWcsPuttype(string taskno,string port,string url)
+        public string  GetWcsPuttype(string taskno,string url)
         {
             try
             {
+                var port = Db.Queryable<LogTask>().First(m => m.TaskNo == taskno).EndLocat;
                 var data = new
                 {
                     Port = port,
diff --git a/Wms/WMS.BLL/SysServer/MaterialsServer.cs b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
index 6492fb9..f83c050 100644
--- a/Wms/WMS.BLL/SysServer/MaterialsServer.cs
+++ b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
@@ -153,7 +153,17 @@
                     return 2;
                 }
 
-
+                switch (matedto.Warrantydate)
+                {
+                    case "1": //淇濆瓨浠ユ湀涓哄崟浣�
+                        matedto.Warranty = matedto.Warranty * 30;
+                        break;
+                    case "2": //淇濆瓨浠ュ勾涓哄崟浣�
+                        matedto.Warranty = matedto.Warranty * 365;
+                        break;
+                    default:
+                        break;
+                }
                 //鏄犲皠妯″瀷
                 SysMaterials mate = _mapper.Map<SysMaterials>(matedto);
                 mate.AuditStatusNo = "9"; //瀹℃牳鐘舵��
diff --git a/Wms/WMS.BLL/SysServer/PackagServer.cs b/Wms/WMS.BLL/SysServer/PackagServer.cs
index 394029a..1305c52 100644
--- a/Wms/WMS.BLL/SysServer/PackagServer.cs
+++ b/Wms/WMS.BLL/SysServer/PackagServer.cs
@@ -56,6 +56,7 @@
                     L3 = m.L3Num == null ? "" : m.L3Num.ToString() + "/" + m.L3Name,
                     L4 = m.L4Num == null ? "" : m.L4Num.ToString() + "/" + m.L4Name,
                     L5 = m.L5Num == null ? "" : m.L5Num.ToString() + "/" + m.L5Name,
+
                     //L1Num = int.Parse(m.L1Num.ToString()),
                     //L1Name = m.L1Name,
                     //L2Num = int.Parse(m.L2Num.ToString()),
@@ -282,8 +283,8 @@
                 }
                 else
                 {
-                    packagItems.L3Num = null;
-                    packagItems.L3Name = null;
+                    packagItems.L2Num = null;
+                    packagItems.L2Name = null;
                 }
                 //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌�
                 if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
index 3062e6f..0e57fa5 100644
--- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs
+++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
@@ -132,17 +132,17 @@
         /// <summary>
         /// 鍑哄簱浠诲姟瀹屾垚
         /// </summary>
-        /// <param name="skuNo">鐗╂枡缂栫爜</param>
-        /// <param name="skuName">鐗╂枡鍚嶇О</param>
+        /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <param name="url">鍙嶉MES澶囨枡瀹屾垚</param>
         /// <returns></returns>
-        public void SoFinish(string TaskCode);
+        public void SoFinish(string TaskCode,string url);
         /// <summary>
         /// 绉诲簱浠诲姟瀹屾垚
         /// </summary>
-        /// <param name="skuNo">鐗╂枡缂栫爜</param>
-        /// <param name="skuName">鐗╂枡鍚嶇О</param>
+        /// <param name="TaskCode">浠诲姟鍙�</param>
+        /// <param name="url">鍙嶉MES澶囨枡瀹屾垚</param>
         /// <returns></returns>
-        public void MoveFinish(string TaskCode);
+        public void MoveFinish(string TaskCode,string url);
         #endregion
 
         /// <summary>
diff --git a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs
index 24fc617..756f264 100644
--- a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs
+++ b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs
@@ -53,6 +53,6 @@
         /// <returns>0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2绉诲簱浠诲姟</returns>
         public string GetTaskType(string taskNo);
 
-        public string GetWcsPuttype(string taskno,string port,string url);
+        public string GetWcsPuttype(string taskno,string url);
     }
 }
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs
index e10b9cd..603bc51 100644
--- a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs
+++ b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs
@@ -29,6 +29,9 @@
         // 鍒ゆ柇鎵樼洏鍙锋槸鍚﹀彲鐢�
         string IsEnablePalletNo(string palletNo);
 
+        // 鍒ゆ柇鍦扮爜鏄惁鍙敤
+        string IsEnableLocatNo(string locatNo);
+
         // 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅
         List<BoxInfoDto> GetBoxInfos(BoxInfoVm model);
 
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs
index fd4a5f4..afbac9c 100644
--- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs
+++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs
@@ -141,6 +141,14 @@
         List<string> AgvTransport2(string soNo, string palletNo, string areaNo,string ruku, int userId, string url);
 
         /// <summary>
+        /// 绌烘墭鐩樺叆搴撳懠鍙皬杞�
+        /// </summary>
+        /// <param name="palletNo"></param>
+        /// <param name="areaNo"></param>
+        /// <param name="ruku"></param>
+        void AgvTransport3(string palletNo, string locatNo, string ruku, int userId, string url, string wcsurl);
+
+        /// <summary>
         ///  agv浠诲姟涓嬪彂
         /// </summary>
         /// <param name="model"></param>
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
index 0e8e0a5..2c01216 100644
--- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
+++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -101,11 +101,19 @@
         /// </summary>
         /// <param name="model"> </param>
         /// <param name="userId"> </param>
-        /// <param name="url"> </param>
         /// <returns></returns>
         /// <exception cref="Exception"></exception>
         List<OutCommandDto> IssuePlnOutHouseWcs(OutModePalletVm model, int userId);
 
+        /// <summary>
+        /// WMS鎷h揣鐢宠绌烘墭鍑哄簱
+        /// </summary>
+        /// <param name="model"> </param>
+        /// <param name="userId"> </param>
+        /// <param name="url"> </param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId,string url);
 
         /// <summary>
         /// 鑾峰彇骞冲簱鎵樼洏淇℃伅
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 0b06f04..e558169 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -554,12 +554,12 @@
         [HttpPost]
         public IActionResult BindPlnInHouseWcs(PalletsBind model)
         {
-            var logStr = $@".\log\WCS\WCS鐢宠绌烘墭璺虹粦瀹�" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var logStr = $@".\log\WCS\WCS鍙堝彔鎵樻満鐢宠绌烘墭鍏ュ簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             try
             {
                 var strMsg = _paAsnSvc.BindNullPallets(model);
 
-                return Ok(new { Success = 0, Message = "绌烘墭璺虹粦瀹氭垚鍔�", TaskList = strMsg });
+                return Ok(new { Success = 0, Message = "绌烘墭璺虹粦瀹氭垚鍔�"});
             }
             catch (Exception e)
             {
@@ -588,6 +588,30 @@
             catch (Exception e)
             {
                 LogFile.SaveLogToFile($"WCS鐢宠绌烘墭鍑哄簱寮傚父杩斿洖锛�( {e.Message} ),", logStr);
+
+                return Ok(new ErpModel { Success = -1, Message = e.Message });
+            }
+        }
+
+        /// <summary>
+        /// WMS鎷h揣鐢宠绌烘墭鍑哄簱
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [AllowAnonymous]
+        [HttpPost]
+        public IActionResult IssuePlnCheckHouseWcs(CheckModePalletVm model)
+        {
+            var logStr = $@".\log\WCS\WMS鎷h揣鐢宠绌烘墭鍑哄簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            try
+            {
+                string list = _pdaSoSvc.IssuePlnCehckHouseWcs(model, 0,_config.AgvHost+_config.GenAgvSchedulingTask);
+
+                return Ok(new { Success = 0, Message = "鎷h揣鍙┖鎵樼洏鎴愬姛"});
+            }
+            catch (Exception e)
+            {
+                LogFile.SaveLogToFile($"WMS鎷h揣鐢宠绌烘墭鍑哄簱寮傚父杩斿洖锛�( {e.Message} ),", logStr);
 
                 return Ok(new ErpModel { Success = -1, Message = e.Message });
             }
@@ -741,13 +765,13 @@
             {
                 //杩斿洖鍑哄簱鍒嗘嫞瑁呰溅鍙�
                 var list = _exNoticeSvc.BoxInfoExportWcs(model.BoxNo);
-                return Ok(new { Success = 1, Message = "鎴愬搧绠辩爜鎷嗗灈鎷h揣鎴愬姛", loadubgAddre = list });
+                return Ok(new { Success = "1", Message = "鎴愬搧绠辩爜鎷嗗灈鎷h揣鎴愬姛", loadubgAddre = list });
             }
             catch (Exception e)
             {
                 LogFile.SaveLogToFile($"WCS鐢宠鎴愬搧绠辩爜鎷嗗灈鎷h揣寮傚父杩斿洖锛�( {e.Message} ),", logStr);
 
-                return Ok(new ErpModel { Success = -1, Message = e.Message });
+                return Ok(new  { Success = "-1", Message = e.Message, loadubgAddre ="" });
             }
 
         }
@@ -785,10 +809,10 @@
                 switch (orderType)
                 {
                     case "0"://鍏ュ簱浠诲姟鎵ц
-                        if (model.TaskTyp == "mid") //AGV鍒拌揪鍏ュ簱鍙o紝璇锋眰鏀捐揣
+                        if (model.Method == "mid") //AGV鍒拌揪鍏ュ簱鍙o紝璇锋眰鏀捐揣
                         {
                             //涓嬪彂WCS鏀捐揣璇锋眰
-                            var ret = _taskSvc.GetWcsPuttype(model.TaskCode,model.CurrentCallCode,_config.WcsHost + _config.HttpInRequest);
+                            var ret = _taskSvc.GetWcsPuttype(model.TaskCode,_config.WcsHost + _config.HttpInRequest);
                             if (ret.Contains("-1"))
                             {
                                 logStr = $@".\log\WCS\浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
@@ -796,23 +820,21 @@
                                 return Ok(new OutCommanAgvDto { Code = "1", Message = "澶辫触", ReqCode = model.ReqCode });
                             }
                         }
-                        else if (model.TaskTyp == "end")//AGV鏀捐揣鍒板叆搴撳彛瀹屾垚
+                        else if (model.Method == "end")//AGV鏀捐揣鍒板叆搴撳彛瀹屾垚
                         {
                             _stockSvc.ArriveFinish(model.TaskCode,_config.WcsHost + _config.HttpInFinish);
-
-                            
                         }
 
                         break;
 
                     case "1"://鍑哄簱浠诲姟鎵ц
-                        _stockSvc.SoFinish(model.TaskCode);
+                        _stockSvc.SoFinish(model.TaskCode,_config.MesHost + _config.MesBeiLiaoUrl);
                         break;
 
                     case "2"://鐩樺簱浠诲姟鎵ц
 
                     case "3"://绉诲簱浠诲姟鎵ц
-                        _stockSvc.MoveFinish(model.TaskCode);
+                        _stockSvc.MoveFinish(model.TaskCode, _config.MesHost + _config.MesBeiLiaoUrl);
                         break;
                     // return Ok(new OutCommanAgvDto { Code = "0", Message = "鎴愬姛", ReqCode = model.ReqCode });
 
diff --git a/Wms/Wms/Controllers/PdaAsnController.cs b/Wms/Wms/Controllers/PdaAsnController.cs
index 1a909b5..8e48743 100644
--- a/Wms/Wms/Controllers/PdaAsnController.cs
+++ b/Wms/Wms/Controllers/PdaAsnController.cs
@@ -128,6 +128,33 @@
         }
 
         /// <summary>
+        /// 鍒ゆ柇鎵樼洏鏄惁鍙敤
+        /// </summary>
+        /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult IsEnableLocatNo(PalletBindVm model)
+        {
+            try
+            {
+                var strMsg = _PdaAsnSvc.IsEnableLocatNo(model.LocatNo);
+
+                if (strMsg == "")
+                {
+                    return Ok(new { code = 0, msg = "鍦扮爜鍙敤!" });
+                }
+                else
+                {
+                    return Ok(new { code = 1, msg = strMsg });
+                }
+            }
+            catch (Exception e)
+            {
+                return Ok(new { code = 1, msg = e.Message });
+            }
+        }
+
+        /// <summary>
         /// 鑾峰彇鍗曟嵁鏄庣粏鍒楄〃
         /// </summary>
         /// <param name="model">AsnNo:鍗曟嵁鍙�</param>
diff --git a/Wms/Wms/Controllers/PdaCrController.cs b/Wms/Wms/Controllers/PdaCrController.cs
index b2f5c9f..a71da39 100644
--- a/Wms/Wms/Controllers/PdaCrController.cs
+++ b/Wms/Wms/Controllers/PdaCrController.cs
@@ -414,6 +414,39 @@
                 return Ok(new { data = "", code = 1, msg = $"寮傚父锛歿e.Message}" });
             }
         }
+
+        /// <summary>
+        /// 绌烘墭鐩樺叆搴撳懠鍙皬杞�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult AgvTransport3(PdaAgvTransNullPalnoModel model)
+        {
+            try
+            {
+                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+                var claimsIdentity = this.User.Identity as ClaimsIdentity;
+                if (claimsIdentity == null)
+                {
+                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+                }
+                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+                if (string.IsNullOrWhiteSpace(userId))
+                {
+                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+                }
+
+                var uId = int.Parse(userId);
+                _pdaCrSvc.AgvTransport3(model.PalletNo, model.LocatNo, model.Ruku, uId, _config.AgvHost + _config.GenAgvSchedulingTask, _config.WcsHost + _config.HttpInConfirm);
+
+                return Ok(new { data = "", code = 0, msg = "鎴愬姛" });
+            }
+            catch (Exception e)
+            {
+                return Ok(new { data = "", code = 1, msg = $"寮傚父锛歿e.Message}" });
+            }
+        }
         #endregion
 
         #region 浜哄伐杞繍

--
Gitblit v1.8.0