From 86f899fa91e811415614dff1a699141144bfc802 Mon Sep 17 00:00:00 2001
From: quanzhou <quan.zhou@broconcentric.com>
Date: 星期五, 12 十二月 2025 13:25:37 +0800
Subject: [PATCH] S5上传mes逻辑修改及打印机逻辑修改和数据库存储数据增加
---
src/Bro.M141.Process/MyMQTT.cs | 94 ++++++++++++++++++++---------------------------
1 files changed, 40 insertions(+), 54 deletions(-)
diff --git a/src/Bro.M141.Process/MyMQTT.cs b/src/Bro.M141.Process/MyMQTT.cs
index da6a495..e458671 100644
--- a/src/Bro.M141.Process/MyMQTT.cs
+++ b/src/Bro.M141.Process/MyMQTT.cs
@@ -114,6 +114,7 @@
if (MSGClasses.Any(u => u.zguid == obj?.zbguid))
{
var tem = MSGClasses.FirstOrDefault(u => u.zguid == obj?.zbguid);
+
if (!string.IsNullOrEmpty(tem.receive))
{
tem.receive = message;
@@ -140,7 +141,15 @@
}
else
{
- CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 鐗╂枡 鏀跺埌鏈尮閰� zbguid锛歿obj?.zbguid}");
+ Thread.Sleep(100);
+ if (_pendingTask2.TryRemove(obj.zbguid, out var tcs2))
+ {
+ tcs2.TrySetResult(message);
+ }
+ else
+ {
+ CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ 鐗╂枡 鏀跺埌鏈尮閰� zbguid锛歿obj?.zbguid}");
+ }
}
}
catch (Exception ex)
@@ -149,8 +158,7 @@
}
}
- //Dictionary<string, Task> dic_ispass = new Dictionary<string, Task>();///value涓烘敹鍒版暟鎹�
-
+ int num = 0;
public async Task<string> MESForBasketAsync(string ztype, string zlsn, string zlpn, string zstatus, string zversion, int timeoutMes = 30000)
{
@@ -158,31 +166,32 @@
if (MSGClasses.Any(u => u.key == keystr))
{
- var tem = MSGClasses.FirstOrDefault(u => u.key == keystr);
-
- DateTime dt = DateTime.Now;
- while ((DateTime.Now - dt).TotalMilliseconds < timeoutMes)
+ CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"{keystr}鍖归厤鎴愬姛");
+ num++;
+ //var tem = MSGClasses.FirstOrDefault(u => u.key == keystr);
+ var tem = MSGClasses.Where(u => u.key == "1" && !string.IsNullOrEmpty(u.receive)).ToList();
+ //DateTime dt = DateTime.Now;
+ if (num < 10)
{
- if (!string.IsNullOrEmpty(tem.receive))
- {
-
- CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ {keystr}浜屾鎺ユ敹 杩斿洖鍊兼甯� {tem.receive}");
-
- return tem.receive;
- }
- Thread.Sleep(1000);
+ //while ((DateTime.Now - dt).TotalMilliseconds < timeoutMes)
+ //{
+ if (!string.IsNullOrEmpty(tem[0].receive))
+ {
+ CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ {keystr}浜屾鎺ユ敹 杩斿洖鍊兼甯� {tem[0].receive}");
+ return tem[0].receive;
+ }
+ Thread.Sleep(1000);
+ //}
}
- if (MSGClasses.Count > 10)
+ else
{
- MSGClasses.RemoveAt(0);
- CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ浜屾鎺ユ敹鏁版嵁瓒呰繃鍗佹潯 娓呴櫎绗竴鏉¤秴鏃舵暟鎹�");
+ num = 0;
+ CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ瓒呮椂澶勭悊娆℃暟瓒呰繃鍗佹");
+ //return null;
}
- //MSGClasses.RemoveAll(u => u.key == keystr);
-
-
- return null;
+ CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Information, $"RabbitMQ浜屾鎺ユ敹鏁版嵁鎺ユ敹涓虹┖");
+ //return null;
}
-
var guid = Guid.NewGuid().ToString();
var tcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
@@ -215,14 +224,20 @@
}
else
{
+ CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩斿洖瓒呮椂1锛寊bguid={guid}");
+
MSGClasses.Add(new MSGClass()
{
key = keystr,
zguid = guid,
});
+ if (MSGClasses.Count > 10)
+ {
+ MSGClasses.RemoveAt(0);
+ }
- CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"RabbitMQ 绡叿 杩斿洖瓒呮椂1锛寊bguid={guid}");
+
return null;
}
}
@@ -243,31 +258,6 @@
{
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)
{
@@ -292,10 +282,6 @@
zbarcode = pro.SN,
zresult = zresult,
zreson = zr,
- //zreson = pro.Result == "OK" ? "" : "SZ2014",
- //
-
- //
zno = znonum.ToString(),
zwoid = pro.Zword,
endtray = endtray,
@@ -308,7 +294,7 @@
_sendChannel.BasicPublish("", "auto_line_mac_barcode_queue", null, body);
var completed = await Task.WhenAny(tcs.Task, Task.Delay(timeoutMs));
- _pendingTask2.TryRemove(guid, out _);
+ //_pendingTask2.TryRemove(guid, out _);
if (completed == tcs.Task)
return await tcs.Task;
else
--
Gitblit v1.8.0