From d09a1552e45e6cfc8f83c0249cd296b8706c0dc2 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期二, 20 五月 2025 09:33:27 +0800
Subject: [PATCH] 修改下发AGV任务接口,修改条码增加功能

---
 Wms/WMS.BLL/BllTransServer/RcsServer.cs                 |    6 
 Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs     |  285 +++++++++++++-------
 HTML/views/HouseWithinSetting/HopperTransport.html      |    6 
 Wms/Wms/Tools/ApiUrlConfig.cs                           |   11 
 Wms/Model/InterFaceModel/AgvModel.cs                    |   24 +
 HTML/views/WareHouseSetting/PalletsPrintFrom.html       |    4 
 Wms/Wms/DailyTaskService.cs                             |    6 
 Wms/Utility/Tools/RcsHelper.cs                          |  105 +++++++
 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs          |    1 
 Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs |    2 
 Wms/Wms/Startup.cs                                      |    4 
 Wms/Wms/Properties/launchSettings.json                  |   18 
 Wms/Wms/appsettings.json                                |   14 
 Wms/Wms/Controllers/SysController.cs                    |    2 
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs                 |    1 
 Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs  |    8 
 Wms/Model/InterFaceModel/HttpModel.cs                   |  167 +++++------
 Wms/WMS.BLL/SysServer/PalletsServer.cs                  |   69 +++-
 Wms/WMS.IBLL/ISysServer/IPalletsServer.cs               |    2 
 Wms/Wms/Controllers/DownApiController.cs                |   67 +++-
 20 files changed, 531 insertions(+), 271 deletions(-)

diff --git a/HTML/views/HouseWithinSetting/HopperTransport.html b/HTML/views/HouseWithinSetting/HopperTransport.html
index 9ad2288..6c075df 100644
--- a/HTML/views/HouseWithinSetting/HopperTransport.html
+++ b/HTML/views/HouseWithinSetting/HopperTransport.html
@@ -100,9 +100,9 @@
                                             <label class="layui-form-label" style="width: 80px;">瑙勬牸</label>
                                             <div class="layui-input-block">
                                                 <select name="Standard" lay-filter="Standard" lay-search>
-                                                    <option value="400">400L</option> 
-                                                    <option value="800">800L</option> 
-                                                    <option value="1000">1000L</option> 
+                                                    <option value="400L">400L</option> 
+                                                    <option value="800L">800L</option> 
+                                                    <option value="1000L">1000L</option> 
                                                 </select>
                                             </div>
                                         </div>
diff --git a/HTML/views/WareHouseSetting/PalletsPrintFrom.html b/HTML/views/WareHouseSetting/PalletsPrintFrom.html
index 0b9a541..a0c4fce 100644
--- a/HTML/views/WareHouseSetting/PalletsPrintFrom.html
+++ b/HTML/views/WareHouseSetting/PalletsPrintFrom.html
@@ -24,9 +24,9 @@
 				</div>
 			</div>
 			<div class="layui-form-item">
-				<label class="layui-form-label">鎵�灞炴帴鏂欒澶�</label>
+				<label class="layui-form-label">妗惰鏍�(L)</label>
 				<div class="layui-input-block">
-					<input type="text" name="DeviceCode" placeholder="璇疯緭鍏ユ墍灞炴帴鏂欒澶�" lay-verify="" autocomplete="off" class="layui-input">
+					<input type="text" name="DeviceCode" placeholder="璇疯緭鍏ユ《瑙勬牸" lay-verify="required" autocomplete="off" class="layui-input">
 				</div>
 			</div>
 			<div class="layui-form-item layui-hide">
diff --git a/Wms/Model/InterFaceModel/AgvModel.cs b/Wms/Model/InterFaceModel/AgvModel.cs
index 876dd22..a875472 100644
--- a/Wms/Model/InterFaceModel/AgvModel.cs
+++ b/Wms/Model/InterFaceModel/AgvModel.cs
@@ -146,18 +146,32 @@
     }
     public class carrierInfo
     {
-        /// <summary>
-        /// 杞藉叿绫诲瀷
-        /// </summary>
-        public string carrierType { get; set; }
+        ///// <summary>
+        ///// 杞藉叿绫诲瀷
+        ///// </summary>
+        //public string carrierType { get; set; }
         /// <summary>
         /// 杞藉叿缂栧彿
         /// </summary>
         public string carrierCode { get; set; }
+
+        /// <summary>
+        /// 绔欑偣缂栧彿
+        /// </summary>
+        public string siteCode { get; set; }
         /// <summary>
         /// 灞傚彿锛� 浠� 0 寮�濮嬨�佷粠涓嬪線涓婄紪鍙�
         /// </summary>
-        public int layer { get; set; }
+        //public int layer { get; set; }
+        /// <summary>
+        /// 绔欑偣缂栧彿
+        /// </summary>
+        public int? carrierDir { get; set; }
+
+        /// <summary>
+        /// 绔欑偣缂栧彿
+        /// </summary>
+        public object extra { get; set; }
     }
 
     /// <summary>
diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index a2e2dc4..2cb35e1 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -655,154 +655,122 @@
     public class AgvTaskDto
     {
         /// <summary>
-        /// 璇锋眰缂栧彿锛屾瘡涓姹傞兘瑕佷竴涓敮涓�缂栧彿
-        /// 鍚屼竴涓姹傞噸澶嶆彁浜� 浣跨敤鍚屼竴缂栧彿
-        /// 鏄惁蹇呭~锛氭槸
+        /// 浠诲姟鍙�
         /// </summary>
-        public string reqCode { get; set; }
+        public string robotTaskCode { get; set; }
 
         /// <summary>
-        /// 璇锋眰鏃堕棿鎴�
-        /// 鏍煎紡: 鈥測yyy-MM-ddHH:mm:ss鈥�
-        /// 鏄惁蹇呭~锛氭槸
+        /// 褰撳墠鎵ц浠诲姟鐨勬満鍣ㄤ汉鍞竴鏍囪瘑
         /// </summary>
-        public string reqTime { get; set; }
+        public string singleRobotCode { get; set; }
+
+        public int currentSeq { get; set; }
 
         /// <summary>
-        /// 鍦扮爜 X 鍧愭爣(mm)锛氫换鍔″畬鎴愭椂鏈夊��
-        /// 鏄惁蹇呭~锛氬惁
+        /// 鑷畾涔夋墿灞曞瓧娈�
         /// </summary>
-        public double cooX { get; set; }
+        public ExtraModel extra { get; set; }
+    }
+
+
+    public class ExtraModel
+    {
+        public string async { get; set; } = "0";
 
         /// <summary>
-        /// 鍦扮爜 Y 鍧愭爣(mm)锛氫换鍔″畬鎴愭椂鏈夊��
-        /// 鏄惁蹇呭~锛氬惁
+        /// 鍥炶皟鏁版嵁瀵硅薄
         /// </summary>
-        public double cooY { get; set; }
+        public ExtraModelView values { get; set; }
 
-        /// <summary>
-        /// 褰撳墠浣嶇疆缂栧彿
-        /// 浠诲姟寮�濮嬶細璇ヤ綅缃负浠诲姟璧风偣
-        /// 璧板嚭鍌ㄤ綅锛氳浣嶇疆涓轰换鍔¤捣鐐�
-        /// 浠诲姟鍗曞彇娑堬細璇ヤ綅缃负宸ヤ綔浣嶇紪鍙�
-        /// 浠诲姟缁撴潫锛氳浣嶇疆涓轰换鍔$粓鐐�
-        /// 鍙栨斁鐢宠锛氬彇鏀炬枡绠辩殑鐐�
-        /// 鏄惁蹇呭~锛氭槸
-        /// </summary>
-        public string currentPositionCode { get; set; }
+    }
 
-        /// <summary>
-        /// 鑷畾涔夊瓧娈碉紝涓嶈秴杩� 2000 涓瓧绗�
-        /// 鏄惁蹇呭~锛氬惁
-        /// </summary>
-        public string data { get; set; }
 
+    /// <summary>
+    /// 鍥炶皟鍙傛暟
+    /// </summary>
+    public class ExtraModelView
+    {
         /// <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 鏂欑鍙栨斁鐢宠
-        /// 鏄惁蹇呭~锛氭槸
+        /// 鍥炶皟浠诲姟
+        /// <para> start:浠诲姟寮�濮�,outbin:璧板嚭鍌ㄤ綅,end:浠诲姟瀹屾垚</para>
         /// </summary>
         public string method { get; set; }
 
         /// <summary>
-        /// 璐ф灦缂栧彿锛氳儗璐ф灦鏃舵湁鍊�
-        /// 鏄惁蹇呭~锛氬惁
+        /// 杞藉叿缂栧彿
         /// </summary>
-        public string podCode { get; set; }
+        public string carrierCode { get; set; }
 
         /// <summary>
-        /// 鍒搴斿湴鍥剧殑浠诲姟瀹屾垚鏃舵湁鍊�
-        /// 宸�: 180
-        /// 鍙�: 0
-        /// 涓�: 90
-        /// 涓�: -90
-        /// 鏄惁蹇呭~锛氬惁
+        /// 杞藉叿鍚嶇О
         /// </summary>
-        public string podDir { get; set; }
+        public string carrierName { get; set; }
 
         /// <summary>
-        /// 鐗╂枡缂栧彿
-        /// 鏄惁蹇呭~锛氬惁
+        /// 杞藉叿绫诲瀷
         /// </summary>
-        public string materialLot { get; set; }
+        public string carrierType { get; set; }
 
         /// <summary>
-        /// AGV 缂栧彿锛堝悓 agvCode 锛�
-        /// 鏄惁蹇呭~锛氬惁
+        /// 杞藉叿绉嶇被
         /// </summary>
-        public string robotCode { get; set; }
+        public string carrierCategory { get; set; }
+
 
         /// <summary>
-        /// 褰撳墠浠诲姟鍗曞彿
-        /// 鏄惁蹇呭~锛氭槸
+        /// 褰撳墠绔欑偣缂栧彿
         /// </summary>
-        public string taskCode { get; set; }
+        public string slotCode { get; set; }
 
         /// <summary>
-        /// 宸ヤ綔浣嶏紝涓� RCS-2000 绔厤缃殑浣嶇疆鍚嶇О涓�鑷淬�備换鍔″畬鎴愭椂鏈夊�硷紝涓庣敓鎴愪换鍔″崟鎺ュ彛涓殑 wbCode 涓�鑷�
-        /// 鏄惁蹇呭~锛氬惁
+        /// 绔欑偣鍒悕
+        /// <para>1.璧板嚭鍌ㄤ綅:璧风偣銆�2.浠诲姟瀹屾垚:鐩爣鐐�</para>
         /// </summary>
-        public string wbCode { get; set; }
+        public string slotName { get; set; }
 
         /// <summary>
-        /// 瀹瑰櫒缂栧彿
-        /// 鏄惁蹇呭~锛氬惁
+        ///  瀛樺偍绫诲瀷(BIN:浠撲綅,SITE:绔欑偣)
         /// </summary>
-        public string ctnrCode { get; set; }
+        public string slotCategory { get; set; }
 
         /// <summary>
-        /// 瀹瑰櫒绫诲瀷
-        /// 鏄惁蹇呭~锛氬惁
+        ///  x鍧愭爣
         /// </summary>
-        public string ctnrType { get; set; }
+        public decimal? x { get; set; }
 
         /// <summary>
-        /// 宸烽亾缂栧彿
-        /// 鏄惁蹇呭~锛氬惁
+        ///  y鍧愭爣
         /// </summary>
-        public string roadWayCode { get; set; }
+        public decimal? y { get; set; }
 
         /// <summary>
-        /// 宸烽亾鍐呴『搴忓彿
-        /// 宸烽亾灏炬槸 0锛屽埌宸烽亾澶翠緷娆¢�掑 1
-        /// 鏄惁蹇呭~锛氬惁
+        ///  鏈哄櫒浜虹绫�
         /// </summary>
-        public string seq { get; set; }
+        public string amrCategory { get; set; }
 
         /// <summary>
-        /// 璁惧缂栧彿锛屽姊抽娇寮忓伐浣滅珯銆佽緭閫佺嚎绛夛紝涓�鑸娇鐢ㄤ簬 CTU 鍦烘櫙銆傜郴缁熸牴鎹粨浣嶅畾浣嶅埌鍏宠仈鐨勮澶囩紪鍙枫��
-        /// 鏄惁蹇呭~锛氬惁
+        ///  鏈哄櫒浜虹被鍨�
         /// </summary>
-        public string eqpCode { get; set; }
+        public string amrType { get; set; }
+
+
+        public int? pileCount { get; set; }
+        public int? layerNo { get; set; }
+        public string amrCode { get; set; }
+
     }
-    /// <summary>
-    /// WMS鍥炲簲AGV淇℃伅
-    /// </summary>
-    public class OutCommanAgvDto
+}
+
+
+/// <summary>
+/// WMS鍥炲簲AGV淇℃伅
+/// </summary>
+public class OutCommanAgvDto
     {
         /// <summary>
         /// 杩斿洖鐮�
@@ -853,5 +821,18 @@
         public string data { get; set; }
         public string reqCode { get; set; }
     }
+
+/// <summary>
+/// agv璇锋眰鎺ュ彛搴旂瓟
+/// </summary>
+public class AgvResultModel2
+{
+    public string code { get; set; }
+    public string message { get; set; }
+    public Data da { get; set; }
+}
+public class Data
+{
+    public string robotTaskCode { get; set; }
     #endregion
 }
diff --git a/Wms/Utility/Tools/RcsHelper.cs b/Wms/Utility/Tools/RcsHelper.cs
index 0cd9b43..568bfda 100644
--- a/Wms/Utility/Tools/RcsHelper.cs
+++ b/Wms/Utility/Tools/RcsHelper.cs
@@ -1,15 +1,19 @@
 锘縰sing Model.InterFaceModel;
+using SqlSugar;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Text;
 using ZXing;
 using static Model.InterFaceModel.RCSModel;
+using WMS.Entity.Context;
+using WMS.Entity.SysEntity;
 
 namespace Utility.Tools
 {
     public static class RcsHelper
     {
+        private static readonly SqlSugarScope Db = DataContext.Db;
         /// <summary>
         /// 涓嬪彂浠诲姟
         /// </summary>
@@ -21,12 +25,16 @@
         public static bool CreateTaskForAgv(TaskDetial taskDetial, string url, out string agvMsg, string priority = null)
         {
             bool result = false;
+            var tasktype = "F12";
+
+            //璺ㄦゼ灞備换鍔asktype鍊艰祴鍊尖�︹��
+            //tasktype = "";
 
             List<targetRoute> pahtList = new List<targetRoute>();
             //璧峰浣嶇疆
             targetRoute royte1 = new targetRoute();
             royte1.seq = 0;
-            royte1.type = "ZONE";
+            royte1.type = "SITE";
             royte1.code = taskDetial.Startport;
 
             pahtList.Add(royte1);
@@ -34,18 +42,23 @@
             //鐩爣浣嶇疆
             targetRoute royte2 = new targetRoute();
             royte2.seq = 0;
-            royte2.type = "ZONE";
+            royte2.type = "SITE";
             royte2.code = taskDetial.Endport;
 
             pahtList.Add(royte2);
 
             AgvCreateTaskModel taskModel = new AgvCreateTaskModel();
-            taskModel.taskType = "PF-LMR-COMMON";
+            taskModel.taskType = tasktype;
             taskModel.targetRoute = pahtList;
+
+            //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+            long ran = DateTime.Now.Ticks;
+            Dictionary<string, string> key = new Dictionary<string, string>();
+            key.Add("X-LR-REQUEST-ID", ran.ToString());
 
             // 姝e紡杩愯绋嬪簭鏀惧紑
             var jsonData = JsonConvert.SerializeObject(taskModel);
-            string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+            string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV", key);
             //瑙f瀽杩斿洖鏁版嵁 
             var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
             if (agvModel.Code == "0")
@@ -64,5 +77,89 @@
 
             return result;
         }
+        /// <summary>
+        /// 涓嬪彂AGV缁戝畾杞藉叿鍜岀珯鐐�
+        /// </summary>
+        /// <param name="palletNo">妗跺彿L</param>
+        /// <param name="url">璇锋眰鍦板潃</param>   
+        /// <param name="agvMsg">杩斿洖淇℃伅</param>
+        /// <param name="locateNo">杩斿洖淇℃伅</param>
+        /// <returns></returns>
+        public static bool BindPalletAndSite(string palletNo,string locateNo,string url,out string agvMsg)
+        {
+            
+            bool result = false;
+            carrierInfo carrierInfo = new carrierInfo();
+            carrierInfo.carrierCode = palletNo;
+            carrierInfo.siteCode = locateNo;
+
+            //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+            long ran = DateTime.Now.Ticks;
+            Dictionary<string, string> key = new Dictionary<string, string>();
+            key.Add("X-LR-REQUEST-ID", ran.ToString());
+
+            // 姝e紡杩愯绋嬪簭鏀惧紑
+            var jsonData = JsonConvert.SerializeObject(carrierInfo);
+            string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护", "AGV", key);
+            //瑙f瀽杩斿洖鏁版嵁 
+            var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+            if (agvModel.Code == "0")
+            {
+                result = true;//缁欎笅杞︿笅鍙戜换鍔℃垚鍔�
+
+                agvMsg = "";
+            }
+            else
+            {
+                var logStr = $@".\log\AGV\涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+                LogFile.SaveLogToFile($"涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护寮傚父锛�( {agvModel.Message} ),", logStr);
+
+                agvMsg = agvModel.Message;
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 涓嬪彂AGV瑙g粦杞藉叿鍜岀珯鐐�
+        /// </summary>                              
+        /// <param name="palletType">瀹瑰櫒绫诲瀷1锛�400L锛�2锛�800/1000L</param>
+        /// <param name="url">璇锋眰鍦板潃</param> 
+        /// <param name="agvMsg">杩斿洖淇℃伅</param>
+        /// <param name="locateNo">杩斿洖淇℃伅</param>
+        /// <returns></returns>
+        public static bool UnBindPalletAndSite(string palletType, string locateNo,string url, out string agvMsg)
+        {
+            bool result = false;
+            carrierInfo carrierInfo = new carrierInfo();
+            carrierInfo.carrierCode = palletType;
+            carrierInfo.siteCode = locateNo;
+
+            //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+            long ran = DateTime.Now.Ticks;
+            Dictionary<string, string> key = new Dictionary<string, string>();
+            key.Add("X-LR-REQUEST-ID", ran.ToString());
+
+            // 姝e紡杩愯绋嬪簭鏀惧紑
+            var jsonData = JsonConvert.SerializeObject(carrierInfo);
+            string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护", "AGV", key);
+            //瑙f瀽杩斿洖鏁版嵁 
+            var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+            if (agvModel.Code == "0")
+            {
+                result = true;//缁欎笅杞︿笅鍙戜换鍔℃垚鍔�
+
+                agvMsg = "";
+            }
+            else
+            {
+                var logStr = $@".\log\AGV\涓嬪彂缁橝GV瑙g粦杞藉叿鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+                LogFile.SaveLogToFile($"涓嬪彂缁橝GV瑙g粦杞藉叿鍛戒护寮傚父锛�( {agvModel.Message} ),", logStr);
+
+                agvMsg = agvModel.Message;
+            }
+
+            return result;
+        }
     }
 }
diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
index 24196ca..c7e5489 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -1435,6 +1435,7 @@
 
                 try
                 {
+                    
                     //绋嬪簭姝e紡鍙戝竷鍚庢斁寮�
                     var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
                     var response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 6526b6b..dca0979 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1177,6 +1177,7 @@
 
                     try
                     {
+                        
                         var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
                         response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
                         var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
diff --git a/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs b/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs
index 19db4a1..874db24 100644
--- a/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs
+++ b/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs
@@ -209,6 +209,7 @@
                 string response = "";
                 try
                 {
+                    
                     var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
                     response = HttpHelper.DoPost(url, jsonData, "涓婁紶ERP鍙栨牱娑堣�楅噺杩囪处", "ERP");
                     var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
@@ -480,6 +481,7 @@
 
                         try
                         {
+                            
                             var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
                             response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
                             var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
diff --git a/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs b/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
index 1c4763c..f497068 100644
--- a/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
@@ -217,7 +217,7 @@
         /// <param name="lotNo">鎵规</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <exception cref="Exception"></exception>
-        public void jiaoLiaoHopper(string areaNo,string endLocate,string plnStatus,string standard,string skuNo,string lotNo,string url,int userId)
+        public void jiaoLiaoHopper(string areaNo,string endLocate,string plnStatus,string standard,string skuNo,string lotNo,string url, string bindUrl, int userId)
         {
             try
             {
@@ -306,7 +306,7 @@
                     {
                         throw new Exception("鏈壘鍒板搴旀《淇℃伅");
                     }
-                    resultYi = YikuTask(palletModel.PalletNo, taskNo, url);
+                    resultYi = YikuTask(palletModel.PalletNo, taskNo, url,bindUrl);
                 }
                 #endregion
                 //璧峰鍌ㄤ綅鍦板潃淇℃伅
@@ -358,29 +358,41 @@
                     string agvMsg = string.Empty;
                     //缁欎笅杞︿笅鍙戜换鍔�
                     logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
-                    var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
-                    if (agvResult)//鎴愬姛
+                    //涓嬪彂杞藉叿绫诲瀷
+                    var bind = RcsHelper.BindPalletAndSite(palletModel.PalletNo, palletModel.LocatNo, url, out string agvBindMsg);
+                    if (bind)
                     {
-                        //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                        logTaskEntry.IsSuccess = 1;
-                        logTaskEntry.IsSend = 0;
-                        //logTaskEntry.IsCancel = 0;
-                        logTaskEntry.BackDate = DateTime.Now;
-                        logTaskEntry.Status = "1";//姝e湪鎵ц
-                        Db.Insertable(logTaskEntry).ExecuteCommand();
+                        var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
+                        if (agvResult)//鎴愬姛
+                        {
+                            //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                            logTaskEntry.IsSuccess = 1;
+                            logTaskEntry.IsSend = 0;
+                            //logTaskEntry.IsCancel = 0;
+                            logTaskEntry.BackDate = DateTime.Now;
+                            logTaskEntry.Status = "1";//姝e湪鎵ц
+                            Db.Insertable(logTaskEntry).ExecuteCommand();
 
-                        startLoction.Status = "3";//鍑哄簱涓�
-                        Db.Updateable(startLoction).ExecuteCommand();
+                            startLoction.Status = "3";//鍑哄簱涓�
+                            Db.Updateable(startLoction).ExecuteCommand();
 
-                        endLocateInfo.Status = "2";//鍏ュ簱涓�
-                        Db.Updateable(endLocateInfo).ExecuteCommand();
+                            endLocateInfo.Status = "2";//鍏ュ簱涓�
+                            Db.Updateable(endLocateInfo).ExecuteCommand();
+                        }
+                        else//澶辫触
+                        {
+                            logTaskEntry.IsSuccess = 0;
+                            logTaskEntry.Information = agvMsg;
+                            Db.Insertable(logTaskEntry).ExecuteCommand();
+                        }
                     }
-                    else//澶辫触
+                    else 
                     {
                         logTaskEntry.IsSuccess = 0;
-                        logTaskEntry.Information = agvMsg;
+                        logTaskEntry.Information = "璐ф灦涓庤揣浣嶇粦瀹氬け璐ワ紝鍘熷洜锛�"+agvBindMsg;
                         Db.Insertable(logTaskEntry).ExecuteCommand();
                     }
+                   
                 }
                 //鎻愪氦浜嬪姟
                 Db.CommitTran();
@@ -405,7 +417,7 @@
         /// <param name="lotNo">鎵规</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <exception cref="Exception"></exception>
-        public void jiaoCheHopper(string areaNo, string StartLocate, string plnNo, string plnStatus, decimal weight,  string skuNo, string lotNo, string url,int userId)
+        public void jiaoCheHopper(string areaNo, string StartLocate, string plnNo, string plnStatus, decimal weight,  string skuNo, string lotNo, string url,string bindUrl,int userId)
         {
             try
             {
@@ -550,29 +562,42 @@
                 string agvMsg = string.Empty;
                 //缁欎笅杞︿笅鍙戜换鍔�
                 logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
-                var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
-                if (agvResult)//鎴愬姛
+                //涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
+                var bind = RcsHelper.BindPalletAndSite(plnNo, StartLocate, bindUrl, out string agvBindMsg);
+                if (bind)
                 {
-                    //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                    logTaskEntry.IsSuccess = 1;
-                    logTaskEntry.IsSend = 0;
-                    //logTaskEntry.IsCancel = 0;
-                    logTaskEntry.BackDate = DateTime.Now;
-                    logTaskEntry.Status = "1";//姝e湪鎵ц
-                    Db.Insertable(logTaskEntry).ExecuteCommand();
+                    var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
+                    if (agvResult)//鎴愬姛
+                    {
+                        //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                        logTaskEntry.IsSuccess = 1;
+                        logTaskEntry.IsSend = 0;
+                        //logTaskEntry.IsCancel = 0;
+                        logTaskEntry.BackDate = DateTime.Now;
+                        logTaskEntry.Status = "1";//姝e湪鎵ц
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
 
-                    startLoction.Status = "3";//鍑哄簱涓�
-                    Db.Updateable(startLoction).ExecuteCommand();
+                        startLoction.Status = "3";//鍑哄簱涓�
+                        Db.Updateable(startLoction).ExecuteCommand();
 
-                    endLocatInfo.Status = "2";//鍏ュ簱涓�
-                    Db.Updateable(endLocatInfo).ExecuteCommand();
+                        endLocatInfo.Status = "2";//鍏ュ簱涓�
+                        Db.Updateable(endLocatInfo).ExecuteCommand();
+                    }
+                    else//澶辫触
+                    {
+                        logTaskEntry.IsSuccess = 0;
+                        logTaskEntry.Information = agvMsg;
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
+                    }
+
                 }
-                else//澶辫触
+                else
                 {
                     logTaskEntry.IsSuccess = 0;
-                    logTaskEntry.Information = agvMsg;
+                    logTaskEntry.Information = "璐ф灦涓庤揣浣嶇粦瀹氬け璐ワ紝鍘熷洜锛�"+agvBindMsg;
                     Db.Insertable(logTaskEntry).ExecuteCommand();
                 }
+                
 
                 //鎻愪氦浜嬪姟
                 Db.CommitTran();
@@ -727,7 +752,7 @@
         /// <param name="deviceStation">鍙枡鐐逛綅锛氣�漣nput鈥�-鍏ュ彛锛堝彨鑴忔《锛夛紝鈥漮utput鈥�-鍑哄彛锛堝噣妗剁敵璇峰偍浣嶏級</param>
         /// <param name="status"></param>
         /// <exception cref="Exception"></exception>
-        public void RCSCleanRequest(string deviceID,string deviceStation,string status,string url)
+        public void RCSCleanRequest(string deviceID,string deviceStation,string status,string url,string bindUrl)
         {
             try
             {
@@ -859,29 +884,41 @@
                 string agvMsg = string.Empty;
                 //缁欎笅杞︿笅鍙戜换鍔�
                 logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
-                var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
-                if (agvResult)//鎴愬姛
+                //涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
+                var bind = RcsHelper.BindPalletAndSite(palletModel.PalletNo, palletModel.LocatNo, bindUrl, out string agvBindMsg);
+                if (bind)
                 {
-                    //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                    logTaskEntry.IsSuccess = 1;
-                    logTaskEntry.IsSend = 0;
-                    //logTaskEntry.IsCancel = 0;
-                    logTaskEntry.BackDate = DateTime.Now;
-                    logTaskEntry.Status = "1";//姝e湪鎵ц
-                    Db.Insertable(logTaskEntry).ExecuteCommand();
+                    var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
+                    if (agvResult)//鎴愬姛
+                    {
+                        //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                        logTaskEntry.IsSuccess = 1;
+                        logTaskEntry.IsSend = 0;
+                        //logTaskEntry.IsCancel = 0;
+                        logTaskEntry.BackDate = DateTime.Now;
+                        logTaskEntry.Status = "1";//姝e湪鎵ц
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
 
-                    startLoction.Status = "3";//鍑哄簱涓�
-                    Db.Updateable(startLoction).ExecuteCommand();
+                        startLoction.Status = "3";//鍑哄簱涓�
+                        Db.Updateable(startLoction).ExecuteCommand();
 
-                    endLoction.Status = "2";//鍏ュ簱涓�
-                    Db.Updateable(endLoction).ExecuteCommand();
+                        endLoction.Status = "2";//鍏ュ簱涓�
+                        Db.Updateable(endLoction).ExecuteCommand();
+                    }
+                    else//澶辫触
+                    {
+                        logTaskEntry.IsSuccess = 0;
+                        logTaskEntry.Information = agvMsg;
+                        Db.Insertable(logTaskEntry).ExecuteCommand();
+                    }
                 }
-                else//澶辫触
+                else
                 {
                     logTaskEntry.IsSuccess = 0;
-                    logTaskEntry.Information = agvMsg;
+                    logTaskEntry.Information = agvBindMsg;
                     Db.Insertable(logTaskEntry).ExecuteCommand();
                 }
+                
                 //鎻愪氦浜嬪姟
                 Db.CommitTran();
             }
@@ -893,7 +930,7 @@
             }
         }
 
-        private bool YikuTask(string palletNo, string taskNo, string url)
+        private bool YikuTask(string palletNo, string taskNo, string url,string bindUrl)
         {
             try
             {
@@ -985,33 +1022,47 @@
                         string agvMsg = string.Empty;
                         //缁欎笅杞︿笅鍙戜换鍔�
                         logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
-                        var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg, "70");
-                        if (agvResult)//鎴愬姛
+                                                             //涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
+                        var bind = RcsHelper.BindPalletAndSite(palletInfoYi.LocatNo, palletInfoYi.PalletNo, bindUrl, out string agvBindMsg);
+                        if (bind)
                         {
-                            //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                            logTaskEntry.IsSuccess = 1;
-                            logTaskEntry.IsSend = 0;
-                            //logTaskEntry.IsCancel = 0;
-                            logTaskEntry.BackDate = DateTime.Now;
-                            logTaskEntry.Status = "1";//姝e湪鎵ц
-                            Db.Insertable(logTaskEntry).ExecuteCommand();
+                            var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg, "70");
+                            if (agvResult)//鎴愬姛
+                            {
+                                //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                                logTaskEntry.IsSuccess = 1;
+                                logTaskEntry.IsSend = 0;
+                                //logTaskEntry.IsCancel = 0;
+                                logTaskEntry.BackDate = DateTime.Now;
+                                logTaskEntry.Status = "1";//姝e湪鎵ц
+                                Db.Insertable(logTaskEntry).ExecuteCommand();
 
-                            //淇敼绉诲嚭鍌ㄤ綅鐘舵��
-                            locatInfo.Status = "5";//绉诲嚭涓�
-                            Db.Updateable(locatInfo).ExecuteCommand();
+                                //淇敼绉诲嚭鍌ㄤ綅鐘舵��
+                                locatInfo.Status = "5";//绉诲嚭涓�
+                                Db.Updateable(locatInfo).ExecuteCommand();
 
-                            //淇敼绉诲叆鍌ㄤ綅鐘舵��
-                            transferLocat.Status = "4";//绉诲叆涓�
-                            Db.Updateable(transferLocat).ExecuteCommand();
+                                //淇敼绉诲叆鍌ㄤ綅鐘舵��
+                                transferLocat.Status = "4";//绉诲叆涓�
+                                Db.Updateable(transferLocat).ExecuteCommand();
+                            }
+                            else//澶辫触
+                            {
+                                logTaskEntry.IsSuccess = 0;
+                                logTaskEntry.Information = agvMsg;
+                                Db.Insertable(logTaskEntry).ExecuteCommand();
+
+                                throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿palletInfoYi.PalletNo}");
+                            }
                         }
-                        else//澶辫触
+                        else
                         {
                             logTaskEntry.IsSuccess = 0;
-                            logTaskEntry.Information = agvMsg;
+                            logTaskEntry.Information = agvBindMsg;
                             Db.Insertable(logTaskEntry).ExecuteCommand();
 
                             throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿palletInfoYi.PalletNo}");
                         }
+                        
                     }
                 }
                 return true;
@@ -1027,7 +1078,7 @@
         /// <param name="taskNo"></param>
         /// <param name="url"></param>
         /// <exception cref="Exception"></exception>
-        public void OutBinAgv(string taskNo,string url)
+        public void OutBinAgv(string taskNo,string url, string bindUrl)
         {
             try
             {
@@ -1080,33 +1131,47 @@
                     string agvMsg = string.Empty;
                     //缁欎笅杞︿笅鍙戜换鍔�
                     logTaskInfoZ.SendDate = DateTime.Now;//鍙戦�佹椂闂�
-                    var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg, "70");
-                    if (agvResult)//鎴愬姛
+                    //涓嬪彂杞藉叿涓庤揣浠粦瀹�
+                    var bind = RcsHelper.BindPalletAndSite(logTaskInfoZ.PalletNo, logTaskInfoZ.StartLocat, bindUrl, out string agvBindMsg);
+                    if (bind)
                     {
-                        //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                        logTaskInfoZ.IsSuccess = 1;
-                        logTaskInfoZ.IsSend = 0;
-                        //logTaskEntry.IsCancel = 0;
-                        logTaskInfoZ.BackDate = DateTime.Now;
-                        logTaskInfoZ.Status = "1";//姝e湪鎵ц
-                        Db.Insertable(logTaskInfoZ).ExecuteCommand();
+                        var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg, "70");
+                        if (agvResult)//鎴愬姛
+                        {
+                            //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                            logTaskInfoZ.IsSuccess = 1;
+                            logTaskInfoZ.IsSend = 0;
+                            //logTaskEntry.IsCancel = 0;
+                            logTaskInfoZ.BackDate = DateTime.Now;
+                            logTaskInfoZ.Status = "1";//姝e湪鎵ц
+                            Db.Insertable(logTaskInfoZ).ExecuteCommand();
 
-                        //淇敼绉诲嚭鍌ㄤ綅鐘舵��
-                        startLocatInfoZ.Status = "5";//绉诲嚭涓�
-                        Db.Updateable(startLocatInfoZ).ExecuteCommand();
+                            //淇敼绉诲嚭鍌ㄤ綅鐘舵��
+                            startLocatInfoZ.Status = "5";//绉诲嚭涓�
+                            Db.Updateable(startLocatInfoZ).ExecuteCommand();
 
-                        //淇敼绉诲叆鍌ㄤ綅鐘舵��
-                        endLocatInfoZ.Status = "4";//绉诲叆涓�
-                        Db.Updateable(endLocatInfoZ).ExecuteCommand();
+                            //淇敼绉诲叆鍌ㄤ綅鐘舵��
+                            endLocatInfoZ.Status = "4";//绉诲叆涓�
+                            Db.Updateable(endLocatInfoZ).ExecuteCommand();
+                        }
+                        else//澶辫触
+                        {
+                            logTaskInfoZ.IsSuccess = 0;
+                            logTaskInfoZ.Information = agvMsg;
+                            Db.Insertable(logTaskInfoZ).ExecuteCommand();
+
+                            throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿logTaskInfoZ.PalletNo}");
+                        }
                     }
-                    else//澶辫触
+                    else
                     {
                         logTaskInfoZ.IsSuccess = 0;
-                        logTaskInfoZ.Information = agvMsg;
+                        logTaskInfoZ.Information = agvBindMsg;
                         Db.Insertable(logTaskInfoZ).ExecuteCommand();
 
                         throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿logTaskInfoZ.PalletNo}");
                     }
+                    
                 }
             }
             catch (Exception e)
@@ -1122,7 +1187,7 @@
         /// </summary>
         /// <param name="url"></param>
         /// <exception cref="Exception"></exception>
-        public void TransferBackTimer(string url)
+        public void TransferBackTimer(string url,string bindUrl)
         {
             try
             {
@@ -1197,33 +1262,47 @@
                         string agvMsg = string.Empty;
                         //缁欎笅杞︿笅鍙戜换鍔�
                         logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
-                        var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
-                        if (agvResult)//鎴愬姛
+                        //涓嬪彂杞藉叿涓庤揣浣嶇粦瀹�
+                        var bind = RcsHelper.BindPalletAndSite(detailInfo.PalletNo, detailInfo.LocatNo, bindUrl, out string agvBindMsg);
+                        if (bind)
                         {
-                            //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
-                            logTaskEntry.IsSuccess = 1;
-                            logTaskEntry.IsSend = 0;
-                            //logTaskEntry.IsCancel = 0;
-                            logTaskEntry.BackDate = DateTime.Now;
-                            logTaskEntry.Status = "1";//姝e湪鎵ц
-                            Db.Insertable(logTaskEntry).ExecuteCommand();
+                            var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
+                            if (agvResult)//鎴愬姛
+                            {
+                                //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+                                logTaskEntry.IsSuccess = 1;
+                                logTaskEntry.IsSend = 0;
+                                //logTaskEntry.IsCancel = 0;
+                                logTaskEntry.BackDate = DateTime.Now;
+                                logTaskEntry.Status = "1";//姝e湪鎵ц
+                                Db.Insertable(logTaskEntry).ExecuteCommand();
 
-                            //淇敼绉诲嚭鍌ㄤ綅鐘舵��
-                            locatModel.Status = "5";//绉诲嚭涓�
-                            Db.Updateable(locatModel).ExecuteCommand();
+                                //淇敼绉诲嚭鍌ㄤ綅鐘舵��
+                                locatModel.Status = "5";//绉诲嚭涓�
+                                Db.Updateable(locatModel).ExecuteCommand();
 
-                            //淇敼绉诲叆鍌ㄤ綅鐘舵��
-                            endLocatInfo.Status = "4";//绉诲叆涓�
-                            Db.Updateable(endLocatInfo).ExecuteCommand();
+                                //淇敼绉诲叆鍌ㄤ綅鐘舵��
+                                endLocatInfo.Status = "4";//绉诲叆涓�
+                                Db.Updateable(endLocatInfo).ExecuteCommand();
+                            }
+                            else//澶辫触
+                            {
+                                logTaskEntry.IsSuccess = 0;
+                                logTaskEntry.Information = agvMsg;
+                                Db.Insertable(logTaskEntry).ExecuteCommand();
+
+                                throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿detailInfo.PalletNo}");
+                            }
                         }
-                        else//澶辫触
+                        else
                         {
                             logTaskEntry.IsSuccess = 0;
-                            logTaskEntry.Information = agvMsg;
+                            logTaskEntry.Information = agvBindMsg;
                             Db.Insertable(logTaskEntry).ExecuteCommand();
 
                             throw new Exception($"缁欏皬杞︿笅鍙戠Щ搴撲换鍔″け璐ワ紝妗跺彿锛歿detailInfo.PalletNo}");
                         }
+                        
                     }
                 }
                 //鎻愪氦浜嬪姟
diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index 08815b0..0417f22 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -1294,8 +1294,12 @@
             }
 
             // 姝e紡杩愯绋嬪簭鏀惧紑
+            //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+            long ran = DateTime.Now.Ticks;
+            Dictionary<string, string> key = new Dictionary<string, string>();
+            key.Add("X-LR-REQUEST-ID", ran.ToString());
             var jsonData = JsonConvert.SerializeObject(agvTask);
-            string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+            string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV",key);
             //瑙f瀽杩斿洖鏁版嵁 
             var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
             if (agvModel.Code == "0")
diff --git a/Wms/WMS.BLL/SysServer/PalletsServer.cs b/Wms/WMS.BLL/SysServer/PalletsServer.cs
index d43f570..dc5f08f 100644
--- a/Wms/WMS.BLL/SysServer/PalletsServer.cs
+++ b/Wms/WMS.BLL/SysServer/PalletsServer.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq.Expressions;
+using System.Security.Policy;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -9,6 +10,7 @@
 using Model.ModelDto.LogDto;
 using Model.ModelDto.SysDto;
 using SqlSugar;
+using Utility.Tools;
 using WMS.BLL.LogServer;
 using WMS.Entity.Context;
 using WMS.Entity.DataEntity;
@@ -121,7 +123,7 @@
         /// <param name="locatNo"></param>
         /// <param name="userId"></param>
         /// <exception cref="Exception"></exception>
-        public void AddPallets(string palletNo,string locatNo, string deviceCode, int userId)
+        public void AddPallets(string palletNo,string locatNo, string deviceCode, string url, int userId)
         {
             var db = DataContext.Db;
             try
@@ -157,31 +159,50 @@
                 {
                     throw new Exception("鏂版坊鍔犵殑妗跺彧鑳界粦瀹氬噣妗跺尯");
                 }
+                //if (!string.IsNullOrEmpty(deviceCode))
+                //{
+                //    var areaInfo = db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(deviceCode));
+                //    if (areaInfo == null)
+                //    {
+                //        throw new Exception("鏈煡鍒拌澶囨墍灞炲尯鍩熶俊鎭�");
+                //    }
+                //    //125璁惧鏄帴鏂欏拰娣锋枡涓�浣撴満
+                //    if (deviceCode != "125")
+                //    {
+                //        if (!areaInfo.AreaName.Contains("鎺ユ枡璁惧"))
+                //        {
+                //            throw new Exception("鍙兘缁戝畾鎺ユ枡璁惧");
+                //        }
+                //        if (areaInfo.WareHouseNo != "M03")
+                //        {
+                //            throw new Exception("鍙湁澶у崟浣撹溅闂存墠鑳界粦瀹氳澶�");
+                //        }
+                //    }                    
+                //}
                 if (!string.IsNullOrEmpty(deviceCode))
                 {
-                    var areaInfo = db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(deviceCode));
-                    if (areaInfo == null)
+                    switch (deviceCode)
                     {
-                        throw new Exception("鏈煡鍒拌澶囨墍灞炲尯鍩熶俊鎭�");
+                        case "400":
+                            deviceCode = "400L";
+                            break;
+                        case "800":
+                            deviceCode = "800L";
+                            break;
+                        case "1000":
+                            deviceCode = "1000L";
+                            break;
+                        default:
+                            throw new Exception("涓嶈兘褰曞叆400锛�800锛�1000浠ュ鐨勫��");
                     }
-                    //125璁惧鏄帴鏂欏拰娣锋枡涓�浣撴満
-                    if (deviceCode != "125")
-                    {
-                        if (!areaInfo.AreaName.Contains("鎺ユ枡璁惧"))
-                        {
-                            throw new Exception("鍙兘缁戝畾鎺ユ枡璁惧");
-                        }
-                        if (areaInfo.WareHouseNo != "M03")
-                        {
-                            throw new Exception("鍙湁澶у崟浣撹溅闂存墠鑳界粦瀹氳澶�");
-                        }
-                    }                    
+
                 }
                 //寮�鍚簨鍔�
                 db.BeginTran();
 
                 palletModel = new SysPallets();
                 palletModel.PalletNo = palletNo;
+                palletModel.Standard = deviceCode;
                 palletModel.Type = "0";
                 palletModel.Status = "0";
                 palletModel.CreateUser = userId;
@@ -221,7 +242,7 @@
 
                     PalletStatus = "0",//鍑�妗�
 
-                    UDF1 = deviceCode,
+                    Standard = deviceCode,  //瑙勬牸
 
                     IsDel = "0",
                     CreateUser = userId,
@@ -235,6 +256,20 @@
                 locatModel.Status = "1";//鏈夌墿鍝�
                 db.Updateable(locatModel).ExecuteCommand();
 
+                //涓嬪彂AGV缁戝畾杞藉叿鎺ュ彛
+                //璋冪敤AGV鎺ュ彛涓嬪彂浠诲姟
+                //string agvMsg = string.Empty;
+                ////缁欎笅杞︿笅鍙戜换鍔�
+                //var agvResult = RcsHelper.BindPalletAndSite(palletNo, locatNo,url, out agvMsg);
+                //if (agvResult)//鎴愬姛
+                //{
+                //     //澧炲姞鏃ュ織
+                //}
+                //else//澶辫触
+                //{
+                //    throw new Exception("灏忚溅杞藉叿鍜屽簱浣嶅叧绯荤粦瀹氬け璐ワ紝鍘熷洜锛�"+agvMsg);
+                //}
+
                 //鎻愪氦浜嬪姟
                 db.CommitTran();
             }
diff --git a/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs b/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
index cdda1bb..aa4329b 100644
--- a/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
+++ b/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
@@ -16,8 +16,8 @@
         List<string> GetLotNoBySku(string skuNo);
         List<string> GetSku();
 
-        void jiaoLiaoHopper(string areaNo, string endLocate, string plnStatus, string standard, string skuNo, string lotNo, string url, int userId);
-        void jiaoCheHopper(string areaNo, string StartLocate, string plnNo, string plnStatus, decimal weight, string skuNo, string lotNo, string url, int userId);
+        void jiaoLiaoHopper(string areaNo, string endLocate, string plnStatus, string standard, string skuNo, string lotNo, string url,string bindUrl, int userId);
+        void jiaoCheHopper(string areaNo, string StartLocate, string plnNo, string plnStatus, decimal weight, string skuNo, string lotNo, string url, string bindUrl, int userId);
 
         /// <summary>
         /// 灏忚溅璧板嚭鍌ㄤ綅鍥炰紶浜嬩欢
@@ -25,7 +25,7 @@
         /// <param name="taskNo"></param>
         /// <param name="url"></param>
         /// <exception cref="Exception"></exception>
-        void OutBinAgv(string taskNo, string url);
+        void OutBinAgv(string taskNo, string url,string bindUrl);
 
         /// <summary>
         /// 灏忚溅鍙嶉浠诲姟瀹屾垚
@@ -44,6 +44,6 @@
         /// <param name="deviceStation">鍙枡鐐逛綅锛氣�漣nput鈥�-鍏ュ彛锛堝彨鑴忔《锛夛紝鈥漮utput鈥�-鍑哄彛锛堝噣妗剁敵璇峰偍浣嶏級</param>
         /// <param name="status"></param>
         /// <exception cref="Exception"></exception>
-        void RCSCleanRequest(string deviceID, string deviceStation, string status, string url);
+        void RCSCleanRequest(string deviceID, string deviceStation, string status, string url,string bindUrl);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs b/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs
index cfb445e..c9982c9 100644
--- a/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IPalletsServer.cs
@@ -33,6 +33,6 @@
         /// <param name="groupCount">缁勬暟</param>
         /// <param name="userId">鎿嶄綔浜�</param>
         /// <returns></returns>
-        void AddPallets(string palletNo, string locatNo,string deviceCode, int userId);
+        void AddPallets(string palletNo, string locatNo,string deviceCode,string url, int userId);
     }
 }
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 4656c21..5b12903 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -858,7 +858,7 @@
         {
             //璁板綍log
             var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            AgvResultModel resultModel = null;//杩斿洖淇℃伅
+            AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
             try
             {
                 var jsonData = JsonConvert.SerializeObject(model);
@@ -868,7 +868,9 @@
 
 
 
-                resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+                resultModel.code = "0";
+                resultModel.message = "鎴愬姛";
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟寮�濮�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -877,7 +879,9 @@
             {
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟寮�濮�-寮傚父锛�( {ex.Message} ),", logStr);
 
-                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+                resultModel.code = "1";
+                resultModel.message = ex.Message;
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟寮�濮�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -893,17 +897,24 @@
         {
             //璁板綍log
             var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            AgvResultModel resultModel = null;//杩斿洖淇℃伅
+            AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
             try
             {
+                var extraValue = new ExtraModel();
+                extraValue = model.extra;
+                if (!(extraValue.values.method == "outbin"))                                               
+                {
+                    throw new Exception("灏忚溅璋冪敤鏂规硶閿欒");
+                }
                 var jsonData = JsonConvert.SerializeObject(model);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-璇锋眰鎶ユ枃锛�( {jsonData} ),", logStr);
 
                 //鍏蜂綋澶勭悊鏂规硶
-                _hopper.OutBinAgv(model.taskCode, _config.AgvHost + _config.GenAgvSchedulingTask);
+                _hopper.OutBinAgv(model.robotTaskCode, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
 
-
-                resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+                resultModel.code = "0";
+                resultModel.message = "鎴愬姛";
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -912,7 +923,10 @@
             {
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-寮傚父锛�( {ex.Message} ),", logStr);
 
-                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+                
+                resultModel.code = "1";
+                resultModel.message = ex.Message;
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -928,16 +942,25 @@
         {
             //璁板綍log
             var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            AgvResultModel resultModel = null;//杩斿洖淇℃伅
+            AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
             try
             {
+                var extraValue = new ExtraModel();
+                extraValue = model.extra;
+                if (!(extraValue.values.method == "end"))
+                {
+                    throw new Exception("灏忚溅璋冪敤鏂规硶閿欒");
+                }
                 var jsonData = JsonConvert.SerializeObject(model);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-璇锋眰鎶ユ枃锛�( {jsonData} ),", logStr);
-
+               
                 //鍏蜂綋澶勭悊鏂规硶
-                _hopper.RCSFinishTask(model.taskCode, "1", "AGV");
+                _hopper.RCSFinishTask(model.robotTaskCode, "1", "AGV");
 
-                resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+                resultModel.code = "0";
+                resultModel.message = "鎴愬姛";
+                resultModel.da.robotTaskCode = model.robotTaskCode;
+
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -946,7 +969,9 @@
             {
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-寮傚父锛�( {ex.Message} ),", logStr);
 
-                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+                resultModel.code = "1";
+                resultModel.message = ex.Message;
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -962,7 +987,7 @@
         {
             //璁板綍log
             var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            AgvResultModel resultModel = null;//杩斿洖淇℃伅
+            AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
             try
             {
                 var jsonData = JsonConvert.SerializeObject(model);
@@ -972,7 +997,9 @@
 
 
 
-                resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+                resultModel.code = "0";
+                resultModel.message = "鎴愬姛";
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -981,7 +1008,9 @@
             {
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-寮傚父锛�( {ex.Message} ),", logStr);
 
-                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+                resultModel.code = "1";
+                resultModel.message = ex.Message;
+                resultModel.da.robotTaskCode = model.robotTaskCode;
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
                 LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
                 return Ok(resultModel);
@@ -1271,7 +1300,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _hopper.jiaoLiaoHopper(model.AreaNo,model.LocateNo,model.PlnStatus,model.Standard,model.SkuNo,model.LotNo,"", int.Parse(userId));
+                _hopper.jiaoLiaoHopper(model.AreaNo,model.LocateNo,model.PlnStatus,model.Standard,model.SkuNo,model.LotNo,_config.AgvHost+_config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
 
                 return Ok(new { data = model, code = 0, msg = "" });
             }
@@ -1302,7 +1331,7 @@
                 {
                     return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _hopper.jiaoCheHopper(model.AreaNo, model.LocateNo,model.PlnNo, model.PlnStatus, model.Weight , model.SkuNo, model.LotNo,"", int.Parse(userId));
+                _hopper.jiaoCheHopper(model.AreaNo, model.LocateNo,model.PlnNo, model.PlnStatus, model.Weight , model.SkuNo, model.LotNo, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
 
                 return Ok(new { data = model, code = 0, msg = "" });
             }
@@ -1327,7 +1356,7 @@
                 LogFile.SaveLogToFile($"娓呮礂鏈哄彨鏂�-璇锋眰鎶ユ枃锛�( {jsonData} ),", logStr);
 
                 //鍏蜂綋澶勭悊鏂规硶
-                _hopper.RCSCleanRequest(model.deviceID,model.deviceStation,model.status, _config.AgvHost + _config.GenAgvSchedulingTask);
+                _hopper.RCSCleanRequest(model.deviceID,model.deviceStation,model.status, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
 
                 resultModel = new AgvResultModel { code = "0", message = "璇锋眰鎴愬姛!"};
                 var jsonData2 = JsonConvert.SerializeObject(resultModel);
diff --git a/Wms/Wms/Controllers/SysController.cs b/Wms/Wms/Controllers/SysController.cs
index cbf1f6a..594879f 100644
--- a/Wms/Wms/Controllers/SysController.cs
+++ b/Wms/Wms/Controllers/SysController.cs
@@ -1327,7 +1327,7 @@
                 {
                     return Ok(new { code = 1, msg = "涓鸿幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
                 }
-                _palletSvc.AddPallets(model.PalletNo, model.LocatNo, model.DeviceCode, int.Parse(userId));
+                _palletSvc.AddPallets(model.PalletNo, model.LocatNo, model.DeviceCode,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
 
                 return Ok(new { code = 0, msg = "娣诲姞鎴愬姛", data = "" });
 
diff --git a/Wms/Wms/DailyTaskService.cs b/Wms/Wms/DailyTaskService.cs
index 70c64b9..7df1213 100644
--- a/Wms/Wms/DailyTaskService.cs
+++ b/Wms/Wms/DailyTaskService.cs
@@ -21,11 +21,13 @@
         private Timer _timer3;
         private string _wcsUrl;
         private string _agvUrl;
+        private string _agvBindUrl;
         private Timer _periodicReport;
-        public DailyTaskService(string wcsUrl,string agvUrl) 
+        public DailyTaskService(string wcsUrl,string agvUrl,string agvBindUrl) 
         {
             _wcsUrl = wcsUrl;
             _agvUrl = agvUrl;
+            _agvBindUrl = agvBindUrl;
         }
 
         //鍒涘缓瀹氭椂浠诲姟
@@ -60,7 +62,7 @@
             {
                 HopperTransportServer _stockDetail = new HopperTransportServer();
                 //浠诲姟閫昏緫
-                _stockDetail.TransferBackTimer(_agvUrl);
+                _stockDetail.TransferBackTimer(_agvUrl,_agvBindUrl);
             }
             catch (Exception ex)
             {
diff --git a/Wms/Wms/Properties/launchSettings.json b/Wms/Wms/Properties/launchSettings.json
index 5db9873..93e8fe8 100644
--- a/Wms/Wms/Properties/launchSettings.json
+++ b/Wms/Wms/Properties/launchSettings.json
@@ -1,13 +1,4 @@
 {
-  "iisSettings": {
-    "windowsAuthentication": false,
-    "anonymousAuthentication": true,
-    "iisExpress": {
-      "applicationUrl": "http://localhost:50515/",
-      "sslPort": 44363
-    }
-  },
-  "$schema": "http://json.schemastore.org/launchsettings.json",
   "profiles": {
     "IIS Express": {
       "commandName": "IISExpress",
@@ -24,5 +15,14 @@
       },
       "applicationUrl": "https://localhost:5001;http://localhost:5000"
     }
+  },
+  "$schema": "http://json.schemastore.org/launchsettings.json",
+  "iisSettings": {
+    "windowsAuthentication": false,
+    "anonymousAuthentication": true,
+    "iisExpress": {
+      "applicationUrl": "http://192.168.10.201",
+      "sslPort": 44363
+    }
   }
 }
\ No newline at end of file
diff --git a/Wms/Wms/Startup.cs b/Wms/Wms/Startup.cs
index 93f1405..8b470a4 100644
--- a/Wms/Wms/Startup.cs
+++ b/Wms/Wms/Startup.cs
@@ -33,9 +33,11 @@
             var url = Configuration.GetSection("ApiUrlConfig:WcsHost").Value + Configuration.GetSection("ApiUrlConfig:IssueComApiUrl").Value;
             //下发AGV路径Str
             var url2 = Configuration.GetSection("ApiUrlConfig:AgvHost").Value + Configuration.GetSection("ApiUrlConfig:IssueComApiUrl").Value;
+            //下发AGV路径Str
+            var url3 = Configuration.GetSection("ApiUrlConfig:AgvHost").Value + Configuration.GetSection("ApiUrlConfig:AGVBindPallets").Value;
             //调用定时任务
             services.AddHostedService<DailyTaskService>(provider =>
-            new DailyTaskService(url,url2));
+            new DailyTaskService(url,url2,url3));
 
             services.AddControllers()
                 .AddJsonOptions(options =>
diff --git a/Wms/Wms/Tools/ApiUrlConfig.cs b/Wms/Wms/Tools/ApiUrlConfig.cs
index fe5f1ff..dcb129a 100644
--- a/Wms/Wms/Tools/ApiUrlConfig.cs
+++ b/Wms/Wms/Tools/ApiUrlConfig.cs
@@ -86,6 +86,17 @@
         /// </summary>
         public string GenPreScheduleTask { get; set; }
 
+
+        /// <summary>
+        /// 杞藉叿涓庡簱浣嶇粦瀹氭帴鍙�
+        /// </summary>
+        public string AGVBindPallets { get; set; }
+
+        /// <summary>
+        /// 杞藉叿涓庡簱浣嶈В缁戞帴鍙�
+        /// </summary>
+        public string AGVUnBindPallets { get; set; }
+
         #endregion
 
         #endregion
diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json
index 2d3d5f6..37d4dc2 100644
--- a/Wms/Wms/appsettings.json
+++ b/Wms/Wms/appsettings.json
@@ -11,8 +11,8 @@
     //"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_JC37;User ID=sa;Password=sql2019;Integrated Security=False;"
-    //"ConnectionString": "Server=.;Database=WMS_JC09;User ID=sa;Password=sql2019;Integrated Security=False;"
+    //"ConnectionString": "Server=192.168.62.200;Database=WMS_JC37;User ID=sa;Password=sql2019;Integrated Security=False;"
+    "ConnectionString": "Server=.;Database=WMS_JC37;User ID=sa;Password=sa@123456;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 搴撹繛鎺ュ瓧绗︿覆
     //"ConnectionString": "Server=172.16.105.10;Database=WMS_JC23-2;User ID=sa;Password=sql2019;Integrated Security=False;"
@@ -29,7 +29,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
+    "AgvHost": "http://192.168.10.22", //agvIP
 
     "IssueComApiUrl": "/api/WCSApi/AddTasks", //涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
     "IssueComApiUrl2": "/api/WCSApi/AddTask", //閲嶆柊涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
@@ -43,8 +43,10 @@
 
 
     // AGV
-    "GenAgvSchedulingTask": "/rcms/services/rest/hikRpcService/genAgvSchedulingTask", //鐢熸垚浠诲姟鍗曟帴鍙�
-    "ContinueTask": "/rcms/services/rest/hikRpcService/continueTask", //缁х画鎵ц浠诲姟鎺ュ彛
-    "GenPreScheduleTask": "/rcms/services/rest/hikRpcService/genPreScheduleTask" // 棰勮皟搴﹀澶栨帴鍙�
+    "GenAgvSchedulingTask": "/rcs/rtas/api/robot/controller/task/submit", //鐢熸垚浠诲姟鍗曟帴鍙�
+    "ContinueTask": "/rcs/rtas/api/robot/controller/task/extend/continue", //缁х画鎵ц浠诲姟鎺ュ彛
+    "GenPreScheduleTask": "/rcms/services/rest/hikRpcService/genPreScheduleTask", // 棰勮皟搴﹀澶栨帴鍙�
+    "AGVBindPallets": "/rcs/rtas/api/robot/controller/carrier/bind", //杞藉叿涓庡簱浣嶇粦瀹氭帴鍙�
+    "AGVUnBindPallets": "/rcs/rtas/api/robot/controller/carrier/bind" //杞藉叿涓庡簱浣嶈В缁戞帴鍙�
   }
 }

--
Gitblit v1.8.0