From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Plugin.TestResult/Util/PNUtil.cs |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 deletions(-)

diff --git a/Plugin.TestResult/Util/PNUtil.cs b/Plugin.TestResult/Util/PNUtil.cs
new file mode 100644
index 0000000..d7bf7ec
--- /dev/null
+++ b/Plugin.TestResult/Util/PNUtil.cs
@@ -0,0 +1,108 @@
+锘縰sing HMI.Core.Util;
+using log4net;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Plugin.TestResult_WPF;
+using System;
+using System.Net.Http;
+using System.Text;
+
+namespace Plugin.TestResult.Util
+{
+    public class HttpResult
+    {
+        public int code { get; set; }
+        public string msg { get; set; }
+        public string ipn { get; set; }
+    }
+
+    public class PNUtil
+    {
+        public static bool GetPN(string mesAddress, string stationName, string sn, out string pn, out string msg)
+        {
+            pn = null;
+            msg = string.Empty;
+            try
+            {
+                //OP170Burn-In鑰佸寲
+                string json = $"{{\"csn\":\"{sn}\",\"station_name\":\"{stationName}\"}}";
+                HttpClient val = new HttpClient();
+                ViewControl.Logger.Debug($"Get PN Send: [{json}]");
+                try
+                {
+                    StringContent val2 = new StringContent(json, Encoding.UTF8, "application/json");
+                    HttpResponseMessage result = val.PostAsync($"http://{mesAddress}/mes-module-system-2.1.1/lixun/api/getPn", (HttpContent)(object)val2).Result;
+                    result.EnsureSuccessStatusCode();
+                    string resJson = result.Content.ReadAsStringAsync().Result;
+                    HttpResult httpResult = JsonUtil.Deserialize<HttpResult>(resJson);
+                    ViewControl.Logger.Debug($"Get PN Receive: [{resJson}]");
+                    if (httpResult.code == 200)
+                    {
+                        pn = httpResult.ipn;
+                        return true;
+                    }
+                    msg = httpResult.msg;
+                    return false;
+                }
+                finally
+                {
+                    ((IDisposable)val)?.Dispose();
+                }
+            }
+            catch (Exception ex)
+            {
+                ViewControl.Logger.Debug($"Get PN Error.", ex);
+                msg = $"璇锋眰PN寮傚父锛亄ex.Message}";
+                return false;
+            }
+        }
+
+
+        public static bool CheckIn(ILog log, string mesAddress, string stationName, string sn, out bool needCheckIn, out string msg)
+        {
+            JObject data = new JObject();
+            data.Add("cmd", "QUERY_RECORD");
+            data.Add("p", "UOP");
+
+            data.Add("sn", sn);
+            data.Add("station_name", stationName);
+            data.Add("op", "A0000001");
+
+            needCheckIn = false;
+            msg = string.Empty;
+            string sendData = string.Empty;
+            string resData = null;
+            try
+            {
+                sendData = data.ToString(Formatting.None);
+                using (HttpClient val = new HttpClient())
+                {
+                    StringContent val2 = new StringContent(sendData, Encoding.UTF8, "application/json");
+                    HttpResponseMessage result = val.PostAsync("http://" + mesAddress + "/mes-module-system-2.1.1/lixun/api/checkIn", (HttpContent)(object)val2).Result;
+                    result.EnsureSuccessStatusCode();
+                    resData = result.Content.ReadAsStringAsync().Result;
+                    JObject httpResult = JObject.Parse(resData);
+
+                    log.Info("CheckIn Send: " + httpResult.Value<string>("sendStr"));
+                    log.Info("CheckIn Receive: " + httpResult.Value<string>("receiveStr"));
+                    log.Info("CheckIn Get: " + resData);
+
+                    msg = httpResult.Value<string>("msg");
+                    if (httpResult.Value<int>("code") == 200)
+                    {
+                        needCheckIn = httpResult.Value<bool>("needCheckIn");
+                        return true;
+                    }
+                    log.Error("CheckIn Error: " + msg);
+                    return false;
+                }
+            }
+            catch (Exception ex)
+            {
+                msg = ex.Message + " in " + ex.StackTrace + ".SendStr: " + sendData + ",ResultStr: " + resData;
+                log.Error("CheckIn Unknow Error: " + msg);
+                return false;
+            }
+        }
+    }
+}

--
Gitblit v1.9.1