From 0651efda1f08d417c82994887c68dfea2c9b4235 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 11 十二月 2024 11:28:37 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllTransServer/RcsServer.cs           |  328 ++++----
 Wms/Model/ModelDto/SysDto/LocatDto.cs             |   11 
 Wms/Wms/Tools/ApiUrlConfig.cs                     |   24 
 HTML/views/WareHouseSetting/AreaFrom.html         |    7 
 HTML/views/WareHouseSetting/PalletsPrintFrom.html |   37 
 HTML/views/ASNSetting/ArrivalLogTask.html         |    2 
 Wms/Model/ModelDto/SysDto/AreaDto.cs              |    4 
 HTML/views/SOSetting/ExportNoticeAddFrom.html     |    6 
 Wms/Wms/appsettings.json                          |   11 
 HTML/views/WareHouseSetting/AreaAddFrom.html      |   10 
 Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs        |   20 
 Wms/WMS.BLL/SysServer/StorageAreaServer.cs        |   56 
 HTML/views/ASNSetting/ArrivalNotice.html          |    4 
 HTML/views/WareHouseSetting/Pallets.html          |  222 +-----
 HTML/views/WareHouseSetting/Area.html             |   13 
 Wms/WMS.BLL/SysServer/PalletsServer.cs            |  141 ++-
 Wms/Model/ModelVm/SysVm/PalletVm.cs               |   10 
 Wms/Model/ModelVm/SysVm/AreaVm.cs                 |    6 
 Wms/Wms/Controllers/UpApiController.cs            |   62 +
 Wms/WMS.BLL/BllTransServer/NoticeServer.cs        |  174 ++--
 Wms/Model/InterFaceModel/RCSModel.cs              |   99 --
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs   |    2 
 HTML/views/StatisticalReport/BoxInfor.html        |   10 
 Wms/Model/ModelVm/SysVm/LocateVm.cs               |    3 
 Wms/WMS.IBLL/ISysServer/IStorageAreaServer.cs     |    2 
 HTML/views/WareHouseSetting/Locate.html           |   48 
 HTML/views/ASNSetting/ArrivalNoticeDetail.html    |   16 
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs     |   68 +-
 Wms/Wms/Controllers/SysController.cs              |   18 
 Wms/WMS.BLL/SysServer/StorageLocatServer.cs       |   67 +
 Wms/Model/InterFaceModel/HttpModel.cs             |  529 +++++++++++++++
 Wms/WMS.IBLL/ISysServer/IPalletsServer.cs         |    4 
 Wms/WMS.Entity/SysEntity/SysStorageArea.cs        |    4 
 33 files changed, 1,236 insertions(+), 782 deletions(-)

diff --git a/HTML/views/ASNSetting/ArrivalLogTask.html b/HTML/views/ASNSetting/ArrivalLogTask.html
index 71666a9..38599dd 100644
--- a/HTML/views/ASNSetting/ArrivalLogTask.html
+++ b/HTML/views/ASNSetting/ArrivalLogTask.html
@@ -277,7 +277,7 @@
 					 {field: 'TaskNo',title: '浠诲姟鍙�',width: 170,align: 'center',fixed: 'left', "disabled": true}, 
 					 {field: 'Type',title: '浠诲姟绫诲瀷',width: 95,align: 'center',templet: '#templetType'}, 
 					 {field: 'IsSuccess',title: '鏄惁涓嬪彂鎴愬姛',width: 120,align: 'center',templet: '#templetIsSuccess'}, 
-					 {field: 'PalletNo',title: '鎵樼洏鍙�',width: 110,align: 'center'}, 
+					 {field: 'PalletNo',title: '妗跺彿',width: 110,align: 'center'}, 
 					 {field: 'StartLocat',title: '璧峰浣嶇疆',width: 100,align: 'center'}, 
 					 {field: 'EndLocat',title: '鐩爣浣嶇疆',width: 100,align: 'center'}, 
 					 {field: 'Status',title: '鐘舵��',width: 95,align: 'center',templet: '#templetStatus'}, 
diff --git a/HTML/views/ASNSetting/ArrivalNotice.html b/HTML/views/ASNSetting/ArrivalNotice.html
index 8922c66..7171368 100644
--- a/HTML/views/ASNSetting/ArrivalNotice.html
+++ b/HTML/views/ASNSetting/ArrivalNotice.html
@@ -309,11 +309,11 @@
 					</div>
 					<!-- #endregion -->
 
-					<!-- <script type="text/html" id="toolbarDemo">
+					<script type="text/html" id="toolbarDemo">
 						<button style="margin-right: 5px;" class="layui-btn layui-btn-sm layuiadmin-btn-list addClass" lay-event="add" >
 							<i class="layui-icon">&#xe654;</i>娣诲姞
 						</button>
-					</script> -->
+					</script>
  
 					<script type="text/html" id="toolbarDemoList">
 						{{# function GetBtn2(d){ 
diff --git a/HTML/views/ASNSetting/ArrivalNoticeDetail.html b/HTML/views/ASNSetting/ArrivalNoticeDetail.html
index 3c7406f..a945ed2 100644
--- a/HTML/views/ASNSetting/ArrivalNoticeDetail.html
+++ b/HTML/views/ASNSetting/ArrivalNoticeDetail.html
@@ -60,11 +60,11 @@
 			<div class="layui-input-inline">
 				<select name="Type" id="Type" lay-filter="Type" lay-search>
 					<!-- JC23 -->
-					<option value="0">鎴愬搧鍏ュ簱</option>
-					<option value="1">閲囪喘鍏ュ簱</option>
-					<option value="4">杞﹂棿浣欐枡閫�鍥炲叆搴�</option>
+					<!-- <option value="0">鎴愬搧鍏ュ簱</option> -->
+					<option value="1">鍘熸枡鍏ュ簱</option>
+					<!-- <option value="4">杞﹂棿浣欐枡閫�鍥炲叆搴�</option>
 					<option value="5">鍏跺畠鍏ュ簱</option>
-					<option value="6">浠e偍鍏ュ簱</option>
+					<option value="6">浠e偍鍏ュ簱</option> -->
 					<!-- <option value=""></option> -->
 					<!-- JC24 -->
 					<!-- <option value="0" selected>鎴愬搧鍏ュ簱</option>
@@ -133,7 +133,7 @@
 							{{# function GetBtn1(d){
 									var html = ''; 
 									var TypeValue = $("#Type").val();
-									if(TypeValue=='1' || TypeValue=='5' || TypeValue=='6' || TypeValue=='7'){	
+									if(TypeValue=='5' || TypeValue=='6' || TypeValue=='7'){	
 										if(d.LotNo==null || d.LotNo==undefined || d.LotNo==''){
 											html+= '<input type="text" class="input-dis" value="" disabled>';
 										}else{
@@ -209,7 +209,7 @@
 				{ field: 'Id', title: '鍏ュ簱鍗曟槑缁咺D', width: 120, align: 'center', fixed: 'left', hide: true, "disabled": true },
 				{ field: 'SkuNo', title: '鐗╂枡缂栫爜', minWidth: 100, align: 'center', fixed: 'left', "disabled": true },
 				{ field: 'SkuName', title: '鐗╂枡鍚嶇О', minWidth: 180, align: 'center', fixed: 'left', "disabled": true },
-				{ field: 'LotNo', title: '鎵规鍙�', align: 'center', edit: 'text', minWidth: 130, fixed: 'left', templet: '#templetLotNo', "disabled": true },
+				{ field: 'LotNo', title: '鎵规鍙�', align: 'center', edit: 'text', minWidth: 130, fixed: 'left', templet: '#templetLotNo' },
 				{ field: 'SupplierLot', title: '渚涜揣鎵规', width: 130, edit: 'text', event: 'setSign', fixed: 'left', "disabled": true },
 				{ field: 'Qty', title: '鏁伴噺', align: 'center', width: 80, edit: 'number', event: 'dataNumber', fixed: 'left', "disabled": true },
 				{ field: 'UnitName', title: '璁¢噺鍗曚綅', align: 'center', width: 70 },
@@ -327,8 +327,8 @@
 			}
 			else {
 				// 娣诲姞鐨勬椂鍊欑Щ闄も�橀噰璐叆搴撯�欓」
-				$('select[lay-filter="Type"]').find('option[value="1"]').remove();
-				form.render('select'); // 鏇存柊layui鐨剆elect娓叉煋
+				//$('select[lay-filter="Type"]').find('option[value="1"]').remove();
+				//form.render('select'); // 鏇存柊layui鐨剆elect娓叉煋
 			}
 
 
diff --git a/HTML/views/SOSetting/ExportNoticeAddFrom.html b/HTML/views/SOSetting/ExportNoticeAddFrom.html
index 0a0b1f1..1d0302c 100644
--- a/HTML/views/SOSetting/ExportNoticeAddFrom.html
+++ b/HTML/views/SOSetting/ExportNoticeAddFrom.html
@@ -34,12 +34,12 @@
 						<select name="Type" id="Type" lay-filter="Type" lay-verify="required" lay-search>
 							<!-- <option value=""></option> -->
 							<!-- 23 -->
-							<option value="0">鎴愬搧鍑哄簱</option>
+							<!-- <option value="0">鎴愬搧鍑哄簱</option> -->
 							<option value="1">棰嗘枡鍑哄簱</option>
-							<option value="2">鎶芥鍑哄簱</option>
+							<!-- <option value="2">鎶芥鍑哄簱</option>
 							<option value="4">涓嶅悎鏍煎搧鍑哄簱</option>
 							<option value="6">浠e偍鍑哄簱</option>
-							<option value="7">鍏朵粬鍑哄簱</option>
+							<option value="7">鍏朵粬鍑哄簱</option> -->
 							<!-- 24 -->
 							<!-- <option value="0">鎴愬搧鍑哄簱</option>
 							<option value="1">棰嗘枡鍑哄簱</option>
diff --git a/HTML/views/StatisticalReport/BoxInfor.html b/HTML/views/StatisticalReport/BoxInfor.html
index 5270be7..b50c733 100644
--- a/HTML/views/StatisticalReport/BoxInfor.html
+++ b/HTML/views/StatisticalReport/BoxInfor.html
@@ -47,7 +47,7 @@
 						<div class="layui-inline zongdan" >
 							<label class="layui-form-label" style="width: 60px;">鎵樼洏鍙�</label>
 							<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
-								<input type="text" id="PalletNo"  name="PalletNo" placeholder="鎵樼洏鍙�" autocomplete="off" class="layui-input">
+								<input type="text" id="PalletNo"  name="PalletNo" placeholder="妗跺彿" autocomplete="off" class="layui-input">
 							</div>
 						</div>
 						<!-- <div class="layui-inline mingxi">
@@ -221,9 +221,9 @@
                     </script>
 					<script type="text/html" id="toolbarDemo">
 
-						<button class="layui-btn layuiadmin-btn-list layui-btn-sm  addClass" lay-event="add">
+						<!-- <button class="layui-btn layuiadmin-btn-list layui-btn-sm  addClass" lay-event="add">
 							<i class="layui-icon">&#xe654;</i>娣诲姞
-						</button>
+						</button> -->
 					</script>
 				</div>
 			</div>
@@ -357,8 +357,8 @@
 					//{field: 'RoadwayName', title: '鎵�灞炲贩閬�', align: 'center'},
                     {field: 'AreaName', title: '鎵�灞炲尯鍩�', align: 'center'},
                     {field: 'LocatNo', title: '鍌ㄤ綅鍦板潃', align: 'center'},
-                    {field: 'PalletNo', title: '鎵樼洏鍙�', align: 'center'},
-					{field: 'PalletStatus', title: '鎵樼洏鐘舵��', align: 'center', templet: '#InspectPalletStatus'},
+                    {field: 'PalletNo', title: '妗跺彿', align: 'center'},
+					{field: 'PalletStatus', title: '妗剁姸鎬�', align: 'center', templet: '#InspectPalletStatus'},
                     {field: 'SkuNo', title: '鐗╂枡缂栫爜', align: 'center'},
                     {field: 'SkuName', title: '鐗╂枡鍚嶇О', align: 'center'},
 					//{field: 'OwnerNo',title: '璐т富缂栫爜',align: 'center'},
diff --git a/HTML/views/WareHouseSetting/Area.html b/HTML/views/WareHouseSetting/Area.html
index 556d41a..77c8e60 100644
--- a/HTML/views/WareHouseSetting/Area.html
+++ b/HTML/views/WareHouseSetting/Area.html
@@ -197,7 +197,7 @@
 							},{
 								field: 'WareHouseName',
 								title: '鎵�灞炰粨搴�',
-								width: 120,
+								width: 160,
 								align: 'center',
 								templet: function(d) {
 
@@ -213,6 +213,11 @@
 							}, {
 								field: 'AreaName',
 								title: '鍖哄煙鍚嶇О', 
+								align: 'center'
+								
+							}, {
+								field: 'DeviceCode',
+								title: '璁惧缂栫爜', 
 								align: 'center'
 								
 							}, {
@@ -309,8 +314,9 @@
 										console.log(field)
 										//鎻愪氦 Ajax 鎴愬姛鍚庯紝闈欐�佹洿鏂拌〃鏍间腑鐨勬暟鎹�
 										var param = {
-                                            // AreaNo: field.AreaNo, //鍖哄煙缂栫爜
+                                            AreaNo: field.AreaNo, //鍖哄煙缂栫爜
                                             AreaName: field.AreaName, //鍖哄煙鍚嶇О
+											DeviceCode:field.DeviceCode,//璁惧缂栫爜
                                             WareHouseNo: field.WareHouseNo, //鎵�灞炰粨搴�
                                             Status: field.Status, //鏄惁鍚敤 0
                                             Priority: parseInt(field.Priority), //浼樺厛绾�
@@ -408,7 +414,7 @@
 								title: '鍖哄煙绠$悊淇℃伅',
 								content: 'AreaFrom.html?id=' +  cusId,
 								maxmin: true,
-								area: ['445px', '340px'],
+								area: ['445px', '380px'],
 								btn: ['纭畾', '鍙栨秷'],
 								yes: function(index, layero){
 								  var iframeWindow = window['layui-layer-iframe'+ index]
@@ -425,6 +431,7 @@
 										Priority: parseInt(field.Priority),
 										Type:field.Type,
 										Temperature:field.Temperature,  
+										DeviceCode:field.DeviceCode
 									};
 									sendData(IP + "/Sys/EditStorageArea", param, 'post', function(res) {
 										console.log(res);
diff --git a/HTML/views/WareHouseSetting/AreaAddFrom.html b/HTML/views/WareHouseSetting/AreaAddFrom.html
index 9c86606..61bb83a 100644
--- a/HTML/views/WareHouseSetting/AreaAddFrom.html
+++ b/HTML/views/WareHouseSetting/AreaAddFrom.html
@@ -10,18 +10,24 @@
 	</head>
 	<body>
 		<div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 30px 0 0;">
-            <!-- <div class="layui-form-item">
+            <div class="layui-form-item">
 				<label class="layui-form-label">鍖哄煙缂栫爜</label>
 				<div class="layui-input-block">
 					<input type="text" name="AreaNo" lay-verify="required"  placeholder="璇疯緭鍏ュ尯鍩熺紪鐮�" autocomplete="off" class="layui-input">
 				</div>
-			</div> -->
+			</div>
 			<div class="layui-form-item">
 				<label class="layui-form-label">鍖哄煙鍚嶇О</label>
 				<div class="layui-input-block">
 					<input type="text" name="AreaName" lay-verify="required"  placeholder="璇疯緭鍏ュ尯鍩熷悕绉�" autocomplete="off" class="layui-input">
 				</div>
 			</div>
+			<div class="layui-form-item">
+				<label class="layui-form-label">璁惧缂栫爜</label>
+				<div class="layui-input-block">
+					<input type="text" name="DeviceCode" lay-verify="required"  placeholder="璇疯緭鍏ヨ澶囩紪鐮�" autocomplete="off" class="layui-input">
+				</div>
+			</div>
             <div class="layui-form-item">
 				<label class="layui-form-label">鎵�灞炰粨搴�</label>
 				<div class="layui-input-block">
diff --git a/HTML/views/WareHouseSetting/AreaFrom.html b/HTML/views/WareHouseSetting/AreaFrom.html
index d2c4500..0262677 100644
--- a/HTML/views/WareHouseSetting/AreaFrom.html
+++ b/HTML/views/WareHouseSetting/AreaFrom.html
@@ -48,6 +48,12 @@
 					</select>
 				</div>
 			</div>
+			<div class="layui-form-item">
+				<label class="layui-form-label">璁惧缂栫爜</label>
+				<div class="layui-input-block">
+					<input type="text" name="DeviceCode" lay-verify="required"  placeholder="璇疯緭鍏ヨ澶囩紪鐮�" autocomplete="off" class="layui-input">
+				</div>
+			</div>
 			<div class="layui-form-item layui-hide">
 				<input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" value="纭娣诲姞">
 				<input type="button" lay-submit lay-filter="layuiadmin-app-form-edit" id="layuiadmin-app-form-edit" value="纭缂栬緫">
@@ -83,6 +89,7 @@
 								$("input[name='AreaName']").val(res.data.AreaName);
 								$("select[name='Priority']").val(res.data.Priority);
 								$("select[name='Type']").val(res.data.Type);
+								$("input[name='DeviceCode']").val(res.data.DeviceCode);
 									 
 								GetTemp(res.data.Temperature);
 								form.render();
diff --git a/HTML/views/WareHouseSetting/Locate.html b/HTML/views/WareHouseSetting/Locate.html
index c4fd05a..7a95e2e 100644
--- a/HTML/views/WareHouseSetting/Locate.html
+++ b/HTML/views/WareHouseSetting/Locate.html
@@ -344,7 +344,7 @@
 							field: 'AreaName',
 							title: '鎵�灞炲尯鍩�',
 							align: 'center',
-							width: 130,
+							width: 180,
 							templet: function(d) {
 
 								return d.AreaNo + '-' + d.AreaName;
@@ -353,6 +353,7 @@
 							field: 'LocatNo',
 							title: '鍌ㄤ綅缂栫爜',
 							align: 'center',
+							width: 160,
 						}, {
 							field: 'StatusName',
 							title: '鍌ㄤ綅鐘舵��',
@@ -362,28 +363,42 @@
 							field: 'FlagName',
 							title: '鍌ㄤ綅鏍囪瘑',
 							align: 'center',
-							width: 90,
+							width: 110,
 						}, {
 							field: 'Row',
-							title: '鎺�',
+							title: '缁�',
 							align: 'center',
-							width: 70,
+							width: 90,
 						}, {
 							field: 'Column',
-							title: '鍒�',
+							title: '浣嶇疆',
 							align: 'center',
-							width: 70,
-						}, {
-							field: 'Layer',
-							title: '灞�',
-							align: 'center',
-							width: 70,
-						}, {
-							field: 'Depth',
-							title: '娣卞害',
-							align: 'center',
-							width: 70,
+							width: 90,
 						}, 
+						{
+							field: 'AisleOne',
+							title: '閫氶亾鍙�1',
+							align: 'center',
+							width: 160,
+						}, 
+						{
+							field: 'AisleTwo',
+							title: '閫氶亾鍙�2',
+							align: 'center',
+							width: 160,
+						}, 
+						// {
+						// 	field: 'Layer',
+						// 	title: '灞�',
+						// 	align: 'center',
+						// 	width: 70,
+						// }, 
+						// {
+						// 	field: 'Depth',
+						// 	title: '娣卞害',
+						// 	align: 'center',
+						// 	width: 70,
+						// }, 
 						// {
 						// 	field: 'Height',
 						// 	title: '楂樺害',
@@ -403,7 +418,6 @@
 						{
 							title: '鎿嶄綔',
 							fixed: 'right',
-							width: 120,
 							align: 'center',
 							toolbar: '#table-content-list'
 						}
diff --git a/HTML/views/WareHouseSetting/Pallets.html b/HTML/views/WareHouseSetting/Pallets.html
index a7a3e9b..0433e85 100644
--- a/HTML/views/WareHouseSetting/Pallets.html
+++ b/HTML/views/WareHouseSetting/Pallets.html
@@ -145,11 +145,11 @@
 							fixed: 'left'
 						}, {
 							field: 'PalletNo',
-							title: '鎵樼洏鏉$爜',
+							title: '妗跺彿',
 							align: 'center',
 						}, {
 							field: 'Status',
-							title: '鏉$爜鐘舵��',
+							title: '妗剁姸鎬�',
 							align: 'center',
 							templet:function(d){
 								switch (d.Status) {
@@ -179,13 +179,15 @@
 							templet:function(d){
 								return formatDate(d.LastUse);
 							}
-						}, {
-							title: '鎿嶄綔',
-							fixed: 'right',
-							width: 220,
-							align: 'center',
-							toolbar: '#table-content-list'
-						}]
+						}
+						// , {
+						// 	title: '鎿嶄綔',
+						// 	fixed: 'right',
+						// 	width: 220,
+						// 	align: 'center',
+						// 	toolbar: '#table-content-list'
+						// }
+					]
 					],
 				});
 				//鐩戝惉鎼滅储
@@ -220,15 +222,13 @@
 						}, function() {});
 					}
 				});
-
-
-				 
+ 
 				
 				var	active = {
 					add: function() {
 						layer.open({
 							type: 2,
-							title: '鎵撳嵃鎵樼洏鏉$爜',
+							title: '娣诲姞妗跺彿',
 							content: 'PalletsPrintFrom.html',
 							maxmin: true,
 							area: ['600px', '300px'],
@@ -242,31 +242,29 @@
 									var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
 									console.log(field);
 									if (isTrue = true) {
-										isTrue = false;
-									
-										var html = "";
-										var xun = 0;
-										document.getElementById('print').innerHTML="";
-										for(var i=0;i<field.GroupCount;i++){
-											
-											for(var j=0;j<field.SameCount;j++){
-												html ="<div class=\"layui-form\" lay-filter=\"layuiadmin-app-form-list\" id=\"print\" style=\"width: 50%; text-align: center;padding-top: 10%;margin-left: 0%;\">\n"+
-												"<div class=\"layui-form-item\">\n"+
-												"<div class=\"layui-inline\">\n"+
-												"<div class=\"\">\n"+
-												"<img  id=\"imgBar\" width=\"245px\" height=\"120px\"/></div>\n"+
-												"</div>\n"+
-												"</div>\n"+
-												"</div>\n"+
-												"<div style=\"page-break-after: always;\"></div>\n"+
-												"</div>" ;	
-												document.getElementById('print').innerHTML+=html;
-												document.getElementById('imgBar').id="imgBar"+xun;
-												xun+=1
+										isTrue = false;									
+																			
+										var param = {
+											PalletNo:field.StockCode,
+											LocatNo:field.LocatNo
+										};
+										synData(IP + "/Sys/AddPallets", param, 'post', function(res) {
+											console.log(res);
+											if (res.code == 0) { //鎴愬姛
+												layer.msg("娣诲姞鎴愬姛", {
+													icon: 1,
+													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+												}, function() {
+													layer.close(index);
+												});
+												
+											} else{
+												layer.msg(res.msg, {
+													icon: 2,
+													time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+												}, function() {});
 											}
-										}
-										GetimgBar(field.StockCode,field.GroupCount,field.SameCount);
-										layer.close(index);
+										});
 									}	
 								});  
 								submit.trigger('click');
@@ -282,162 +280,30 @@
 					var type = $(this).data('type');
 					active[type] ? active[type].call(this) : '';
 				});
-				//鑾峰彇娣诲姞鏉″舰鐮�
-				function GetimgBar(StockCode,GroupCount,SameCount){
-					var param = {
-						PalletNo:StockCode,
-						GroupCount: parseInt(GroupCount),
-						SameCount:parseInt(SameCount),
-					};
-					console.log(param);
-					synData(IP + "/Sys/GetImgBar", param, 'post', function(res) {
-						console.log(res);
-						if (res.code == 0) { //鎴愬姛
-							for(var i=0;i<res.data.length;i++){
-								$("#"+"imgBar"+i).attr("src", res.data[i]);
-							}
-							
-							AddPallets(StockCode,GroupCount);
-						} else { //涓嶆垚鍔�
-							layer.msg(res.msg, {
-								icon: 2,
-								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-							}, function() {});
-						}
-					});
-					
-				};
+				
 				//娣诲姞鏉″舰鐮�
-				function AddPallets(StockCode,GroupCount){
+				function AddPallets(StockCode,LocatNo){
 					//鎻愪氦 Ajax 鎴愬姛鍚庯紝闈欐�佹洿鏂拌〃鏍间腑鐨勬暟鎹�
 					var param = {
-						GroupCount:parseInt(GroupCount),
+						PalletNo:StockCode,
+						LocatNo:LocatNo
 					};
 					synData(IP + "/Sys/AddPallets", param, 'post', function(res) {
 						console.log(res);
 						if (res.code == 0) { //鎴愬姛
-							$("#print").print();
-							
-						} else if(res.code == 1){
-							layer.msg(res.msg, {
+							layer.msg("娣诲姞鎴愬姛", {
 								icon: 2,
 								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 							}, function() {});
-						} else { //涓嶆垚鍔�
-							layer.msg(res.statusText, {
+							
+						} else{
+							layer.msg(res.msg, {
 								icon: 2,
 								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 							}, function() {});
 						}
 					});
-				};
-				//鑾峰彇琛ユ墦鏉″舰鐮�
-				function GetimgBar1(StockCode,GroupCount,SameCount){
-					
-					var param = {
-						PalletNo:StockCode,
-						GroupCount:parseInt(GroupCount),
-						SameCount:parseInt(SameCount),
-					};
-					synData(IP + "/Sys/GetImgBarReprint", param, 'post', function(res) {
-						console.log(res);
-						
-						if (res.code == 0) { //鎴愬姛
-							var ok=false;
-							for(var i=0;i<res.data.length;i++){
-								$("#"+"imgBar"+i).attr("src", res.data[i]);	
-								if(i==(res.data.length-1)){
-									ok=true;
-								}
-							}
-							if(ok){
-								$("#print").print();
-							}
-						} else { //涓嶆垚鍔�
-							layer.msg(res.msg, {
-								icon: 2,
-								time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-							}, function() {});
-						}
-					})
-				};
-				 
-				table.on('tool(LAY-app-content-list)', function(obj) {
-					var data = obj.data;
-					if (obj.event === 'edit') {
-						layer.open({
-							type: 2,
-							title: '鎵樼洏鏃堕棿绾�',
-							content: 'PalletsTimeLine.html?PalletNo=' +  data.PalletNo,
-							maxmin: true,
-							area: ['700px', '650px'],
-							btn: ['纭畾', '鍙栨秷'],
-							yes: function(index, layero){
-								layer.close(index); //鍏抽棴寮瑰眰
-							}
-						});
-					}
-					if (obj.event === 'print') {
-						PalletNo = data.PalletNo; 
-						
-						layer.open({
-							type: 2,
-							title: '鎵撳嵃鎵樼洏鏉$爜',
-							content: 'PalletsPrintFrom.html?PalletNo='+PalletNo,
-							maxmin: true,
-							area: ['600px', '300px'],
-							btn: ['纭畾', '鍙栨秷'],
-							yes: function(index, layero){
-								var iframeWindow = window['layui-layer-iframe'+ index]
-								,submitID = 'layuiadmin-app-form-submit'
-								,submit = layero.find('iframe').contents().find('#'+ submitID);
-								//鐩戝惉鎻愪氦
-								iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
-									var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
-									console.log(field);
-									var html = "";
-									var xun = 0;
-									var isOk = false;
-									document.getElementById('print').innerHTML="";
-								
-									for(var i=0;i<parseInt(field.GroupCount);i++){
-										
-										for(var j=0;j<parseInt(field.SameCount);j++){
-											html ="<div class=\"layui-form\" lay-filter=\"layuiadmin-app-form-list\" id=\"print\" style=\"width: 50%; text-align: center;padding-top: 10%;margin-left: 0%;\">\n"+
-												"<div class=\"layui-form-item\">\n"+
-												"<div class=\"layui-inline\">\n"+
-												"<div class=\"\">\n"+
-												"<img  id=\"imgBar\" width=\"245px\" height=\"120px\" /></div>\n"+
-												"</div>\n"+
-												"</div>\n"+
-												"</div>\n"+
-												"<div style=\"page-break-after: always;\"></div>\n"+
-												"</div>" ;	
-												document.getElementById('print').innerHTML+=html;
-												document.getElementById('imgBar').id="imgBar"+xun;
-												xun+=1	
-												
-										}
-										
-										if(i==(parseInt(field.GroupCount)-1)){
-											isOk= true;
-										}
-									}
-									if(isOk){
-										GetimgBar1(field.StockCode,field.GroupCount,field.SameCount);
-									} 
-								});  
-							  submit.trigger('click');
-							},
-							end:function(){ 
-								location.reload();
-								return false;
-							}
-						
-						});
-					}
-				});
-				
+				};						
 				
 			});
 		</script>
diff --git a/HTML/views/WareHouseSetting/PalletsPrintFrom.html b/HTML/views/WareHouseSetting/PalletsPrintFrom.html
index 46949e9..8bf171c 100644
--- a/HTML/views/WareHouseSetting/PalletsPrintFrom.html
+++ b/HTML/views/WareHouseSetting/PalletsPrintFrom.html
@@ -12,27 +12,16 @@
 
 		<div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 30px 0 0;">
 			<div class="layui-form-item">
-				<label class="layui-form-label" style="width: 70px;">鎵樼洏鏉$爜锛�</label>
+				<label class="layui-form-label">妗跺彿</label>
 				<div class="layui-input-block">
-					<input type="text" name="StockCode" placeholder="璇疯緭鍏ユ墭鐩樻潯鐮�" lay-verify="required" autocomplete="off" disabled="disabled" class="layui-input">
+					<input type="text" name="StockCode" placeholder="璇疯緭鍏ユ《鍙�" lay-verify="required" autocomplete="off" class="layui-input">
 				</div>
-			</div>
+			</div>			
 			<div class="layui-form-item">
-				<label class="layui-form-label" style="width: 70px;">姣忕粍涓暟锛�</label>
+				<label class="layui-form-label">鍌ㄤ綅鍦板潃</label>
 				<div class="layui-input-block">
-					<input type="number" name="SameCount" placeholder="璇疯緭鍏ユ瘡缁勪釜鏁�" lay-verify="required" autocomplete="off" class="layui-input">
+					<input type="text" name="LocatNo" placeholder="璇疯緭鍏ュ偍浣嶅湴鍧�" lay-verify="required" autocomplete="off" class="layui-input">
 				</div>
-				
-			</div>
-			<div class="layui-form-item">
-				<label class="layui-form-label" style="width: 70px;">鎵撳嵃缁勬暟锛�</label>
-				<div class="layui-input-block">
-					<input type="number" name="GroupCount" placeholder="璇疯緭鍏ユ墦鍗扮粍鏁�" lay-verify="required" autocomplete="off" class="layui-input">
-				</div>
-				<!-- <div class="layui-input-inline" >
-					<input type="checkbox" name="ImportGoodsStatus" id="ImportGoodsStatus" lay-skin="switch" lay-text="鍚敤鎵撳嵃鏈簗绂佺敤鎵撳嵃鏈�"  >
-					<input type="checkbox" name="ImportGoodsStatus" id="ImportGoodsStatus" lay-skin="switch" lay-text="杩炵画鎵撳嵃|闈炶繛缁墦鍗�"  >
-				</div> -->
 			</div>
 			<div class="layui-form-item layui-hide">
 				<input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" value="纭娣诲姞">
@@ -54,21 +43,7 @@
 					form = layui.form,
 					layer = layui.layer;
 					
-				var PalletNo = getQueryString('PalletNo');
-				console.log(PalletNo);		 
-				sendData(IP + "/Sys/GetPalletsNo", {PalletNo:PalletNo}, 'post', function(res) {
-					console.log(res);
-					if (res.code == 0) { //鎴愬姛
-						//椤甸潰璧嬪��
-						$("input[name='StockCode']").val(res.data);
-						$("input[name='StockCode']").attr('disabled', 'true');
-					} else { //涓嶆垚鍔�
-						layer.msg(res.msg, {
-							icon: 2,
-							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
-						}, function() {});
-					}
-				});
+				
 					
 				//鑾峰彇娴忚鍣ㄥ弬鏁�
 				function getQueryString(name) {
diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index 52d4fd4..8c6af90 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -324,4 +324,533 @@
         public string RequestUser { get; set; }
     }
     #endregion
+
+    #region AGV鎺ュ彛瀹炰綋绫�
+    /// <summary>
+    /// 鐢熸垚浠诲姟鍗�
+    /// </summary>
+    public class AgvSchedulingTask
+    {
+        /// <summary>
+        /// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿鍚屼竴涓姹傞噸澶嶆彁浜� 浣跨敤鍚屼竴缂栧彿
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string reqCode { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鏃堕棿
+        /// 鏍煎紡: 鈥測yyy-MM-ddHH:mm:ss鈥�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string reqTime { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛绔紪鍙凤紝濡� PDA锛孒CWMS 绛夈��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string clientCode { get; set; }
+        /// <summary>
+        /// 浠ょ墝鍙�, 鐢辫皟搴︾郴缁熼鍙戙��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string tokenCode { get; set; }
+        /// <summary>
+        /// 浠诲姟绫诲瀷锛屼笌鍦� RCS-2000 绔厤缃殑涓讳换鍔$被鍨嬬紪鍙蜂竴鑷淬��
+        /// 鍐呯疆浠诲姟绫诲瀷:
+        /// 鍘傚唴璐ф灦鎼繍: F01
+        /// 鍘傚唴璐ф灦绌烘弧浜ゆ崲: F02
+        /// 杈婄瓛鎼繍鎺ラ┏:F03
+        /// 鍘傚唴璐ф灦鍑哄簱 AGV 寰呭懡:F04
+        /// 鏃嬭浆璐ф灦: F05
+        /// 鍘傚唴鐢垫浠诲姟: F06
+        /// 浠ヤ笅涓哄弶杞︿笓鐢ㄤ换鍔$被鍨�
+        /// 楂樹綅璐ф灦鍒板伐浣滃彴: F11
+        /// 宸ヤ綔鍙板埌楂樹綅璐ф灦: F12
+        /// 宸烽亾鍒板伐浣滃彴: F13
+        /// 宸ヤ綔鍙板埌宸烽亾: F14
+        /// 楂樹綅璐ф灦鍒板伐浣滃彴(鎺ラ┏) : F15
+        /// 宸ヤ綔鍙板埌楂樹綅璐ф灦(鎺ラ┏) : F16
+        /// 宸烽亾鍒板伐浣滃彴(鎺ラ┏) : F17
+        /// 宸ヤ綔鍙板埌宸烽亾(鎺ラ┏) : F18
+        /// 鍙夎溅鐢垫涓讳换鍔�: F20
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string taskTyp { get; set; }
+        /// <summary>
+        /// 瀹瑰櫒绫诲瀷锛堝弶杞�/CTU 涓撶敤锛�
+        /// 鍙夎溅椤圭洰蹇呬紶
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ctnrTyp { get; set; }
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿锛堝弶杞�/CTU 涓撶敤锛� 鎵樼洏鍙凤紵
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ctnrCode { get; set; }
+        /// <summary>
+        /// 瀹瑰櫒鏁伴噺
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ctnrNum { get; set; }
+
+        /// <summary>
+        /// 浠诲姟妯″紡
+        /// 0-鏅�� move 
+        /// 1-鍑哄簱 move 
+        /// 2-鍏ュ簱 move 
+        /// 3-绉诲簱 move
+        /// 璇存槑锛�
+        /// 1>浠诲姟妯℃澘涓篃鍙互閰嶇疆妯″紡锛屽鏋滄帴鍙d紶浜嗗垯浼樺厛浣跨敤鎺ュ彛浼犲叆鐨勫��
+        /// 2>鍑哄簱 move 妯″紡涓嶈兘琚墦鏂紝鏅�歮ove鍜屽叆搴搈ove鍙互琚墦鏂�傚嚭搴� move 鎵ц鍚庡繀椤绘墽琛屽叆搴搈ove 鎴栬�呯Щ搴� move锛岃嫢鍚庣画鏈甫move 鏍囪瘑锛屽垯绯荤粺涓嶄細鎵ц锛屼細灏嗕换鍔℃寕璧枫��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string taskMode { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔浣嶏紝涓�鑸负鏈哄彴鎴栧伐浣滃彴浣嶇疆锛屼笌 RCS-2000 绔厤缃殑浣嶇疆鍚嶇О涓�鑷�, 宸ヤ綔浣嶅悕绉颁负瀛楁瘝\鏁板瓧\鎴栫粍鍚�, 涓嶈秴杩� 32 浣嶃��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string wbCode { get; set; }
+
+        /// <summary>
+        /// 浣嶇疆璺緞锛欰GV 鍏抽敭璺緞浣嶇疆闆嗗悎锛屼笌浠诲姟绫诲瀷涓ā鏉块厤缃殑浣嶇疆璺緞涓�涓�瀵瑰簲銆傚緟鐜板満鍦板浘閮ㄧ讲銆侀厤缃畬鎴愬悗鍙幏鍙栥��
+        /// positionCode:浣嶇疆缂栧彿, 鍗曚釜缂栧彿涓嶈秴杩� 64 浣�
+        /// type:浣嶇疆绫诲瀷璇存槑:
+        /// 00 琛ㄧず锛氫綅缃紪鍙�
+        /// 01 琛ㄧず锛氱墿鏂欐壒娆″彿
+        /// 02 琛ㄧず锛氱瓥鐣ョ紪鍙凤紙鍚涓尯鍩燂級
+        /// 濡傦細绗竴涓尯鍩熸斁涓嶄笅, 鍙互鏀剧浜屼釜鍖哄煙
+        /// 03 琛ㄧず锛氳揣鏋剁紪鍙凤紝閫氳繃璐ф灦缂栧彿鎵惧埌璐ф灦鎵�鍦ㄤ綅缃�
+        /// 04 琛ㄧず锛氬尯鍩熺紪鍙凤紝鍦ㄥ尯鍩熶腑鏌ユ壘鍙敤浣嶇疆
+        /// 05 琛ㄧず锛氫粨浣嶇紪鍙凤紙鍙夎溅/CTU 涓撶敤锛�
+        /// 06 琛ㄧず锛氬贩閬撶紪鍙�
+        /// 07 琛ㄧず锛氬鍣ㄧ紪鍙�
+        /// 08 琛ㄧず锛氬贩閬撶瓥鐣�
+        /// 09 琛ㄧず锛氬贩閬撳尯鍩�
+        /// 10 琛ㄧず锛氬贩閬撲粨浣�
+        /// 11 琛ㄧず锛氳緭閫佺嚎锛堟満鍙帮級缂栧彿
+        /// 12 琛ㄧず锛欳TU 宸ヤ綔鍙帮紙姊抽娇宸ヤ綔绔欙級缂栧彿
+        /// 13 琛ㄧず锛氭惉杩愬贩閬撴寚瀹氳揣鏋跺嚭搴�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public List<PositionCodePath> positionCodePath { get; set; }
+
+        /// <summary>
+        /// 璐ф灦缂栧彿锛屼笉鎸囧畾璐ф灦鍙互涓虹┖
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string podCode { get; set; }
+
+        /// <summary>
+        /// 鍒搴斿湴鍥剧殑浠诲姟瀹屾垚鏃舵湁鍊�
+        /// 宸�: 180
+        /// 鍙�: 0
+        /// 涓�: 90
+        /// 涓�: -90
+        /// 涓嶆寚瀹氭柟鍚戝彲浠ヤ负绌猴紱濡傛灉缁堢偣涓嶆槸宸ヤ綔鍙版垨宸ヤ綔鍙版湭閰嶇疆鏂瑰悜鍒欎綔涓虹粓鐐规柟鍚戝鍏ュ瓙浠诲姟鎶ユ枃锛屽鏋滃伐浣滃彴閰嶆湁鏂瑰悜鍒欎袱鑰呭仛宸粨鏋滀綔涓虹粓鐐规柟鍚戝鍏ュ瓙浠诲姟鎶ユ枃
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string podDir { get; set; }
+
+        /// <summary>
+        /// 璐ф灦绫诲瀷, 浼犵┖鏃惰〃绀洪殢鏈烘壘涓揣鏋�
+        /// 鎵剧┖璐ф灦浼犲弬鏂瑰紡濡備笅锛�
+        /// -1: 浠h〃涓嶅叧蹇冭揣鏋剁被鍨�, 鎵惧埌绌鸿揣鏋跺嵆鍙�.
+        /// -2: 浠h〃浠庡伐浣滀綅鑾峰彇鍏宠仈璐ф灦绫诲瀷, 濡傛灉鏈厤缃�, 鍙壘绌鸿揣鏋�.璐ф灦绫诲瀷缂栧彿: 鍙壘璇ヨ揣鏋剁被鍨嬬殑绌鸿揣鏋�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string podTyp { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规鎴栬揣鏋朵笂鐨勭墿鏂欏敮涓�缂栫爜,鐢熸垚浠诲姟鍗曟椂,璐ф灦涓庣墿鏂欑洿鎺ョ粦瀹氭椂浣跨敤. 锛堥�氳繃鍚屾椂浼� podCode 鍜宮aterialLot鏉ョ粦瀹氭垨閫氳繃wbCode 鎵惧埌浣嶇疆涓婄殑璐ф灦鍜宮aterialLot 鏉ョ粦瀹氾級宸烽亾浠诲姟閫氳繃璇ュ瓧娈典紶鍏ョ壒寰佸��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string materialLot { get; set; }
+        /// <summary>
+        /// 鐗╂枡绫诲瀷
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string materialType { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾э紝浠庯紙1~127锛夌骇锛屾渶澶т紭鍏堢骇鏈�楂樸�備负绌烘椂锛岄噰鐢ㄤ换鍔℃ā鏉跨殑浼樺厛绾с��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string priority { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍗曞彿,閫夊~, 涓嶅~绯荤粺鑷姩鐢熸垚锛孶UID 灏忎簬绛変簬 64 浣�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string taskCode { get; set; }
+
+        /// <summary>
+        /// AGV 缂栧彿锛屽~鍐欒〃绀烘寚瀹氭煇涓�缂栧彿鐨� AGV 鎵ц璇ヤ换鍔�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string agvCode { get; set; }
+
+        /// <summary>
+        /// 缁勭紪鍙�
+        /// CTU 鍦烘櫙涓嬬敤浜庢寜缁勫嚭搴擄紝鍚岀粍浠诲姟浼樺厛鎷艰溅銆� 濡備笟鍔¢渶瑕佷换鍔$粍闂存垨缁勫唴鎸夐『搴忓嚭搴擄紝鍒欓渶璋冪敤鏂欑椤哄簭鍑哄簱锛圕TU锛夋帴鍙c�傛綔浼忓紡鍦烘櫙涓嬶紝閫氳繃缁勫彿鏉ョ鐞嗛『搴忓嚭搴撶殑椤哄簭锛岀粍鍙峰皬鐨勪紭鍏堝嚭搴撱��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string groupId { get; set; }
+        /// <summary>
+        /// 璁惧绫诲瀷
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string agvType { get; set; }
+        /// <summary>
+        /// 鍖哄煙
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string positionSelStrategy { get; set; }
+
+        /// <summary>
+        /// 鑷畾涔夊瓧娈�.JSON 鏍煎紡
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string data { get; set; }
+
+        /// <summary>
+        /// 鐩爣鍌ㄤ綅鍦板潃锛�23椤圭洰锛�
+        /// </summary>
+        public string userCallCode { get; set; }
+    }
+
+    public class PositionCodePath
+    {
+        public string positionCode { get; set; }
+        public string type { get; set; }
+    }
+    /// <summary>
+    /// 缁х画鎵ц浠诲姟
+    /// </summary>
+    public class AgvContinueTask
+    {
+        /// <summary>
+        /// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿锛� 鍚屼竴涓姹傞噸澶嶆彁浜わ紝 浣跨敤鍚屼竴缂栧彿銆�
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string ReqCode { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鏃堕棿鎴� 
+        /// 鏍煎紡: 鈥測yyy-MM-dd HH:mm:ss鈥濄��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ReqTime { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛绔紪鍙凤紝濡� PDA锛孒CWMS 绛夈��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ClientCode { get; set; }
+
+        /// <summary>
+        /// 浠ょ墝鍙�, 鐢辫皟搴︾郴缁熼鍙戙��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string TokenCode { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔浣嶏紝涓� RCS-2000 绔厤缃殑浣嶇疆鍚嶇О涓�鑷�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string WbCode { get; set; }
+
+        /// <summary>
+        /// 璐ф灦鍙凤紝閲囩敤璐ф灦鍙疯Е鍙戠殑鏂瑰紡銆�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string PodCode { get; set; }
+
+        /// <summary>
+        /// AGV 缂栧彿锛岄噰鐢� AGV 缂栧彿瑙﹀彂鐨勬柟寮忋��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string AgvCode { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍗曞彿,閫夊~, 涓嶅~绯荤粺鑷姩鐢熸垚锛屽繀椤讳负 64 浣� UUID
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string TaskCode { get; set; }
+
+        /// <summary>
+        /// 涓嬩竴涓瓙浠诲姟鐨勫簭鍒楋紝鎸囧畾绗嚑涓瓙浠诲姟寮�濮嬫墽琛岋紝鏍¢獙瀛愪换鍔℃墽琛屾槸鍚︽纭�備笉濉粯璁ゆ墽琛屼笅涓�涓瓙浠诲姟銆�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string TaskSeq { get; set; }
+
+        /// <summary>
+        /// 涓嬩竴涓綅缃俊鎭紝鍦ㄤ换鍔$被鍨嬩腑閰嶇疆澶栭儴璁剧疆鏃堕渶瑕佷紶鍏ワ紝鍚﹀垯涓嶉渶瑕佽缃�傚緟鐜板満鍦板浘閮ㄧ讲銆侀厤缃畬鎴愬悗鍙幏鍙�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string NextPositionCode { get; set; }
+    }
+
+    /// <summary>
+    /// 鍙栨秷浠诲姟
+    /// </summary>
+    public class AgvCancelTask
+    {
+        /// <summary>
+        /// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿锛� 鍚屼竴涓姹傞噸澶嶆彁浜わ紝 浣跨敤鍚屼竴缂栧彿銆�
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string ReqCode { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鏃堕棿鎴� 
+        /// 鏍煎紡: 鈥測yyy-MM-dd HH:mm:ss鈥濄��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ReqTime { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛绔紪鍙凤紝濡� PDA锛孒CWMS 绛夈��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ClientCode { get; set; }
+
+        /// <summary>
+        /// 浠ょ墝鍙�, 鐢辫皟搴︾郴缁熼鍙戙�� 鐢盧CS-2000 鍛婄煡涓婂眰绯荤粺
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string TokenCode { get; set; }
+
+        /// <summary>
+        /// 鍙栨秷绫诲瀷
+        /// 0 琛ㄧず锛氬彇娑堝悗璐ф灦鐩存帴鏀惧湴涓�
+        /// 1 琛ㄧず锛欰GV 浠嶇劧鑳岀潃璐ф灦锛� 鏍规嵁鍥炲簱鍖哄煙鎵ц鍥炲簱鎸囦护锛� 鍙湁娼滀紡杞﹀拰 CTU 杞︽敮鎸併��
+        /// 鑻ヤ笉浼犲�硷紝榛樿鐨勫彇娑堟ā寮忎负 0
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ForceCancel { get; set; }
+
+        /// <summary>
+        /// forcecancel=1 鏃舵湁鎰忎箟锛屽洖搴撳尯鍩熺紪鍙凤紝濡傛灉涓虹┖锛岄噰鐢ㄨ揣鏋堕厤缃殑搴撳尯銆�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string MatterArea { get; set; }
+
+        /// <summary>
+        /// 鍙栨秷璇� AGV 姝e湪鎵ц鐨勪换鍔″崟
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string AgvCode { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍗曠紪鍙�, 鍙栨秷璇ヤ换鍔″崟
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string TaskCode { get; set; }
+    }
+
+    /// <summary>
+    /// 浠诲姟瀹屾垚閫氱煡鍙傛暟
+    /// </summary>
+    public class AgvTaskDto
+    {
+        /// <summary>
+        /// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿
+        /// 鍚屼竴涓姹傞噸澶嶆彁浜� 浣跨敤鍚屼竴缂栧彿
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string reqCode { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鏃堕棿鎴�
+        /// 鏍煎紡: 鈥測yyy-MM-ddHH:mm:ss鈥�
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string reqTime { get; set; }
+
+        /// <summary>
+        /// 鍦扮爜 X 鍧愭爣(mm)锛氫换鍔″畬鎴愭椂鏈夊��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public int cooX { get; set; }
+
+        /// <summary>
+        /// 鍦扮爜 Y 鍧愭爣(mm)锛氫换鍔″畬鎴愭椂鏈夊��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public int cooY { get; set; }
+
+        /// <summary>
+        /// 褰撳墠浣嶇疆缂栧彿
+        /// 浠诲姟寮�濮嬶細璇ヤ綅缃负浠诲姟璧风偣
+        /// 璧板嚭鍌ㄤ綅锛氳浣嶇疆涓轰换鍔¤捣鐐�
+        /// 浠诲姟鍗曞彇娑堬細璇ヤ綅缃负宸ヤ綔浣嶇紪鍙�
+        /// 浠诲姟缁撴潫锛氳浣嶇疆涓轰换鍔$粓鐐�
+        /// 鍙栨斁鐢宠锛氬彇鏀炬枡绠辩殑鐐�
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string currentPositionCode { get; set; }
+
+        /// <summary>
+        /// 鑷畾涔夊瓧娈碉紝涓嶈秴杩� 2000 涓瓧绗�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string data { get; set; }
+
+        /// <summary>
+        /// 鍦板浘缂栧彿
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string mapCode { get; set; }
+
+        /// <summary>
+        /// 鍦扮爜缂栧彿锛氫换鍔″畬鎴愭椂鏈夊��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string mapDataCode { get; set; }
+
+        /// <summary>
+        /// 浠撲綅缂栧彿锛氬弶杞︿笌 CTU 浠诲姟鏃舵湁鍊�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string stgBinCode { get; set; }
+
+        /// <summary>
+        /// 鏂规硶鍚�, 鍙娇鐢ㄤ换鍔$被鍨嬪仛涓烘柟娉曞悕
+        /// 鐢� RCS-2000 浠诲姟妯℃澘閰嶇疆鍚庡苟鍛婄煡涓婂眰绯荤粺
+        /// 榛樿浣跨敤鏂瑰紡:
+        /// start : 浠诲姟寮�濮�
+        /// outbin : 璧板嚭鍌ㄤ綅
+        /// end : 浠诲姟缁撴潫
+        /// cancel : 浠诲姟鍗曞彇娑�
+        /// apply锛欳TU 鏂欑鍙栨斁鐢宠
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string method { get; set; }
+
+        /// <summary>
+        /// 璐ф灦缂栧彿锛氳儗璐ф灦鏃舵湁鍊�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string podCode { get; set; }
+
+        /// <summary>
+        /// 鍒搴斿湴鍥剧殑浠诲姟瀹屾垚鏃舵湁鍊�
+        /// 宸�: 180
+        /// 鍙�: 0
+        /// 涓�: 90
+        /// 涓�: -90
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string podDir { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string materialLot { get; set; }
+
+        /// <summary>
+        /// AGV 缂栧彿锛堝悓 agvCode 锛�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string robotCode { get; set; }
+
+        /// <summary>
+        /// 褰撳墠浠诲姟鍗曞彿
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string taskCode { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔浣嶏紝涓� RCS-2000 绔厤缃殑浣嶇疆鍚嶇О涓�鑷淬�備换鍔″畬鎴愭椂鏈夊�硷紝涓庣敓鎴愪换鍔″崟鎺ュ彛涓殑 wbCode 涓�鑷�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string wbCode { get; set; }
+
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ctnrCode { get; set; }
+
+        /// <summary>
+        /// 瀹瑰櫒绫诲瀷
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string ctnrType { get; set; }
+
+        /// <summary>
+        /// 宸烽亾缂栧彿
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string roadWayCode { get; set; }
+
+        /// <summary>
+        /// 宸烽亾鍐呴『搴忓彿
+        /// 宸烽亾灏炬槸 0锛屽埌宸烽亾澶翠緷娆¢�掑 1
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string seq { get; set; }
+
+        /// <summary>
+        /// 璁惧缂栧彿锛屽姊抽娇寮忓伐浣滅珯銆佽緭閫佺嚎绛夛紝涓�鑸娇鐢ㄤ簬 CTU 鍦烘櫙銆傜郴缁熸牴鎹粨浣嶅畾浣嶅埌鍏宠仈鐨勮澶囩紪鍙枫��
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string eqpCode { get; set; }
+    }
+    /// <summary>
+    /// WMS鍥炲簲AGV淇℃伅
+    /// </summary>
+    public class OutCommanAgvDto
+    {
+        /// <summary>
+        /// 杩斿洖鐮�
+        /// 0锛氭垚鍔�
+        /// 1锛氬弬鏁扮浉鍏崇殑閿欒
+        /// 6锛氶噸澶嶅彂閫侊紝涓婂眰绯荤粺涓嶉渶瑕侀噸鍙�
+        /// 99锛氬叾浠栨湭鐭ラ敊璇紝璋冪敤澶辫触鍚庯紝鍙互閲嶈瘯
+        /// 100锛� 璇ヤ换鍔′笉瀛樺湪锛屼笂灞傜郴缁熶笉闇�閲嶅彂锛岄渶瑕佷汉宸ヤ粙鍏ュ鐞�
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 杩斿洖娑堟伅
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string Message { get; set; }
+
+        /// <summary>
+        /// 璇锋眰缂栧彿
+        /// 鏄惁蹇呭~锛氭槸
+        /// </summary>
+        public string ReqCode { get; set; }
+
+        /// <summary>
+        /// 杩斿洖鐨勬暟鎹粨鏋�
+        /// 鏄惁蹇呭~锛氬惁
+        /// </summary>
+        public string Data { get; set; }
+    }
+
+    /// <summary>
+    /// AGV鐢宠绌烘墭鐩樺灈鍏ュ簱
+    /// </summary>
+    public class AGVNullPalletRuKu
+    {
+        public string PalletNo { get; set; }
+        public decimal Qty { get; set; }
+        public string PutInLocation { get; set; }
+    }
+    /// <summary>
+    /// agv璇锋眰鎺ュ彛搴旂瓟
+    /// </summary>
+    public class AgvResultModel
+    {
+        public string code { get; set; }
+        public string message { get; set; }
+        public string reqCode { get; set; }
+    }
+    #endregion
 }
diff --git a/Wms/Model/InterFaceModel/RCSModel.cs b/Wms/Model/InterFaceModel/RCSModel.cs
index af9f8eb..eb932b5 100644
--- a/Wms/Model/InterFaceModel/RCSModel.cs
+++ b/Wms/Model/InterFaceModel/RCSModel.cs
@@ -7,96 +7,6 @@
     public class RCSModel
     {
         /// <summary>
-        /// 鐢熸垚RCS浠诲姟鍗� 浠诲姟涓嬪彂鎺ュ彛淇℃伅
-        /// </summary>
-        public class genAgvSchedulingTaskReq
-        {
-            /// <summary>
-            /// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿锛屽悓涓�涓姹傞噸澶嶆彁浜わ紝浣跨敤鍚屼竴缂栧彿
-            /// 蹇呭~
-            /// </summary>
-            public string reqCode { get; set; }
-            /// <summary>
-            /// 璇锋眰鏃堕棿 yyyy-MM-dd HH:mm:ss CMS绯荤粺鐢熸垚
-            /// </summary>
-            public string reqTime { get; set; }
-            /// <summary>
-            /// 瀹㈡埛绔紪鍙�
-            /// </summary>    
-            public string clientCode { get; set; }
-            /// <summary>
-            /// 浠ょ墝鍙�
-            /// </summary>
-            public string tokenCode { get; set; }
-            /// <summary>
-            /// 浠诲姟绫诲瀷锛屾牴鎹厤缃殑浠诲姟妯℃澘鍙峰~鍐�
-            /// 蹇呭~
-            /// </summary>
-            public string taskTyp { get; set; }
-            public string scenetTyp { get; set; }
-            /// <summary>
-            /// 瀹瑰櫒绫诲瀷
-            /// </summary>
-            public string ctnrTyp { get; set; }
-            /// <summary>
-            /// 瀹瑰櫒缂栧彿
-            /// </summary>
-            public string ctnrCode { get; set; }
-            /// <summary>
-            /// 宸ヤ綔浣�
-            /// </summary>
-            public string wbCode { get; set; }
-            /// <summary>
-            /// 浣嶇疆璺緞 閫旂粡鐐�--璧风偣鍜岀粓鐐�
-            /// 蹇呴』
-            /// </summary>
-            public List<PositionCodePath> positionCodePath { get; set; }
-            /// <summary>
-            /// 璐ф灦缂栧彿
-            /// </summary>
-            public string podCode { get; set; }
-            /// <summary>
-            /// 璐ф灦鏂瑰悜
-            /// </summary>
-            public string podDir { get; set; }
-            /// <summary>
-            /// 璐ф灦绫诲瀷
-            /// </summary>
-            public string podTyp { get; set; }
-            /// <summary>
-            /// 鐗╂枡鎵规鎴栬揣鏋朵笂鐨勭墿鏂欏敮涓�缂栫爜
-            /// </summary>
-            public string materialLot { get; set; }
-            /// <summary>
-            /// 浼樺厛绾�
-            /// </summary>
-            public string priorit { get; set; }
-            /// <summary>
-            /// 浠诲姟鍗曞彿
-            /// </summary>
-            public string taskCode { get; set; }
-            /// <summary>
-            /// AGV缂栧彿
-            /// </summary>
-            public string agvCode { get; set; }
-            /// <summary>
-            /// 鑷畾涔夊瓧娈�
-            /// </summary>
-            public List<data> data { get; set; }
-        }
-        public class PositionCodePath
-        {
-            public string positionCode { get; set; }
-            public string type { get; set; }
-        }
-
-        public class data
-        {
-            public string materialLot { get; set; }
-            public string materialCode { get; set; }
-        }
-
-        /// <summary>
         /// RCS浠诲姟杩斿洖
         /// </summary>
         public class genAgvSchedulingTaskRep
@@ -117,8 +27,17 @@
 
         public class Pallnetmsg
         {
+            /// <summary>
+            /// 鐩爣浣嶇疆锛堣澶囨墍鍦ㄤ綅缃級
+            /// </summary>
             public string Location { get; set; }
+            /// <summary>
+            /// 浠诲姟绫诲瀷  0锛氬彨鍑�妗�  1锛氬彨鏂欐《锛堟贩鏂欙級 2锛氬彨鏂欐《锛堜笅鏂欙級 3锛氬彨鑴忔《
+            /// </summary>
             public string Type { get; set; }
+            /// <summary>
+            /// 鎵规鍙�
+            /// </summary>
             public string LotNo { get; set; }
             public string PalletNo { get; set; }
             
diff --git a/Wms/Model/ModelDto/SysDto/AreaDto.cs b/Wms/Model/ModelDto/SysDto/AreaDto.cs
index 93f1ca9..c6926eb 100644
--- a/Wms/Model/ModelDto/SysDto/AreaDto.cs
+++ b/Wms/Model/ModelDto/SysDto/AreaDto.cs
@@ -52,6 +52,10 @@
         /// </summary> 
         public string TempName { get; set; }
         /// <summary>
+        /// 璁惧缂栫爜
+        /// </summary>
+        public string DeviceCode { get; set; }
+        /// <summary>
         /// 鍒涘缓鏃ユ湡
         /// </summary>
         public DateTime CreateTime { get; set; }
diff --git a/Wms/Model/ModelDto/SysDto/LocatDto.cs b/Wms/Model/ModelDto/SysDto/LocatDto.cs
index aee8ed5..ea6b465 100644
--- a/Wms/Model/ModelDto/SysDto/LocatDto.cs
+++ b/Wms/Model/ModelDto/SysDto/LocatDto.cs
@@ -130,6 +130,17 @@
         /// Nullable:True
         /// </summary>           
         public string TempName { get; set; }
+
+        /// <summary>
+        /// 閫氶亾鍙�1
+        /// </summary>
+        public string AisleOne { get; set; }
+
+        /// <summary>
+        /// 閫氶亾鍙�2
+        /// </summary>
+        public string AisleTwo { get; set; }
+
         /// <summary>
         /// 鍒涘缓鏃ユ湡
         /// </summary>
diff --git a/Wms/Model/ModelVm/SysVm/AreaVm.cs b/Wms/Model/ModelVm/SysVm/AreaVm.cs
index 3034b77..52a00d2 100644
--- a/Wms/Model/ModelVm/SysVm/AreaVm.cs
+++ b/Wms/Model/ModelVm/SysVm/AreaVm.cs
@@ -35,7 +35,11 @@
         /// 瀛樺偍鐜
         /// </summary>
         public string Temperature { get; set; }
-        
+        /// <summary>
+        /// 璁惧缂栫爜
+        /// </summary>
+        public string DeviceCode { get; set; }
+
     }
     /// <summary>
     /// 淇敼鍖哄煙鐘舵�乵odel
diff --git a/Wms/Model/ModelVm/SysVm/LocateVm.cs b/Wms/Model/ModelVm/SysVm/LocateVm.cs
index f50f8ab..6e33c1c 100644
--- a/Wms/Model/ModelVm/SysVm/LocateVm.cs
+++ b/Wms/Model/ModelVm/SysVm/LocateVm.cs
@@ -17,7 +17,8 @@
         public int Row { get; set; }
         public int Col { get; set; }
         public int Layer { get; set; }
-        public string Depth { get; set; }
+        public int Depth { get; set; }
+        public int AisleNum { get; set; }
     }
     /// <summary>
     /// 淇敼鍌ㄤ綅闆嗗悎model
diff --git a/Wms/Model/ModelVm/SysVm/PalletVm.cs b/Wms/Model/ModelVm/SysVm/PalletVm.cs
index 982d9e4..5771b92 100644
--- a/Wms/Model/ModelVm/SysVm/PalletVm.cs
+++ b/Wms/Model/ModelVm/SysVm/PalletVm.cs
@@ -26,7 +26,15 @@
         /// 缁勬暟
         /// </summary>
         public int GroupCount { get; set; }
-        
+        /// <summary>
+        /// 妗跺彿
+        /// </summary>
+        public string PalletNo { get; set; }
+        /// <summary>
+        /// 鍌ㄤ綅鍦板潃
+        /// </summary>
+        public string LocatNo { get; set; }
+
     }
     
 }
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index c4d2e1f..05fc122 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -325,7 +325,7 @@
                         }
                         //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
                         // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
-                        if (model.Type == "1" || model.Type == "5" || model.Type == "6" || model.Type == "7")
+                        if (model.Type == "5" || model.Type == "6" || model.Type == "7")//model.Type == "1" || 
                         {
                             if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
                             {
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 0586c97..e904d0f 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -983,42 +983,42 @@
 
                 }).ToList();
                 //搴撳瓨鎬昏〃
-                var stock = stockRst.GetAllAsync().Select(it => new ExStockInfoDto
-                {
-                    SkuNo = it.SkuNo,
-                    SkuName = it.SkuName,
-                    LotNo = it.LotNo,
-                    Standard = it.Standard,
-                    //Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty,
-                    Qty = it.Qty - it.LockQty - it.FrozenQty,
+                //var stock = stockRst.GetAllAsync().Select(it => new ExStockInfoDto
+                //{
+                //    SkuNo = it.SkuNo,
+                //    SkuName = it.SkuName,
+                //    LotNo = it.LotNo,
+                //    Standard = it.Standard,
+                //    //Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty,
+                //    Qty = it.Qty - it.LockQty - it.FrozenQty,
 
-                }).ToList();
+                //}).ToList();
 
-                foreach (var l in stockDetail.ToArray())
-                {
-                    var fq = stock.Where(s => s.SkuNo == l.SkuNo);
-                    if (!string.IsNullOrWhiteSpace(l.LotNo))
-                    {
-                        fq = fq.Where(s => s.LotNo == l.LotNo);
-                    }
-                    else
-                    {
-                        fq = fq.Where(s => string.IsNullOrWhiteSpace(s.LotNo));
-                    }
-                    var f = fq.FirstOrDefault();
-                    if (f == null)
-                    {
-                        throw new Exception("搴撳瓨淇℃伅閿欒锛岃鏍稿疄");
-                    }
-                    if (f.Qty != null && f.Qty.Value < l.Qty)
-                    {
-                        l.Qty = f.Qty.Value;
-                    }
-                    if (l.Qty <= 0)
-                    {
-                        stockDetail.Remove(l);
-                    }
-                }
+                //foreach (var l in stockDetail.ToArray())
+                //{
+                //    var fq = stock.Where(s => s.SkuNo == l.SkuNo);
+                //    if (!string.IsNullOrWhiteSpace(l.LotNo))
+                //    {
+                //        fq = fq.Where(s => s.LotNo == l.LotNo);
+                //    }
+                //    else
+                //    {
+                //        fq = fq.Where(s => string.IsNullOrWhiteSpace(s.LotNo));
+                //    }
+                //    var f = fq.FirstOrDefault();
+                //    if (f == null)
+                //    {
+                //        throw new Exception("搴撳瓨淇℃伅閿欒锛岃鏍稿疄");
+                //    }
+                //    if (f.Qty != null && f.Qty.Value < l.Qty)
+                //    {
+                //        l.Qty = f.Qty.Value;
+                //    }
+                //    if (l.Qty <= 0)
+                //    {
+                //        stockDetail.Remove(l);
+                //    }
+                //}
 
                 return stockDetail;
 
diff --git a/Wms/WMS.BLL/BllTransServer/NoticeServer.cs b/Wms/WMS.BLL/BllTransServer/NoticeServer.cs
index 32f8b77..78fd9f2 100644
--- a/Wms/WMS.BLL/BllTransServer/NoticeServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/NoticeServer.cs
@@ -298,95 +298,95 @@
                         //鏇存柊鍌ㄤ綅鐘舵��
                         Db.Updateable(locatInfo).ExecuteCommand();
 
-                        #region 璐ㄦ璇烽獙
-                        var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == noticeDetail.SkuNo && m.LotNo == noticeDetail.LotNo && m.SupplierLot == noticeDetail.SupplierLot);
-                        if (qualityRequest == null)
-                        {
-                            //璐ㄦ璇烽獙鍗曚俊鎭�
-                            string qcNo = new Common().GetMaxNo("QC");
-                            qualityRequest = new BllQualityInspectionRequest();
-                            qualityRequest.QcNo = qcNo;
-                            qualityRequest.Status = "0";
-                            qualityRequest.SkuNo = noticeDetail.SkuNo;
-                            qualityRequest.SkuName = noticeDetail.SkuName;
-                            qualityRequest.LotNo = noticeDetail.LotNo;
-                            qualityRequest.SupplierLot = noticeDetail.SupplierLot;
-                            qualityRequest.Qty = noticeDetail.Qty;
-                            qualityRequest.SamplingQty = 0;
-                            qualityRequest.ASNNo = noticeDetail.ASNNo;
-                            qualityRequest.CreateUser = 0;
-                            qualityRequest.CreateTime = comTime;
+                        #region 璐ㄦ璇烽獙锛屽幓鎺塎ES
+                        //var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == noticeDetail.SkuNo && m.LotNo == noticeDetail.LotNo && m.SupplierLot == noticeDetail.SupplierLot);
+                        //if (qualityRequest == null)
+                        //{
+                        //    //璐ㄦ璇烽獙鍗曚俊鎭�
+                        //    string qcNo = new Common().GetMaxNo("QC");
+                        //    qualityRequest = new BllQualityInspectionRequest();
+                        //    qualityRequest.QcNo = qcNo;
+                        //    qualityRequest.Status = "0";
+                        //    qualityRequest.SkuNo = noticeDetail.SkuNo;
+                        //    qualityRequest.SkuName = noticeDetail.SkuName;
+                        //    qualityRequest.LotNo = noticeDetail.LotNo;
+                        //    qualityRequest.SupplierLot = noticeDetail.SupplierLot;
+                        //    qualityRequest.Qty = noticeDetail.Qty;
+                        //    qualityRequest.SamplingQty = 0;
+                        //    qualityRequest.ASNNo = noticeDetail.ASNNo;
+                        //    qualityRequest.CreateUser = 0;
+                        //    qualityRequest.CreateTime = comTime;
 
-                            // 璁板綍浠诲姟鏃ュ織
-                            var taskNo = new Common().GetMaxNo("TK");
-                            var exTask = new LogTask()
-                            {
-                                TaskNo = taskNo,
-                                Sender = "WMS",
-                                Receiver = "Limes",
-                                IsSuccess = 0,//鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-                                StartLocat = "",//璧峰浣嶇疆
-                                PalletNo = "",//鎵樼洏鐮�
-                                IsSend = 1,//鏄惁鍙啀娆′笅鍙�
-                                IsCancel = 1,//鏄惁鍙彇娑�
-                                IsFinish = 1,//鏄惁鍙畬鎴�    
-                                Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
-                                OrderType = "5",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗� 4 鍙栨牱鍑哄簱鍗� 5 鍏朵粬
-                                EndLocat = "",//鐩爣浣嶇疆
-                                Type = "3",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
-                                Msg = "璇烽獙浠诲姟"
-                            };
-                            // 鎻掑叆浠诲姟鏃ュ織
-                            Db.Insertable(exTask).ExecuteCommand();
+                        //    // 璁板綍浠诲姟鏃ュ織
+                        //    var taskNo = new Common().GetMaxNo("TK");
+                        //    var exTask = new LogTask()
+                        //    {
+                        //        TaskNo = taskNo,
+                        //        Sender = "WMS",
+                        //        Receiver = "Limes",
+                        //        IsSuccess = 0,//鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+                        //        StartLocat = "",//璧峰浣嶇疆
+                        //        PalletNo = "",//鎵樼洏鐮�
+                        //        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        //        IsCancel = 1,//鏄惁鍙彇娑�
+                        //        IsFinish = 1,//鏄惁鍙畬鎴�    
+                        //        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        //        OrderType = "5",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗� 4 鍙栨牱鍑哄簱鍗� 5 鍏朵粬
+                        //        EndLocat = "",//鐩爣浣嶇疆
+                        //        Type = "3",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        //        Msg = "璇烽獙浠诲姟"
+                        //    };
+                        //    // 鎻掑叆浠诲姟鏃ュ織
+                        //    Db.Insertable(exTask).ExecuteCommand();
 
-                            // 璋冪敤Limes鎺ュ彛鍙戣捣璇烽獙
-                            var sendModel = new SendLimesModel()
-                            {
-                                QcNo = qualityRequest.QcNo,
-                                SkuNo = qualityRequest.SkuNo,
-                                Qty = qualityRequest.Qty.ToString(),
-                                LotNo = qualityRequest.LotNo,
-                                SupplierLot = qualityRequest.SupplierLot,
-                                RequestUser = "",                       // 璇烽獙浜�
-                            };
-                            var jsonData = JsonConvert.SerializeObject(sendModel);
-                            string response = "";
-                            try
-                            {
-                                var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
-                                //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Limes绯荤粺鍙戣捣璇烽獙", "Limes");
-                                var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+                        //    // 璋冪敤Limes鎺ュ彛鍙戣捣璇烽獙
+                        //    var sendModel = new SendLimesModel()
+                        //    {
+                        //        QcNo = qualityRequest.QcNo,
+                        //        SkuNo = qualityRequest.SkuNo,
+                        //        Qty = qualityRequest.Qty.ToString(),
+                        //        LotNo = qualityRequest.LotNo,
+                        //        SupplierLot = qualityRequest.SupplierLot,
+                        //        RequestUser = "",                       // 璇烽獙浜�
+                        //    };
+                        //    var jsonData = JsonConvert.SerializeObject(sendModel);
+                        //    string response = "";
+                        //    try
+                        //    {
+                        //        var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                        //        //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Limes绯荤粺鍙戣捣璇烽獙", "Limes");
+                        //        var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
 
-                                ////瑙f瀽杩斿洖鏁版嵁 
-                                //var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
-                                List<string> list1 = new List<string>();
-                                list1.Add(taskNo);
-                                //if (limesModel.Success == 0)
-                                //{
-                                //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
-                                new TaskServer().EditTaskIssueOk(list1, time1, time2);
+                        //        ////瑙f瀽杩斿洖鏁版嵁 
+                        //        //var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
+                        //        List<string> list1 = new List<string>();
+                        //        list1.Add(taskNo);
+                        //        //if (limesModel.Success == 0)
+                        //        //{
+                        //        //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                        //        new TaskServer().EditTaskIssueOk(list1, time1, time2);
 
-                                // 鏇存柊璇烽獙鍗曚俊鎭�
-                                qualityRequest.Status = "1";
-                                qualityRequest.SamplingQty = 10;//decimal.Parse(limesModel.SamplingQty);
-                                qualityRequest.RequestUser = 0;
-                                qualityRequest.RequestTime = DateTime.Now;
-                                qualityRequest.UpdateTime = DateTime.Now;
-                                qualityRequest.UpdateUser = 0;
-                                //娣诲姞璐ㄦ璇烽獙鍗�
-                                Db.Insertable(qualityRequest).ExecuteCommand();
-                                //}
-                                //if (limesModel.Success == -1)
-                                //{
-                                //    new TaskServer().EditTaskIssueNo(list1, time1, time2,limesModel.Message);
-                                //    throw new Exception(limesModel.Message);
-                                //}
-                            }
-                            catch (Exception ex)
-                            {
-                                throw new Exception(ex.Message);
-                            }
-                        }
+                        //        // 鏇存柊璇烽獙鍗曚俊鎭�
+                        //        qualityRequest.Status = "1";
+                        //        qualityRequest.SamplingQty = 10;//decimal.Parse(limesModel.SamplingQty);
+                        //        qualityRequest.RequestUser = 0;
+                        //        qualityRequest.RequestTime = DateTime.Now;
+                        //        qualityRequest.UpdateTime = DateTime.Now;
+                        //        qualityRequest.UpdateUser = 0;
+                        //        //娣诲姞璐ㄦ璇烽獙鍗�
+                        //        Db.Insertable(qualityRequest).ExecuteCommand();
+                        //        //}
+                        //        //if (limesModel.Success == -1)
+                        //        //{
+                        //        //    new TaskServer().EditTaskIssueNo(list1, time1, time2,limesModel.Message);
+                        //        //    throw new Exception(limesModel.Message);
+                        //        //}
+                        //    }
+                        //    catch (Exception ex)
+                        //    {
+                        //        throw new Exception(ex.Message);
+                        //    }
+                        //}
                         #endregion
 
                         break;
@@ -585,8 +585,10 @@
                         //淇敼搴撳瓨鏄庣粏
                         Db.Updateable(sd3).ExecuteCommand();
 
+                        #region 鍘绘帀MES
                         //鍥炰紶妗剁姸鎬佺粰MES
-                        BackPalletStatus(taskInfo.PalletNo, sd3.PalletStatus);
+                        //BackPalletStatus(taskInfo.PalletNo, sd3.PalletStatus);
+                        #endregion
 
                         break;    
                     #endregion
diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index bd8aed5..2570700 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -1,8 +1,10 @@
-锘縰sing Newtonsoft.Json;
+锘縰sing Model.InterFaceModel;
+using Newtonsoft.Json;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Policy;
 using System.Text;
 using Utility.Tools;
 using WMS.DAL;
@@ -26,19 +28,28 @@
         /// <param name="warehouseno">搴撳尯</param>
         /// <param name="type">鍙枡绫诲瀷</param>
         /// <returns></returns>
-        public void GetPalletNo(Pallnetmsg pallnetmsg)
+        public void GetPalletNo(Pallnetmsg pallnetmsg,string url)
         {
             DataStockDetail pallet = new DataStockDetail();
             try
             {
-                var house = "W01";//鍙《浣嶇疆锛屽悗缁牴鎹綅缃叧鑱旀垨瀹氫箟锛屾潵鍒ゆ柇鍙《浣嶇疆鎵�灞炶溅闂�
-                var url = "";//鍥炰紶MES鐨勬帴鍙e湴鍧�
+                if (string.IsNullOrEmpty(pallnetmsg.Location))
+                {
+                    throw new Exception("璁惧浣嶇疆涓嶅彲涓虹┖");
+                }
+                var locatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == pallnetmsg.Location);
+                if (locatInfo == null)
+                {
+                    throw new Exception("璁惧鍌ㄤ綅淇℃伅涓嶅瓨鍦�");
+                }
+                var house = locatInfo.WareHouseNo;//鍙《浣嶇疆锛屽悗缁牴鎹綅缃叧鑱旀垨瀹氫箟锛屾潵鍒ゆ柇鍙《浣嶇疆鎵�灞炶溅闂�
+                var urlMes = "";//鍥炰紶MES鐨勬帴鍙e湴鍧�
                 var noticeno = "0";//鍑哄叆搴撳崟鎹槑缁咺D
                 var sql = "select PalletNo,LocatNo from DataStockDetail where Status = '0'";
                 switch (pallnetmsg.Type)
                 {
                     case "0"://鍙噣妗�
-                        sql += $"and WareHouseNo = '{house}' and AreaNo like '%01' and PalletStatus = '0' order by CreateTime desc";
+                        sql += $"and WareHouseNo = '{house}' and (AreaNo like '%01' or AreaNo like '%11' or AreaNo like '%21' or AreaNo like '%31') and PalletStatus = '0' order by CreateTime desc";
                         pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
                         if (pallet == null)
                         {
@@ -62,7 +73,7 @@
                         }
                         noticeno = ArriveMes.Id.ToString();*/
                         //鏌ユ壘搴撳瓨涓槸鍚︽湁鍙敤鐨勬鎵规鐨勬贩鏂欐《
-                        sql= $@"select PalletNo,LocatNo from DataStockDetail where LotNo =  '{pallnetmsg.LotNo}'and AreaNo like '%02'
+                        sql= $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and  (AreaNo like '%02' or AreaNo like '%12' or AreaNo like '%22' or AreaNo like '%32')
                                    and WareHouseNo = '{house}' and status = '0' and PalletStatus = '1' order by CompleteTime desc";
                         pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
                         if (pallet == null)
@@ -87,7 +98,7 @@
                         }
                         noticeno = bllSo.Id.ToString();
                         //鏌ユ壘搴撳瓨涓槸鍚︽湁姝ゆ壒娆$殑鍚堟牸涓嬫枡妗�
-                        sql = $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%03' 
+                        sql = $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and (AreaNo like '%03' or AreaNo like '%13' or AreaNo like '%23' or AreaNo like '%33')
                                     and WareHouseNo = '{house}' and status = '0' and PalletStatus = '2' and InspectStatus = '1' order by CompleteTime desc";
                         pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
                         if (pallet == null)
@@ -97,7 +108,7 @@
 
                         break;
                     case "3"://鍙剰妗�
-                        sql += $"and WareHouseNo = '{house}' and AreaNo like '%04' and PalletStatus='3' order by CreateTime desc";
+                        sql += $"and WareHouseNo = '{house}' and  (AreaNo like '%04' or AreaNo like '%14' or AreaNo like '%24' or AreaNo like '%34') and PalletStatus='3' order by CreateTime desc";
                         List<DataStockDetail> palletList = Db.Ado.SqlQuery<DataStockDetail>(sql).ToList();
                         if (palletList.Count <= 0)
                         {
@@ -106,51 +117,68 @@
                         //閬嶅巻搴撳瓨鑴忔《锛岃繑鍥濵ES楠岃瘉
                         foreach (var item in palletList)
                         {
-                            string jsonReq = JsonConvert.SerializeObject(item.PalletNo);
-                            var response = HttpHelper.DoPost(url, jsonReq, "鍥炰紶MES鑴忔《缂栧彿", "RCS").ToString();
-                            var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
-                            if (obj.Success == "0")
-                            {
-                                if (obj.Result != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
-                                {
-                                    item.Status = "5";//寮傚父鍐荤粨
-                                    //淇敼璇ユ《搴撳瓨鐘舵��
-                                    Db.Updateable(item).ExecuteCommand();
+                            #region 鍘绘帀MES
+                            //string jsonReq = JsonConvert.SerializeObject(item.PalletNo);
+                            //var response = HttpHelper.DoPost(urlMes, jsonReq, "鍥炰紶MES鑴忔《缂栧彿", "RCS").ToString();
+                            //var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
+                            //if (obj.Success == "0")
+                            //{
+                            //    if (obj.Result != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
+                            //    {
+                            //        item.Status = "5";//寮傚父鍐荤粨
+                            //        //淇敼璇ユ《搴撳瓨鐘舵��
+                            //        Db.Updateable(item).ExecuteCommand();
 
-                                    continue;
-                                }
-                                //涓嬪彂灏忚溅浠诲姟
-                                var task2 = new TaskDetial
-                                {
-                                    Startport = item.LocatNo,
-                                    Endport = pallnetmsg.Location,
-                                    Pallno = item.PalletNo,
-                                    Type = pallnetmsg.Type,
-                                    Crtype = "1",
-                                    Noticedetailno = int.Parse(noticeno),
-                                };
-                                CreateLotTask(task2);
-                                return;
-                            }
-                            else
+                            //        continue;
+                            //    }
+                            //    //涓嬪彂灏忚溅浠诲姟
+                            //    var task2 = new TaskDetial
+                            //    {
+                            //        Startport = item.LocatNo,
+                            //        Endport = pallnetmsg.Location,
+                            //        Pallno = item.PalletNo,
+                            //        Type = pallnetmsg.Type,
+                            //        Crtype = "1",
+                            //        Noticedetailno = int.Parse(noticeno),
+                            //    };
+                            //    CreateLotTask(task2);
+                            //    return;
+                            //}
+                            //else
+                            //{
+                            //    throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒");
+                            //}
+                            #endregion
+
+                            //涓嬪彂灏忚溅浠诲姟
+                            var task2 = new TaskDetial
                             {
-                                throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒");
-                            }
+                                Startport = item.LocatNo,
+                                Endport = pallnetmsg.Location,
+                                Pallno = item.PalletNo,
+                                Type = pallnetmsg.Type,
+                                Crtype = "1",
+                                Noticedetailno = int.Parse(noticeno),
+                            };
+                            CreateLotTask(task2, url);
+                            return;
                         }
                         break;
+                    default:
+                        throw new Exception("浠诲姟绫诲瀷鏃犳晥");
                 }
                 //涓嬪彂灏忚溅浠诲姟
                 var task = new TaskDetial
                 {
-                    Startport = pallet.LocatNo,
-                    Endport = pallnetmsg.Location,
-                    Pallno = pallet.PalletNo,
-                    Type = pallnetmsg.Type,
+                    Startport = pallet.LocatNo,//璧峰浣嶇疆
+                    Endport = pallnetmsg.Location,//鐩爣浣嶇疆
+                    Pallno = pallet.PalletNo,//妗跺彿
+                    Type = pallnetmsg.Type,//妗剁被鍨�
                     Crtype = "1",
                     Noticedetailno = int.Parse(noticeno),
                     LotNo = pallnetmsg.LotNo,
                 };
-                CreateLotTask(task);
+                CreateLotTask(task, url);
                 return;
             }
             catch (Exception ex)
@@ -165,7 +193,7 @@
         /// </summary>
         /// <param name="PalletNo"></param>
         /// <returns></returns>
-        public void ChangePalletStatus(string PalletNo)
+        public void ChangePalletStatus(string PalletNo,string url)
         {
             try
             {
@@ -204,7 +232,7 @@
                         Crtype = "2",
                         Noticedetailno = 0,
                     };
-                    CreateLotTask(ztask);
+                    CreateLotTask(ztask,url);
 
                     statrtLocat.Status = "3";//鍑哄簱涓�
                     //淇敼璧峰鍌ㄤ綅鐘舵��
@@ -228,7 +256,7 @@
         /// MES涓嬪彂娓呮礂閿佸畾鑴忔《
         /// </summary>
         /// <param name="pallnetmsg"></param>
-        public void CleanPallet(Pallnetmsg pallnetmsg)
+        public void CleanPallet(Pallnetmsg pallnetmsg,string url)
         {
             try
             {
@@ -248,7 +276,7 @@
                     Noticedetailno = 0,
                     LotNo = "",
                 };
-                CreateLotTask(task);
+                CreateLotTask(task,url);
             }
             catch (Exception ex)
             {
@@ -261,7 +289,7 @@
         /// </summary>
         /// <param name="PalletNo"></param>
         /// <returns></returns>
-        public void ApplyLocatNo(Pallnetmsg pallnetmsg)
+        public void ApplyLocatNo(Pallnetmsg pallnetmsg,string url)
         {
             var sql = $"select LocatNo from SysStorageLocat where status = '0'";
             var sql2 = "";
@@ -271,10 +299,13 @@
             BllArrivalNoticeDetail ArriveMes = new BllArrivalNoticeDetail();
             try
             {
+                //鍖哄煙淇℃伅
+                var areaInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode == pallnetmsg.Location);
+                house = areaInfo.WareHouseNo;//鎵�灞炰粨搴�
                 switch (pallnetmsg.Type)
                 {
                     case "0"://鍑�妗剁敵璇峰偍浣�
-                        sql += $"and AreaNo like '%01' and WareHouseNo = '{house}'";
+                        sql += $"and (AreaNo like '%01' or AreaNo like '%11' or AreaNo like '%21' or AreaNo like '%31') and WareHouseNo = '{house}'";
                         loction = Db.Ado.SqlQuery<SysStorageLocat>(sql).OrderByDescending(a => a.CreateTime).FirstOrDefault();
                         if (loction == null)
                         {
@@ -295,7 +326,7 @@
                             throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗�");
                         }
                         noticeno = ArriveMes.Id.ToString();*/
-                        sql += $"and AreaNo  like '%02' and WareHouseNo = '{house}'";
+                        sql += $"and (AreaNo like '%02' or AreaNo like '%12' or AreaNo like '%22' or AreaNo like '%32') and WareHouseNo = '{house}'";
                         loction = Db.Ado.SqlQuery<SysStorageLocat>(sql).OrderByDescending(a => a.CreateTime).FirstOrDefault();
                         if (loction == null)
                         {
@@ -316,7 +347,7 @@
                             throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗�");
                         }
                         noticeno = ArriveMes.Id.ToString();
-                        sql += $"and AreaNo like '%03' and WareHouseNo = '{house}'";
+                        sql += $"and (AreaNo like '%03' or AreaNo like '%13' or AreaNo like '%23' or AreaNo like '%33') and WareHouseNo = '{house}'";
                         loction = Db.Ado.SqlQuery<SysStorageLocat>(sql).OrderByDescending(a => a.CreateTime).FirstOrDefault();
                         if (loction == null)
                         {
@@ -324,7 +355,7 @@
                         }
                         break;
                     case "3"://鑴忔《鐢宠鍌ㄤ綅
-                        sql += $"and AreaNo like '%04' and WareHouseNo = '{house}'";
+                        sql += $"and (AreaNo like '%04' or AreaNo like '%14' or AreaNo like '%24' or AreaNo like '%34') and WareHouseNo = '{house}'";
                         loction = Db.Ado.SqlQuery<SysStorageLocat>(sql).OrderByDescending(a => a.CreateTime).FirstOrDefault();
                         if (loction == null)
                         {
@@ -342,7 +373,7 @@
                     Noticedetailno = int.Parse(noticeno),
                     LotNo = pallnetmsg.LotNo,
                 };
-                CreateLotTask(task);
+                CreateLotTask(task,url);
             }
             catch (Exception)
             {
@@ -351,95 +382,12 @@
             }
         }
 
-
-        /// <summary>
-        /// RCS鐢熸垚浠诲姟
-        /// </summary>
-        /// <param name="taskCode"></param>
-        /// <param name="taskType"></param>
-        /// <param name="startPos">璧峰浣嶇疆</param>
-        /// <param name="endPos">鐩殑浣嶇疆</param>
-        /// <param name="agvCode"></param>
-        /// <param name="url">RCS鍦板潃</param>
-        /// <returns></returns>
-        public genAgvSchedulingTaskRep genAgvSchedulingTask(AgvTask agv,string url)
-        {
-            try
-            {
-                genAgvSchedulingTaskRep cbrep = new genAgvSchedulingTaskRep();
-                PositionCodePath pcd1 = new PositionCodePath()
-                {
-                    positionCode = agv.startPos.ToString(),
-                    type = "00",
-                };
-                PositionCodePath pcd2 = new PositionCodePath()
-                {
-                    positionCode = agv.endPos.ToString(),
-                    type = "00",
-                };
-                List<PositionCodePath> lst = new List<PositionCodePath>();
-                lst.Add(pcd1);
-                lst.Add(pcd2);
-                genAgvSchedulingTaskReq cbreq = new genAgvSchedulingTaskReq()
-                {
-                    reqCode = agv.taskCode.ToString(),
-                    taskCode = agv.taskCode.ToString(),
-                    taskTyp = agv.taskType,
-                    positionCodePath = lst,
-                    podCode = "",
-                    agvCode = agv.agvCode,
-                    ctnrTyp = "1",
-                    //ctnrCode="2",
-
-                };
-                cbrep = genAgvSchedulingTask(cbreq,url);
-                
-
-                return cbrep;
-            }
-            catch (Exception ex) { throw ex; }
-        }
-
-        /// <summary>
-        /// 鐢熸垚浠诲姟鍗�
-        /// </summary>
-        /// <param name="req"></param>
-        /// <returns></returns>
-        private genAgvSchedulingTaskRep genAgvSchedulingTask(genAgvSchedulingTaskReq req,string url)
-        {
-            genAgvSchedulingTaskRep rep = new genAgvSchedulingTaskRep()
-            {
-                code = "-1",
-                message = "鐢熶骇浠诲姟鍗曞け璐�"
-            };
-            if (req == null)
-            {
-                return rep;
-            }
-            try
-            {
-                string jsonReq = JsonConvert.SerializeObject(req);
-
-                string jsonRep = HttpHelper.DoPost(url + "/genAgvSchedulingTask", jsonReq,"灏忚溅浠诲姟涓嬪彂","RCS");
-                jsonRep = jsonRep.TrimStart('\"');
-                jsonRep = jsonRep.TrimEnd('\"');
-                jsonRep = jsonRep.Replace("\\", "");
-                rep = JsonConvert.DeserializeObject<genAgvSchedulingTaskRep>(jsonRep);
-                return rep;
-            }
-            catch (Exception ex)
-            {
-                throw ex;
-            }
-        }
-
-
         /// <summary>
         /// 鐢熸垚浠诲姟鍗曞埌LogTask
         /// </summary>
         /// <param name="req"></param>
         /// <returns></returns>
-        public void CreateLotTask(TaskDetial taskDetial)
+        public void CreateLotTask(TaskDetial taskDetial,string url)
         {
             try
             {
@@ -529,44 +477,90 @@
                     NoticeDetailNo = int.Parse(taskDetial.Noticedetailno.ToString()),
                     Msg = bz, //鍏抽敭淇℃伅
                 };
-                var Agv = new AgvTask
+
+                #region 鍛煎彨灏忚溅浠g爜
+                List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+
+                List<PositionCodePath> pahtList = new List<PositionCodePath>();
+                //璧峰浣嶇疆
+                PositionCodePath path1 = new PositionCodePath();
+                path1.positionCode = taskDetial.Startport;
+                path1.type = "05";
+
+                pahtList.Add(path1);
+
+                //鐩爣浣嶇疆
+                PositionCodePath path2 = new PositionCodePath();
+                path2.positionCode = taskDetial.Endport;
+                path2.type = "00";
+
+                pahtList.Add(path2);
+                //涓嬭溅浠诲姟鍗�
+                AgvSchedulingTask agvTask = new AgvSchedulingTask();
+                agvTask.reqCode = logTaskEntry.TaskNo;//浠诲姟鍙�
+                agvTask.ctnrTyp = "3";
+                agvTask.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//璇锋眰鏃堕棿
+                agvTask.taskTyp = "Z2";//浠诲姟绫诲瀷 绾胯竟鍒版墭鐩樻敹闆嗗櫒 Z1锛� 鎵樼洏鍨涚敵璇峰叆搴� Z2
+                agvTask.wbCode = "";
+                agvTask.positionCodePath = pahtList;//灏忚溅璺緞
+                agvTask.podCode = "";
+                agvTask.userCallCode = taskDetial.Endport;//鐩爣浣嶇疆
+
+                agvTaskList.Add(agvTask);
+
+                // 姝e紡杩愯绋嬪簭鏀惧紑
+                string str = "";
+                var list2 = agvTaskList.Select(m => m.reqCode).ToList();
+                var jsonData = JsonConvert.SerializeObject(agvTaskList);
+                jsonData = jsonData.Substring(1);
+                jsonData = jsonData.Substring(0, jsonData.Length - 1);
+                string response = "";
+
+                try
                 {
-                    taskCode = taskDetial.Taskno,
-                    taskType = taskDetial.Type,
-                    startPos = taskDetial.Startport,
-                    endPos = taskDetial.Endport,
-                    agvCode = "1",//鈥︹�﹂渶瑕佸拰AGV纭姝ゅ瓧娈靛��
-                };
-                
-                //璇锋眰灏忚溅
-                genAgvSchedulingTaskRep chrep =genAgvSchedulingTask(Agv, "url");
-                if (chrep.code != "0")
-                {
-                    logTaskEntry.IsSuccess = 0;
-                    Db.Insertable(logTaskEntry).ExecuteCommand();
-                    Db.CommitTran();
-                    throw new Exception("RCS浠诲姟涓嬪彂閿欒锛孯CS杩斿洖娑堟伅锛�" + chrep.message);
-                }
-                //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                logTaskEntry.IsSuccess = 1;
-                logTaskEntry.BackDate = DateTime.Now;
-                logTaskEntry.Status = "1";
-                if (taskDetial.Crtype == "0" || taskDetial.Crtype == "2")
-                {
-                    sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'";
-                    if (taskDetial.Type == "2")
+                    logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
+
+                    response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+                    //瑙f瀽杩斿洖鏁版嵁 
+                    var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+                    if (agvModel.Code == "0")
                     {
-                        sql2 = $"UPDATE DataStockDetail SET PalletStatus = '{taskDetial.Type}'" +
-                        $"where PalletNo = '{taskDetial.Pallno}'";
-                        Db.Ado.ExecuteCommand(sql2);
+                        str += "涓嬪彂鎴愬姛";
+
+                        //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                        logTaskEntry.IsSuccess = 1;
+                        logTaskEntry.BackDate = DateTime.Now;
+                        logTaskEntry.Status = "1";
+                        if (taskDetial.Crtype == "0" || taskDetial.Crtype == "2")
+                        {
+                            sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'";
+                            if (taskDetial.Type == "2")
+                            {
+                                sql2 = $"UPDATE DataStockDetail SET PalletStatus = '{taskDetial.Type}'" +
+                                $"where PalletNo = '{taskDetial.Pallno}'";
+                                Db.Ado.ExecuteCommand(sql2);
+                            }
+                        }
+                        else
+                        {
+                            sql = $"UPDATE SysStorageLocat SET Status = '3' where LocatNo = '{taskDetial.Startport}' ";
+                        }
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
+                        Db.Ado.ExecuteCommand(sql);
+                    }
+                    if (agvModel.Code == "1")
+                    {
+                        logTaskEntry.IsSuccess = 0;
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
+                        Db.CommitTran();
+                        throw new Exception("RCS浠诲姟涓嬪彂閿欒锛孯CS杩斿洖娑堟伅锛�" + agvModel.Message);
                     }
                 }
-                else
+                catch (Exception ex)
                 {
-                    sql = $"UPDATE SysStorageLocat SET Status = '3' where LocatNo = '{taskDetial.Startport}' ";
+                    throw new Exception(ex.Message);
                 }
-                Db.Insertable(logTaskEntry).ExecuteCommand();
-                Db.Ado.ExecuteCommand(sql);
+                #endregion
                 //鎻愪氦浜嬪姟
                 Db.CommitTran();
             }
diff --git a/Wms/WMS.BLL/SysServer/PalletsServer.cs b/Wms/WMS.BLL/SysServer/PalletsServer.cs
index adbdd82..622d79e 100644
--- a/Wms/WMS.BLL/SysServer/PalletsServer.cs
+++ b/Wms/WMS.BLL/SysServer/PalletsServer.cs
@@ -5,11 +5,13 @@
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
+using Model.InterFaceModel;
 using Model.ModelDto.LogDto;
 using Model.ModelDto.SysDto;
 using SqlSugar;
 using WMS.BLL.LogServer;
 using WMS.Entity.Context;
+using WMS.Entity.DataEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.ILogServer;
 using WMS.IBLL.ISysServer;
@@ -111,62 +113,111 @@
             }
         }
 
-        public async Task<bool> AddPallets(int groupCount, int userId)
+        /// <summary>
+        /// 娣诲姞妗朵俊鎭苟澧炲姞搴撳瓨
+        /// </summary>
+        /// <param name="palletNo"></param>
+        /// <param name="locatNo"></param>
+        /// <param name="userId"></param>
+        /// <exception cref="Exception"></exception>
+        public void AddPallets(string palletNo,string locatNo,int userId)
         {
+            var db = DataContext.Db;
             try
-            {
-                var db = DataContext.Db;
-                if (groupCount <= 0)
+            {                
+                if (string.IsNullOrEmpty(palletNo))
                 {
-                    throw new Exception("缁勬暟闇�澶т簬0");
+                    throw new Exception("璇疯緭鍏ユ《鍙�");
                 }
-
-                var pallNo = db.Queryable<SysPallets>().Max(m => m.PalletNo);
-
-                var str = pallNo.Substring(3, 5);
-                string remove = pallNo.Substring(0, 3);
-                int sibelius = Convert.ToInt16(str);
-                var num = 0;
-                for (int i = 0; i < groupCount; i++)
+                if (string.IsNullOrEmpty(locatNo))
                 {
-                    sibelius += 1;
-                    if (sibelius>99999)
-                    {
-                        throw new Exception("鎵樼洏鐮佷綅鏁板凡杈句笂绾�");
-                    }
-                    string code = remove + Convert.ToString(sibelius).PadLeft(5, '0');
-                    if (db.Queryable<SysPallets>().Count(m=>m.PalletNo == code)>=1)
-                    {
-                        continue;
-                    }
-                    var item = new SysPallets
-                    {
-                        PalletNo = code,
-                        Status = "0",
-                        Type = "0",
-                        CreateUser = userId
-                    };
-                    Thread.Sleep(100);
-                    num += db.Insertable(item).ExecuteCommand();
-                    if (num > 0)
-                    {
-                        if (groupCount > 1)
-                        {
-                            await _operation.InsertOperation("浠撳簱璁剧疆", "鏉$爜绠$悊", item.PalletNo, "鎵归噺娣诲姞", "鎵归噺娣诲姞鎵樼洏淇℃伅 鎵樼洏鍙凤細" + item.PalletNo, userId);
-                        }
-                        else
-                        {
-                            await _operation.InsertOperation("浠撳簱璁剧疆", "鏉$爜绠$悊", item.PalletNo, "娣诲姞", "娣诲姞鎵樼洏淇℃伅 鎵樼洏鍙凤細" + item.PalletNo, userId);
-                        }
-                        
-                    }
+                    throw new Exception("璇疯緭鍏ュ偍浣嶅湴鍧�");
                 }
+                var palletModel = db.Queryable<SysPallets>().First(w => w.PalletNo == palletNo && w.IsDel == "0");
+                if (palletModel != null)
+                {
+                    throw new Exception("璇ユ《鍙峰凡瀛樺湪");
+                }
+                var locatModel= db.Queryable<SysStorageLocat>().First(w => w.LocatNo == locatNo && w.IsDel == "0");
+                if (locatModel == null)
+                {
+                    throw new Exception("鍌ㄤ綅鍦板潃涓嶅瓨鍦�");
+                }
+                if (locatModel.Status != "0")
+                {
+                    throw new Exception("璇ュ偍浣嶅湴鍧�闈炵┖闂茬姸鎬�");
+                }
+                var areaModel = db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.AreaNo == locatModel.AreaNo);
+                if (areaModel == null)
+                {
+                    throw new Exception("鍌ㄤ綅鍦板潃鎵�灞炲尯鍩熶笉瀛樺湪");
+                }
+                if (!areaModel.AreaName.Contains("鍑�妗�"))
+                {
+                    throw new Exception("鏂版坊鍔犵殑妗跺彧鑳界粦瀹氬噣妗跺尯");
+                }
+                //寮�鍚簨鍔�
+                db.BeginTran();
 
-                return num > 0;
+                palletModel = new SysPallets();
+                palletModel.PalletNo = palletNo;
+                palletModel.Type = "0";
+                palletModel.Status = "0";
+                palletModel.CreateUser = userId;
+                //娣诲姞妗�
+                db.Insertable(palletModel).ExecuteCommand();
 
+                var comTime = DateTime.Now;
+                var model = new DataStockDetail()
+                {
+                    ASNNo = "",
+                    Qty = 0,
+                    LockQty = 0,
+                    FrozenQty = 0,
+                    InspectQty = 0,
+                    WareHouseNo = locatModel.WareHouseNo,//鎵�灞炰粨搴�
+                    RoadwayNo = "",//鎵�灞炲贩閬�
+                    AreaNo = locatModel.AreaNo,//鎵�灞炲尯鍩�
+                    LocatNo = locatModel.LocatNo,//鍌ㄤ綅鍦板潃
+                    PalletNo = palletNo,
+                    PalletNo2 = "",
+                    PalletNo3 = "",
+                    PalletTags = "0",
+                    CompleteTime = comTime,
+                    ProductionTime = null,
+                    ExpirationTime = null,
+                    Status = "0",
+                    InspectMark = "0",
+                    InspectStatus = "0",//寰呮楠�
+                    BitPalletMark = "0",
+                    PackagNo = "",
+                    IsBale = "0",
+                    IsBelt = "0",
+
+                    SkuNo = "",
+                    SkuName = "",
+                    LotNo = "",
+
+                    PalletStatus = "0",//鍑�妗�
+
+                    IsDel = "0",
+                    CreateUser = userId,
+                    CreateTime = comTime
+                };
+                //鎻掑叆搴撳瓨鏄庣粏
+                db.Insertable(model).ExecuteCommand();
+
+                //鏇存柊鍌ㄤ綅鐘舵��
+                locatModel.Status = "1";//鏈夌墿鍝�
+                db.Updateable(locatModel).ExecuteCommand();
+
+                //鎻愪氦浜嬪姟
+                db.CommitTran();
             }
             catch (Exception e)
             {
+                //鍥炴粴浜嬪姟
+                db.RollbackTran();
                 throw new Exception(e.Message);
             }
         }
diff --git a/Wms/WMS.BLL/SysServer/StorageAreaServer.cs b/Wms/WMS.BLL/SysServer/StorageAreaServer.cs
index 1dc557a..8182074 100644
--- a/Wms/WMS.BLL/SysServer/StorageAreaServer.cs
+++ b/Wms/WMS.BLL/SysServer/StorageAreaServer.cs
@@ -69,11 +69,12 @@
                     TypeName = GetTypeName(m.Type),//绫诲埆鍚嶇О
                     Temp = m.Temperature,
                     TempName = m.TemperatureInfo == null ? "" : m.TemperatureInfo.DictName,
+                    DeviceCode=m.DeviceCode,
                     CreateTime = m.CreateTime,
                     CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.RealName,
                     UpdateTime = m.UpdateTime,
                     UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.RealName
-                }).ToList();
+                }).OrderBy(w=>w.WareHouseNo).OrderBy(w => w.AreaNo).ToList();
             }
             catch (Exception e)
             {
@@ -147,35 +148,20 @@
         {
             try
             {
-                string str = "";
-                //鍒ゆ柇鎵�灞炰粨搴撴槸鍚︿负绔嬩綋搴�
-                if (model.WareHouseNo != "W01")
+                string str = "";               
+                
+                var area = Db.Queryable<SysStorageArea>().First(a => a.IsDel == "0" && a.AreaNo == model.AreaNo);
+                if (area != null)
                 {
-                    str = "-1:鎵�灞炰粨搴撲笉涓虹珛浣撳簱锛岃閲嶆柊閫夋嫨锛�";
-                    return str;
+                    throw new Exception("褰撳墠鍖哄煙缂栫爜瀵瑰簲鐨勫尯鍩熷凡瀛樺湪");
                 }
-                //鑾峰彇绔嬩綋搴撴渶澶х紪鐮�
-                //var area = Db.Queryable<SysStorageArea>().Max(a => a.Id)(a => a.IsDel == "0" && a.WareHouseNo == "W01");
-                var area = Db.Queryable<SysStorageArea>().Where(a => a.IsDel == "0" && a.WareHouseNo == "W01").OrderByDescending(a=>a.CreateTime).First();
-                //楠岃瘉鏄惁瀛樺湪绔嬩綋搴撶涓�鏉″尯鍩熶俊鎭�
-                if (area == null)
+                if (!string.IsNullOrEmpty(model.DeviceCode))
                 {
-                    model.AreaNo = "A01";
-                }
-                else
-                {
-                    var arr = area.AreaNo.Split("A");
-                    int a = int.Parse(arr[1]) + 1;
-                    //鍒ゆ柇鏄惁灏忎簬10
-                    if (a < 10)
+                    var area2 = Db.Queryable<SysStorageArea>().First(a => a.IsDel == "0" && a.DeviceCode == model.AreaNo);
+                    if (area2 != null)
                     {
-                        model.AreaNo = "A0" + (int.Parse(arr[1]) + 1).ToString();
+                        throw new Exception("褰撳墠璁惧缂栫爜瀵瑰簲鐨勫尯鍩熷凡瀛樺湪");
                     }
-                    else
-                    {
-                        model.AreaNo = "A" + (int.Parse(arr[1]) + 1).ToString();
-                    }
-
                 }
                 Db.BeginTran();
 
@@ -184,6 +170,7 @@
                 {
                     AreaNo = model.AreaNo, //鍖哄煙缂栫爜
                     AreaName = model.AreaName, //鍖哄煙鍚嶇О
+                    DeviceCode=model.DeviceCode,//璁惧缂栫爜
                     WareHouseNo = model.WareHouseNo, //鎵�灞炰粨搴�
                     RoadwayNo = null, //鎵�灞炲贩閬�
                     Status = model.Status, //鏄惁鍚敤
@@ -220,16 +207,24 @@
         /// <param name="temp">瀛樺偍鐜</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns>鏄惁鎴愬姛</returns>
-        public bool EditStorageArea(int id, string name, int priority, string type, string temp, int userId)
+        public bool EditStorageArea(int id, string name, int priority, string type, string temp,string deviceCode, int userId)
         {
             try
             {
                 //鍒ゆ柇闄ゅ綋鍓峣d淇℃伅浠ュ鏄惁鍚湁缂栧彿鍜屽悕绉�
-                var bol = AreaRst.GetAllAsync()
-                    .Any(m => m.Id != id && m.AreaName == name.Trim());
-                if (bol)
+                //var bol = AreaRst.GetAllAsync()
+                //    .Any(m => m.Id != id && m.AreaName == name.Trim());
+                //if (bol)
+                //{
+                //    throw new Exception("褰撳墠鍖哄煙鍙锋垨鍖哄煙鍚嶇О宸插瓨鍦�");
+                //}
+                if (!string.IsNullOrEmpty(deviceCode))
                 {
-                    throw new Exception("褰撳墠鍖哄煙鍙锋垨鍖哄煙鍚嶇О宸插瓨鍦�");
+                    var bol2 = AreaRst.GetAllAsync().Any(m => m.Id != id && m.DeviceCode == deviceCode.Trim());
+                    if (bol2)
+                    {
+                        throw new Exception("褰撳墠璁惧缂栫爜瀵瑰簲鐨勫尯鍩熷凡瀛樺湪");
+                    }
                 }
 
                 var area = AreaRst.GetOneById(id);
@@ -242,6 +237,7 @@
                 area.Priority = priority;
                 area.Type = type;
                 area.Temperature = temp;
+                area.DeviceCode = deviceCode;
                 area.UpdateUser = userId;
                 area.UpdateTime = DateTime.Now;
                 var num = AreaRst.Edit(area);
diff --git a/Wms/WMS.BLL/SysServer/StorageLocatServer.cs b/Wms/WMS.BLL/SysServer/StorageLocatServer.cs
index fbbdd73..30f6152 100644
--- a/Wms/WMS.BLL/SysServer/StorageLocatServer.cs
+++ b/Wms/WMS.BLL/SysServer/StorageLocatServer.cs
@@ -87,6 +87,8 @@
                     Layer = m.Layer,
                     Height = m.Height,
                     Weight = m.Weight,
+                    AisleOne=m.AisleOne,
+                    AisleTwo=m.AisleTwo,
                     TempName = m.TemperatureInfo == null ? "" : m.TemperatureInfo.DictName,
                     CreateTime = m.CreateTime,
                     CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.UserName,
@@ -233,33 +235,48 @@
             try
             {
                 var q = 0;
-                // 鎺�(缁�)寰幆
-                for (int i = 1; i <= model.Row; i++)
+                List<SysStorageLocat> _list = new List<SysStorageLocat>();
+                // 鍒楀惊鐜�
+                for (int z = 1; z <= model.Col; z++)
                 {
-                    // 鍒楀惊鐜�
-                    for (int z = 1; z <= model.Col; z++)
+                    var locatInfo = new SysStorageLocat()
                     {
-                        q += await LocatRst.AddAsync(new SysStorageLocat()
-                        {
-                            // 鍖哄煙+鎺�+鍒�+灞�
-                            LocatNo = model.AreaNo + i.ToString().PadLeft(2, '0') + z.ToString().PadLeft(2, '0') + "01",
-                            WareHouseNo = model.HouseNo,
-                            RoadwayNo = "",
-                            AreaNo = model.AreaNo,
-                            Status = "0",
-                            AisleOne = "1",
-                            AisleTwo = "",
-                            Flag = "0",
-                            Depth = z.ToString(),
-                            Row = i,
-                            Column = z,
-                            Layer = 1,
-                            CreateUser = userId
-                        }); ;
-                    }
+                        // 鍖哄煙+鎺�+鍒�+娣卞害
+                        LocatNo = model.AreaNo + model.Row.ToString().PadLeft(3, '0') + z.ToString().PadLeft(2, '0'),
+                        WareHouseNo = model.HouseNo,
+                        RoadwayNo = "",
+                        AreaNo = model.AreaNo,
+                        Status = "0",
+                        AisleOne = "",
+                        AisleTwo = "",
+                        Flag = "0",
+                        Depth = "1",
+                        Row = model.Row,
+                        Column = z,
+                        Layer = 1,
+                        CreateUser = userId
+                    };
+                    _list.Add(locatInfo);
                 }
-
-                return q;
+                foreach (var item in _list)
+                {
+                    if (model.AisleNum > 0)
+                    {
+                        if (item.LocatNo != _list[0].LocatNo)
+                        {
+                            item.AisleOne = _list[0].LocatNo;
+                        }                        
+                        if (model.AisleNum > 1)
+                        {
+                            if (item.LocatNo != _list[model.Col-1].LocatNo)
+                            {
+                                item.AisleTwo = _list[model.Col - 1].LocatNo;
+                            }                                
+                        }
+                    }                    
+                    await LocatRst.AddAsync(item);
+                }
+                return _list.Count;
             }
             catch (Exception e)
             {
@@ -872,6 +889,6 @@
 
         }
 
-        #endregion
+        #endregion 
     }
 }
diff --git a/Wms/WMS.Entity/SysEntity/SysStorageArea.cs b/Wms/WMS.Entity/SysEntity/SysStorageArea.cs
index 59384d2..744454b 100644
--- a/Wms/WMS.Entity/SysEntity/SysStorageArea.cs
+++ b/Wms/WMS.Entity/SysEntity/SysStorageArea.cs
@@ -59,6 +59,10 @@
         /// Nullable:True
         /// </summary> 
         public string Temperature { get; set; }
+        /// <summary>
+        /// 璁惧缂栫爜
+        /// </summary>
+        public string DeviceCode { get; set; }
 
 
         [Navigate(NavigateType.OneToOne, nameof(WareHouseNo),nameof(SysWareHouse.WareHouseNo))]
diff --git a/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs b/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs
index e465c28..cabe10d 100644
--- a/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs
+++ b/Wms/WMS.IBLL/IBllTransServer/IRcsServer.cs
@@ -14,38 +14,26 @@
         /// <param name="warehouseno">搴撳尯</param>
         /// <param name="type">鍙枡绫诲瀷</param>
         /// <returns></returns>
-        public void GetPalletNo(Pallnetmsg pallnetmsg);
+        public void GetPalletNo(Pallnetmsg pallnetmsg, string url);
 
         /// <summary>
         /// 灏嗗噣妗舵敼涓鸿剰妗跺苟鎷夊埌鑴忔《鍖�
         /// </summary>
         /// <param name="PalletNo"></param>
         /// <returns></returns>
-        public void ChangePalletStatus(string PalletNo);
+        public void ChangePalletStatus(string PalletNo, string url);
 
         /// <summary>
         /// MES涓嬪彂娓呮礂閿佸畾鑴忔《
         /// </summary>
         /// <param name="pallnetmsg"></param>
-        public void CleanPallet(Pallnetmsg pallnetmsg);
+        public void CleanPallet(Pallnetmsg pallnetmsg, string url);
 
         /// <summary>
         /// 鐢宠鍌ㄤ綅
         /// </summary>
         /// <param name="PalletNo"></param>
         /// <returns></returns>
-        public void ApplyLocatNo(Pallnetmsg pallnetmsg);
-
-        /// <summary>
-        /// RCS鐢熸垚浠诲姟
-        /// </summary>
-        /// <param name="taskCode"></param>
-        /// <param name="taskType"></param>
-        /// <param name="startPos">璧峰浣嶇疆</param>
-        /// <param name="endPos">鐩殑浣嶇疆</param>
-        /// <param name="agvCode"></param>
-        /// <param name="url">RCS鍦板潃</param>
-        /// <returns></returns>
-        public genAgvSchedulingTaskRep genAgvSchedulingTask(AgvTask agvtask, string url);
+        public void ApplyLocatNo(Pallnetmsg pallnetmsg, string url);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs b/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs
index b9e1d3e..9d05244 100644
--- a/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs
@@ -28,11 +28,11 @@
         /// <returns></returns>
         string GetPalletsNo(string palletNo);
         /// <summary>
-        /// 娣诲姞鎵樼洏琛ㄤ俊鎭�
+        /// 娣诲姞妗朵俊鎭苟澧炲姞搴撳瓨
         /// </summary>
         /// <param name="groupCount">缁勬暟</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        Task<bool> AddPallets(int groupCount,int userId);
+        void AddPallets(string palletNo, string locatNo, int userId);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IStorageAreaServer.cs b/Wms/WMS.IBLL/ISysServer/IStorageAreaServer.cs
index cfc32fc..1585f4c 100644
--- a/Wms/WMS.IBLL/ISysServer/IStorageAreaServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IStorageAreaServer.cs
@@ -60,7 +60,7 @@
         /// <param name="temp">瀛樺偍鐜</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns>鏄惁鎴愬姛</returns>
-        bool EditStorageArea(int id,string name, int priority, string type, string temp, int userId);
+        bool EditStorageArea(int id,string name, int priority, string type, string temp, string deviceCode, int userId);
 
         /// <summary>
         /// 淇敼鍖哄煙鐘舵��
diff --git a/Wms/Wms/Controllers/SysController.cs b/Wms/Wms/Controllers/SysController.cs
index 8c5ed2e..58dc937 100644
--- a/Wms/Wms/Controllers/SysController.cs
+++ b/Wms/Wms/Controllers/SysController.cs
@@ -810,7 +810,7 @@
                 {
                     return Ok(new { code = 1, msg = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                var bolls = _areaSvc.EditStorageArea(model.Id, model.AreaName, model.Priority, model.Type, model.Temperature, int.Parse(userId));
+                var bolls = _areaSvc.EditStorageArea(model.Id, model.AreaName, model.Priority, model.Type, model.Temperature, model.DeviceCode, int.Parse(userId));
                 if (bolls)
                 {
                     SysStorageArea area = _areaSvc.GetStorageArea(model.Id);
@@ -1089,7 +1089,7 @@
                     //{
                     //    return Ok(new { code = 400, ErrorMsg = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                     //}
-                    var bolls = await _locatSvc.AddStorageLocat(model.HouseNo, model.RoadwayNo, model.AreaNo, model.Row, model.Col, model.Layer, model.Depth, 1);
+                    var bolls = await _locatSvc.AddStorageLocat(model.HouseNo, model.RoadwayNo, model.AreaNo, model.Row, model.Col, model.Layer, model.Depth.ToString(), 1);
                     if (bolls > 0)
                     {
                         await _operation.InsertOperation("浠撳簱璁剧疆", "鍌ㄤ綅绠$悊", model.RoadwayNo, "娣诲姞", "娣诲姞鍌ㄤ綅淇℃伅 鍌ㄤ綅鍙凤細" + model.RoadwayNo, 1);
@@ -1312,7 +1312,7 @@
         /// <param name="model">妯″瀷</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IActionResult> AddPallets(AddPalletVm model)
+        public IActionResult AddPallets(AddPalletVm model)
         {
             try
             {
@@ -1327,15 +1327,9 @@
                 {
                     return Ok(new { code = 1, msg = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                var bolls = await _palletSvc.AddPallets(model.GroupCount, int.Parse(userId));
-                if (bolls)
-                {
-                    return Ok(new { code = 0, msg = "娣诲姞鎴愬姛", data = "" });
-                }
-                else
-                {
-                    return Ok(new { code = 1, msg = "娣诲姞澶辫触", data = "" });
-                }
+                _palletSvc.AddPallets(model.PalletNo, model.LocatNo,int.Parse(userId));
+
+                return Ok(new { code = 0, msg = "娣诲姞鎴愬姛", data = "" });
 
             }
             catch (Exception e)
diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs
index d187930..632d00f 100644
--- a/Wms/Wms/Controllers/UpApiController.cs
+++ b/Wms/Wms/Controllers/UpApiController.cs
@@ -413,9 +413,13 @@
         [HttpPost]
         public IActionResult GetPalletNo(Pallnetmsg pallmsg)
         {
+            var logStr = $@".\log\AGV\AGV鐢宠鍙《" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             var result = new ErpModel { Success = -1, Message = "", };
             try
             {
+                var jsonData = JsonConvert.SerializeObject(pallmsg);
+                LogFile.SaveLogToFile($"AGV鐢宠鍙《锛�( {jsonData} ),", logStr);
+
                 if (string.IsNullOrWhiteSpace(pallmsg.Location))
                 {
                     result.Message = "鍙枡浣嶇疆涓虹┖锛�";
@@ -426,13 +430,15 @@
                     result.Message = "浠诲姟绫诲瀷涓虹┖锛�";
                     return Ok(result);
                 }
-                _rcsserver.GetPalletNo(pallmsg);
+                _rcsserver.GetPalletNo(pallmsg ,_config.AgvHost + _config.GenAgvSchedulingTask);
                 result.Success = 0;
                 result.Message = "鍙《鎴愬姛锛�";
                 return Ok(result);
             }
             catch (Exception e)
             {
+                LogFile.SaveLogToFile($"AGV鐢宠鍙《寮傚父锛�( {e.Message} ),", logStr);
+
                 result.Message = e.Message;
                 return Ok(result);
             }
@@ -453,7 +459,7 @@
                     result.Message = "妗剁紪鍙蜂笉鑳戒负绌猴紒";
                     return Ok(result);
                 }
-                _rcsserver.ChangePalletStatus(pallmsg.PalletNo);
+                _rcsserver.ChangePalletStatus(pallmsg.PalletNo, _config.AgvHost + _config.GenAgvSchedulingTask);
                 result.Success = 0;
                 result.Message = "鎿嶄綔鎴愬姛锛�";
                 return Ok(result);
@@ -486,7 +492,7 @@
                     result.Message = "妗跺彿涓虹┖锛�";
                     return Ok(result);
                 }
-                _rcsserver.CleanPallet(pallmsg);
+                _rcsserver.CleanPallet(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask);
                 result.Success = 0;
                 result.Message = "鍙《鎴愬姛锛�";
                 return Ok(result);
@@ -506,9 +512,14 @@
         [HttpPost]
         public IActionResult ApplyLocatNo(Pallnetmsg pallmsg)
         {
+            var logStr = $@".\log\AGV\AGV鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+
             var result = new ErpModel { Success = -1, Message = "" };
             try
             {
+                var jsonData = JsonConvert.SerializeObject(pallmsg);
+                LogFile.SaveLogToFile($"AGV鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr);
+
                 if (string.IsNullOrWhiteSpace(pallmsg.Location))
                 {
                     result.Message = "鐢宠浣嶇疆涓虹┖锛�";
@@ -524,13 +535,14 @@
                     result.Message = "鐢宠鎵樼洏鍙蜂负绌猴紒";
                     return Ok(result);
                 }
-                _rcsserver.ApplyLocatNo(pallmsg);
+                _rcsserver.ApplyLocatNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask);
                 result.Success = 0;
                 result.Message = "鐢宠鍌ㄤ綅鎴愬姛锛�";
                 return Ok(result);
             }
             catch (Exception e)
             {
+                LogFile.SaveLogToFile($"AGV鐢宠鍌ㄤ綅寮傚父锛�( {e.Message} ),", logStr);
 
                 result.Message = e.Message;
                 return Ok(result);
@@ -572,35 +584,49 @@
         }
 
         /// <summary>
-        /// 浠诲姟瀹屾垚鍙嶉
+        /// Agv浠诲姟瀹屾垚鍙嶉
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult RCSFinishTask(TaskModel model)
+        public IActionResult agvCallBack(AgvTaskDto model)
         {
             var result = new ErpModel { Success = -1, Message = "" };
             try
             {
-                /*var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
+                //璁板綍log
+                var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+                var jsonData = JsonConvert.SerializeObject(model);
+                LogFile.SaveLogToFile($"浠诲姟鎵ц閫氱煡锛�( {jsonData} ),", logStr);
+
+                if (string.IsNullOrEmpty(model.reqCode))
                 {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
+                    return Ok(new AgvResultModel { code = "-1", message = "璇锋眰澶辫触锛宺eqCode鍙傛暟寮傚父", reqCode = model.reqCode });
                 }
-                string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(UserId))
+                switch (model.method)
                 {
-                    throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
-                }*/
+                    case "start"://浠诲姟寮�濮�
+                        return Ok(new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode });
 
-                result = _noticeSvc.RCSFinishTask(model.TaskNo, model.Status);
+                    case "outbin"://璧板嚭鍌ㄤ綅
+                        return Ok(new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode });
 
-                return Ok(result);
+                    case "end"://浠诲姟缁撴潫
+                        result = _noticeSvc.RCSFinishTask(model.reqCode, "1");
+                        return Ok(result);
+                    case "cancel"://浠诲姟鍗曞彇娑�
+                        return Ok(new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode });
+
+                    case "apply"://CTU鏂欑鍙栨斁鐢宠
+                        return Ok(new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode });
+
+                    default:
+                        return Ok(new AgvResultModel { code = "-1", message = "璇锋眰澶辫触锛宮ethod浠诲姟绫诲瀷閿欒", reqCode = model.reqCode });
+                }               
             }
-            catch (Exception e)
+            catch (Exception ex)
             {
-                result.Message = e.Message;
-                return Ok(result);
+                return Ok(new AgvResultModel { code = "-1", message = ex.Message, reqCode = model.reqCode });
             }
         }
 
diff --git a/Wms/Wms/Tools/ApiUrlConfig.cs b/Wms/Wms/Tools/ApiUrlConfig.cs
index 5157e35..fe5f1ff 100644
--- a/Wms/Wms/Tools/ApiUrlConfig.cs
+++ b/Wms/Wms/Tools/ApiUrlConfig.cs
@@ -20,6 +20,11 @@
         /// </summary>
         public string BoxHost { get; set; }
 
+        /// <summary>
+        /// Agv鐨処P
+        /// </summary>
+        public string AgvHost { get; set; }
+
         #region 涓婃父绯荤粺
 
         /// <summary>
@@ -64,6 +69,25 @@
         public string GetLog1 { get; set; }
         public string GetLog2 { get; set; }
 
+        #region AGV
+
+        /// <summary>
+        /// 鐢熸垚浠诲姟鍗曟帴鍙�
+        /// </summary>
+        public string GenAgvSchedulingTask { get; set; }
+
+        /// <summary>
+        /// 缁х画鎵ц浠诲姟鎺ュ彛
+        /// </summary>
+        public string ContinueTask { get; set; }
+
+        /// <summary>
+        /// 棰勮皟搴﹀澶栨帴鍙�
+        /// </summary>
+        public string GenPreScheduleTask { get; set; }
+
+        #endregion
+
         #endregion
 
     }
diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json
index 5dc89d5..3655da1 100644
--- a/Wms/Wms/appsettings.json
+++ b/Wms/Wms/appsettings.json
@@ -11,9 +11,10 @@
     //"ConnectionString": "Server=47.95.120.93;Database=WMS_JC09;User ID=sa;password=boxline!@#; Integrated Security=True;",
     //"ConnectionString": "Server=47.95.120.53;Database=WMS_JC09;User ID=sa;Password=boxline!@#;Integrated Security=False;",
     //"ConnectionString": "Server=192.168.62.106;Database=WMS_JC24;User ID=sa;Password=sql2019;Integrated Security=False;",
-    "ConnectionString": "Server=192.168.62.200;Database=WMS_JC23-2;User ID=sa;Password=sql2019;Integrated Security=False;"
+    //"ConnectionString": "Server=192.168.62.200;Database=WMS_JC23-2;User ID=sa;Password=sql2019;Integrated Security=False;"
     //"ConnectionString": "Server=.;Database=WMS_JC09;User ID=sa;Password=sql2019;Integrated Security=False;"
     //"ConnectionString": "Data Source=DESKTOP-0EJDG95\\MSSQLSERVER1;Initial Catalog=WMS_V01;Integrated Security=True;"
+    "ConnectionString": "Server=.\\MSSQLSERVER2019;Database=WMS_JC23-2;User Id=sa;Password=admin2023@;" // SqlServer 搴撹繛鎺ュ瓧绗︿覆
   },
   "JWTConfig": {
     "Issuer": "WYY", //Token锟斤拷锟斤拷锟斤拷
@@ -25,6 +26,7 @@
     "ErpHost": "http://10.110.24.30:8081", //erpIP
     "WcsHost": "http://localhost:57061", //wcsIPhttp://localhost:57061/
     "BoxHost": "http://10.110.24.30:8081", //boxIP
+    "AgvHost": "http://172.15.1.74:8182", //agvIP
 
     "IssueComApiUrl": "/api/WCSApi/AddTasks", //涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
     "IssueComApiUrl2": "/api/WCSApi/AddTask", //閲嶆柊涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
@@ -34,7 +36,12 @@
     "DataChangeUrl": "/api/wmsInterface/OutStockTask", //搴撳瓨鍙樻洿鍥炰紶
     "GetBoxUrl": "/api/wmsInterface/OutStockTask", //鑾峰彇绠辩爜淇℃伅
 
-    "EditLocateUrl": "/api/WCSApi/EditLocatStatus" //鍚屾淇敼鍌ㄤ綅淇℃伅
+    "EditLocateUrl": "/api/WCSApi/EditLocatStatus", //鍚屾淇敼鍌ㄤ綅淇℃伅
 
+
+    // AGV
+    "GenAgvSchedulingTask": "/rcms/services/rest/hikRpcService/genAgvSchedulingTask", //鐢熸垚浠诲姟鍗曟帴鍙�
+    "ContinueTask": "/rcms/services/rest/hikRpcService/continueTask", //缁х画鎵ц浠诲姟鎺ュ彛
+    "GenPreScheduleTask": "/rcms/services/rest/hikRpcService/genPreScheduleTask" // 棰勮皟搴﹀澶栨帴鍙�
   }
 }

--
Gitblit v1.8.0