From 6a4463810e276b62356d77c88509fa6fa7af65cf Mon Sep 17 00:00:00 2001
From: kingno <30263@KINGNO>
Date: 星期三, 23 七月 2025 15:46:33 +0800
Subject: [PATCH] mes数据逻辑上传完善,缺陷代码完善,添加S4工位的S2结果上传Plc的通信日志mes优化

---
 src/Bro.M141.Process/MyMQTT.cs |   80 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 73 insertions(+), 7 deletions(-)

diff --git a/src/Bro.M141.Process/MyMQTT.cs b/src/Bro.M141.Process/MyMQTT.cs
index 78ce1c3..209162d 100644
--- a/src/Bro.M141.Process/MyMQTT.cs
+++ b/src/Bro.M141.Process/MyMQTT.cs
@@ -15,6 +15,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using ZXing;
 
 namespace Bro.M141.Process
 {
@@ -133,7 +134,7 @@
             }
         }
 
-        public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMs = 3000)
+        public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMs = 30000)
         {
             var guid = Guid.NewGuid().ToString();
             var tcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
@@ -167,11 +168,60 @@
             }
         }
 
-        public async Task<string> MESForProduceAsync(ProductModel pro, string zwoid, int znonum, string endtray = "N", string line = "NQ216", int timeoutMs = 3000)
+        public async Task<string> MESForProduceAsync(ProductModel pro, string zversion, int znonum, string endtray = "N", string line = "NQ216", int timeoutMs = 3000)
         {
             var guid = Guid.NewGuid().ToString();
             var tcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
             _pendingTask2[guid] = tcs;
+
+            string zresult = "OK";
+            if (string.IsNullOrWhiteSpace(pro.Result))
+            {
+                zresult = "NG";
+            }
+            else if (!"OK".Equals(pro.Result))
+            {
+                zresult = "NG";
+            }
+            //string zr;
+            //switch (pro.Result)
+            //{
+            //    case "ok":
+            //        zr = "";
+            //        break;
+            //    case "寮傝壊":
+            //        zr = "SZ2001";
+            //        break;
+            //    case "纾ㄥ嵃":
+            //        zr = "SZ2012";
+            //        break;
+            //    case "鍘嬩激":
+            //        zr = "SZ2014";
+            //        break;
+            //    case "鍙樺舰":
+            //        zr = "SZ2014";
+            //        break;
+            //    case "鍒掍激":
+            //        zr = "SZ2021";
+            //        break;
+            //    default:
+            //        zr = "S31006";
+            //        break;
+            //}
+
+            var DefectCodeMap = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
+            {
+                ["ok"] = "",
+                ["寮傝壊"] = "SZ2001",
+                ["纾ㄥ嵃"] = "SZ2012",
+                ["鍘嬩激"] = "SZ2014",
+                ["鍙樺舰"] = "SZ2014",
+                ["鍒掍激"] = "SZ2021"
+            };
+            const string DefaultErrorCode = "S31006";
+           
+            string zr = DefectCodeMap.TryGetValue(pro.Result, out var code) ? code : DefaultErrorCode;
+
 
 
             var msgObj = new AutoLineMacBarcodeQueue
@@ -180,16 +230,21 @@
                 zdate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"),
                 zline = line,
                 zbarcode = pro.SN,
-                zresult = string.IsNullOrWhiteSpace(pro.Result) ? "NG" : pro.Result,
-                zreson = pro.Result == "OK" ? "" : "SZ2014",
+                zresult = zresult,
+                zreson = zr,
+                //zreson = pro.Result == "OK" ? "" : "SZ2014",
+                //
+
+                //
                 zno = znonum.ToString(),
-                zwoid = zwoid,
-                endtray = endtray
+                zwoid = pro.Zword,
+                endtray = endtray,
+                zversion = zversion
             };
 
             var message = JsonConvert.SerializeObject(msgObj);
             var body = Encoding.UTF8.GetBytes(message);
-            CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ鍙戦�佷骇鍝亄pro.PID} 鏁版嵁2锛歿message}");
+            CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ鍙戦�佷骇鍝亄pro.PID} 鏁版嵁2锛歿message},缂洪櫡浠g爜涓簕zr}");
             _sendChannel.BasicPublish("", "auto_line_mac_barcode_queue", null, body);
 
             var completed = await Task.WhenAny(tcs.Task, Task.Delay(timeoutMs));
@@ -600,6 +655,17 @@
         /// 榛樿锛歂;闆舵暟灏剧洏锛歒
         /// </summary>
         public string endtray { get; set; } = "N";
+              /// <summary>
+        /// 姣忎釜ztype涓嬪搴旂嫭绔嬩竴涓簭鍒楀彿锛屼竴涓笟鍔″姩浣滀竴涓紝浠�0寮�濮嬶紝
+        /// 姣忔鍔�1锛屽埌杈鹃槇鍊煎悗鍙噸缃紙姣斿100鍚庝粠0寮�濮嬶級锛屽彧瑕佸拰涓婁竴
+        /// 娆$殑涓嶄竴鏍峰嵆鍙�
+        /// 涓氬姟鍔ㄤ綔瑙i噴锛氭瘮濡倆type涓�2鏃讹紝Q01-000001瑙g粦鏃朵紶搴忓垪鍙�1锛�
+        /// 濡傛灉Q01-000001鍦ㄤ竴浜涘紓甯告儏鍐典笅锛岄渶瑕侀噸璇曞垯杩樻槸浼犲簭鍒楀彿涓�1,
+        /// 涓嬩竴涓猀01-000002瑙g粦鏃朵紶搴忓垪鍙�2
+        /// 閫氫織鐨勮锛氫竴涓獄type+zversion鍙兘鎴愬姛澶勭悊涓�娆★紙闃堝�奸噸缃鑷�
+        /// 鐨勯噸澶嶉櫎澶栵級
+        /// </summary>
+        public string zversion { get; set; }
     }
 
     public class AutoLineMacBarcodeQueueBak

--
Gitblit v1.8.0