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/Utility/Tools/RcsHelper.cs |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 101 insertions(+), 4 deletions(-)

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;
+        }
     }
 }

--
Gitblit v1.8.0