From 6d2faa6e299bdfe545ee339269e64f2900229147 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期三, 16 七月 2025 17:29:26 +0800 Subject: [PATCH] 添加AGV实时状态反馈接口、看板获取AGV状态接口 --- dispatch/GZRobot.cs | 86 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 75 insertions(+), 11 deletions(-) diff --git a/dispatch/GZRobot.cs b/dispatch/GZRobot.cs index 213e3d5..4fffff2 100644 --- a/dispatch/GZRobot.cs +++ b/dispatch/GZRobot.cs @@ -1,11 +1,17 @@ 锘縰sing System; using System.Collections.Generic; using System.IdentityModel.Protocols.WSTrust; +using System.Linq; +using System.Security.Policy; using System.Threading.Tasks; -using HH.WCS.Mobox3.AnGang.util; + using HH.WCS.Mobox3.AnGang.core; using HH.WCS.Mobox3.AnGang.models; +using HH.WCS.Mobox3.AnGang.util; + using Newtonsoft.Json; + +using static System.Net.WebRequestMethods; using static HH.WCS.Mobox3.AnGang.api.ApiModel; namespace HH.WCS.Mobox3.AnGang.dispatch { @@ -26,7 +32,8 @@ var result = apiHelper.Post(baseUrl + "api/engine/tasks/iostates/", JsonConvert.SerializeObject(data)); var dataResult = JsonConvert.DeserializeObject<gzResult<IOStatesInfoResult>>(result); } - + + // DOC 1. 鍒涘缓璁㈠崟 WMS->RCS public static int CreateOrder(string taskNo, int priority, string param, string ts = "churuku", string created_user = "hanhe") { LogHelper.Info($"CreateOrder鍙傛暟淇℃伅:taskNo:{taskNo},priority:{priority},param:{param},ts:{ts}锛宑reated_user锛歿created_user}", "API"); var msg = ""; @@ -40,7 +47,14 @@ if (response != "") { try { var dataResult = JsonConvert.DeserializeObject<gzResult<OrderInfoResult>>(response); - if (dataResult.code == 0) { + // 鍘熶唬鐮侀儴鍒�+ //if (dataResult.code == 0) { + // orderId = dataResult.data[0].in_order_id; + //} + // 灏婇噸鏂囨。鐨勭増鏈�+ // 杩斿洖鍙傛暟涓紝code鐩墠涓嶅啀浣跨敤锛屽彲閫氳繃msg瀛楁鍒ゆ柇鏄惁鎴愬姛锛屽鏋渕sg涓衡�success鈥濆垯琛ㄧず鎴愬姛锛屽惁鍒欎负鎶ラ敊淇℃伅鎴栦笉瀛樺湪銆俬ttp code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊锛屽叾涓殑msg鏃犳硶鍏ㄩ儴鑾峰彇銆�+ // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶锛屾棤娉曡幏鍙杊eader锛屾殏鏃朵笉鑰冭檻 + if (dataResult.msg == "success") { orderId = dataResult.data[0].in_order_id; } } @@ -76,6 +90,7 @@ return result; } + // DOC 2. 鍙栨秷璁㈠崟 WMS->RCS public static bool CancelGZOrder(int orderId) { bool result = false; string msg = ""; @@ -86,12 +101,21 @@ msg = $"[guozi-CancelOrder] request={requests};response={response}"; if (response != "") { var dataResult = JsonConvert.DeserializeObject<CancelGZOrderResult>(response); - if (dataResult.code == 0) { - msg = "[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"; - Console.WriteLine(msg); + // 鍘熶唬鐮佺増鏈�+ //if (dataResult.code == 0) { + // msg = "[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"; + // Console.WriteLine(msg); + // result = true; + // return result; + //} + + // 灏婇噸鏂囨。鐨勭増鏈�+ if (dataResult.msg == "success") { // 鐩墠鍙彇娑堜竴涓换鍔★紝鎴愬姛鏃犻渶鍐嶆鏌uccess_list鍜宔rror_list + Console.WriteLine("[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"); result = true; return result; } + } else { msg = "[guozi-CancelOrder]鍙栨秷璁㈠崟澶辫触"; @@ -100,13 +124,13 @@ return result; } - + // DOC 3. 璁㈠崟鐘舵�鎺ㄩ� RCS->WMS /// <summary> /// 璁㈠崟鐘舵�鍙嶉 /// </summary> /// <returns></returns> public static GzResult orderStatusReport(orderStatusReportParme model) { - LogHelper.Info("RCS鍥借嚜AGV浠诲姟鐘舵�鍥炴姤锛� + JsonConvert.SerializeObject(model), "HosttoagvTask"); + LogHelper.Info("orderStatusReport锛歊CS鍥借嚜AGV浠诲姟鐘舵�鍥炴姤锛� + JsonConvert.SerializeObject(model), "HosttoagvTask"); GzResult result = new GzResult(); AgvTaskState agv = new AgvTaskState(); @@ -122,6 +146,10 @@ break; case "waiting": agv.state = 1; + break; + case "dispatched": + //璋冨害娲捐溅锛堝紑濮嬪彇璐э級NEW ADDED + agv.state = 3; break; case "source_finish": //鍙栬揣瀹屾垚 @@ -193,6 +221,7 @@ return result; } + // DOC 6. 浜や簰琛ㄦ煡璇� /// <summary> /// 鑾峰彇浜や簰淇℃伅 /// </summary> @@ -228,6 +257,32 @@ return list; } + /// <summary> + /// 鏍规嵁娌℃湁interaction_info_name锛坱ask.S_CODE锛夎幏鍙杋nteraction_info_id + /// </summary> + /// <param name="taskCode"></param> + /// <param name="infoId"></param> + /// <returns></returns> + public static bool TryGetInteractionInfoId(string taskCode, out int infoId) { + var list = QueryInteractInfo(3); + if (list.Count == 0) { + LogHelper.Info($"鏌ヤ氦浜掕〃澶辫触锛佹病鏈夎鍙栧埌浜や簰琛紒"); + infoId = 0; + return false; + } + + var data = list.Where(i => i.interaction_info_name == taskCode).FirstOrDefault(); + if (data == null) { + LogHelper.Info($"鏌ヤ氦浜掕〃澶辫触锛佹病鏈塱nteraction_info_name='{taskCode}'鐨勫�锛� + JsonConvert.SerializeObject(list)); + infoId = 0; + return false; + } + + infoId = data.interaction_info_id; + return true; + } + + // DOC 6. 浜や簰琛ㄦ煡璇紙鏇存柊缁堢偣璐т綅锛� public static bool UpdateInteractInfo(UpdateInteractInfo interactInfo) { string msg = ""; var result = false; @@ -240,20 +295,28 @@ } else { msg = "[guozi-UpdateInteractInfo]鏇存柊浜や簰淇℃伅澶辫触"; - Console.WriteLine(msg); + //Console.WriteLine(msg); + LogHelper.Info(msg); } return result; } + + // DOC 5. 绉伴噸淇℃伅鏌ヨ public static List<CustomData> CustomBuf() { var res = new List<CustomData>(); + string msg = ""; - var result = apiHelper.Get(baseUrl + $"/api/engine/agvs/custom-buf/"); + //var result = apiHelper.Get(baseUrl + $"/api/engine/agvs/custom-buf/", "application/json"); + LogHelper.Info($"姝e湪璇锋眰GET: \"/api/engine/agvs/custom-buf/\"", "API"); + var result = apiHelper.GetNew(baseUrl + $"api/engine/agvs/custom-buf/"); if (!string.IsNullOrEmpty(result)) { Console.WriteLine(result); try { + LogHelper.Info($"绉伴噸淇℃伅锛� + result); var data = JsonConvert.DeserializeObject<gzResult<CustomData>>(result); + if (data.data != null) { res = data.data; } @@ -406,8 +469,9 @@ public class UpdateInteractInfo { public int interaction_info_id { get; set; } + public string type_name { get; set; } = "GET_DST"; public string info_status { get; set; } - public string return_value { get; set; } + public string return_value { get; set; } = ""; } public class interaction_state { -- Gitblit v1.9.1