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