From f99d20ec22574e82dd3e0e3689e4d9382ac8b447 Mon Sep 17 00:00:00 2001 From: SoulStar Date: Wed, 29 Apr 2026 13:15:03 +0800 Subject: [PATCH] =?UTF-8?q?dubug=20-=20=E4=BC=98=E5=8C=96webAPI=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=97=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SlnMesnac.Rfid/MeshttpClient.cs | 55 ++++++++++++++----- .../IndexPage/ChangeTypeViewModel.cs | 5 ++ 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/SlnMesnac.Rfid/MeshttpClient.cs b/SlnMesnac.Rfid/MeshttpClient.cs index 02c4a4e..92f66db 100644 --- a/SlnMesnac.Rfid/MeshttpClient.cs +++ b/SlnMesnac.Rfid/MeshttpClient.cs @@ -66,7 +66,7 @@ namespace SlnMesnac.TouchSocket } - /// + /// s /// 获取到的JToken类型转换为实体类 /// /// @@ -98,21 +98,25 @@ namespace SlnMesnac.TouchSocket { FeedbackType = FeedbackType.WaitInvoke }; - if (MESHttpClient != null) + if (MESHttpClient == null) { - if (!MESHttpClient.Online) + Console.WriteLine("MES客户端为空,重新初始化..."); + await CreateWebApiClientAsync(m_IpHost); + } + else if (!MESHttpClient.Online) + { + Console.WriteLine("连接断开,尝试重连..."); + try { - Console.WriteLine("与MES客户端连接断开,尝试重新连接..."); - await MESHttpClient.SetupAsync(new TouchSocketConfig() - .SetRemoteIPHost(m_IpHost) - ); - Console.WriteLine("正在连接:" + m_IpHost); await MESHttpClient.ConnectAsync(); - Console.WriteLine("连接成功"); - Console.WriteLine(m_IpHost + "连接成功"); + } + catch + { + Console.WriteLine("重连失败,重新初始化客户端..."); + await CreateWebApiClientAsync(m_IpHost); } } - + var request = new WebApiRequest(); request.Method = HttpMethodType.Get; request.Querys = new KeyValuePair[] { new KeyValuePair("lineCode", lineCode), new KeyValuePair("planDate", datetime) }; @@ -120,7 +124,28 @@ namespace SlnMesnac.TouchSocket try { //responseValue = await MESHttpClient.InvokeTAsync("/ApiServer/get", invokeOption_30s, request); - responseValue = await MESHttpClient.InvokeTAsync("/api/plan/get", invokeOption_30s, request); + try + { + responseValue = await MESHttpClient.InvokeTAsync("/api/plan/get", invokeOption_30s, request); + } + catch (Exception ex) + { + Console.WriteLine("调用失败,准备重连重试:" + ex.Message); + + // 强制重连 + try + { + await MESHttpClient.ConnectAsync(); + } + catch + { + await CreateWebApiClientAsync(m_IpHost); + } + + // 再试一次 + responseValue = await MESHttpClient.InvokeTAsync("/api/plan/get", invokeOption_30s, request); + } + if (responseValue != null) { Console.WriteLine("MES接口返回:" + JsonSerializer.Serialize(responseValue)); @@ -142,12 +167,12 @@ namespace SlnMesnac.TouchSocket Log.Information(ex.Message); return "202"; } - - + + //var responseValue = await MESHttpClient.InvokeTAsync("/ApiServer/get", invokeOption_30s, request); //JToken responseValue = await MESHttpClient.InvokeTAsync("Get:/api/plan", null, requestValue); - + } catch (Exception ex) { diff --git a/SlnMesnac.WPF/ViewModel/IndexPage/ChangeTypeViewModel.cs b/SlnMesnac.WPF/ViewModel/IndexPage/ChangeTypeViewModel.cs index bff932b..29b67ad 100644 --- a/SlnMesnac.WPF/ViewModel/IndexPage/ChangeTypeViewModel.cs +++ b/SlnMesnac.WPF/ViewModel/IndexPage/ChangeTypeViewModel.cs @@ -185,6 +185,11 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage } //Console.WriteLine("序列化:" + responsejson.Code); + if(responsejson.Data == null || responsejson.Data.Count == 0) + { + MessageBox.Show("今天无订单", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + if (response != null) { ChangeTypePanel.Clear();