From af774ba564d88eba161d72d553a8c1786e25b37e Mon Sep 17 00:00:00 2001 From: haoliang <821644@qq.com> Date: Wed, 20 May 2026 00:13:08 +0800 Subject: [PATCH] =?UTF-8?q?Track()=E8=BF=94=E5=9B=9E=E5=80=BC=E5=8A=A0work?= =?UTF-8?q?erId+=E9=87=8D=E6=94=BE=E9=AA=8C=E8=AF=81=E9=80=9A=E8=BF=87?= =?UTF-8?q?=EF=BC=9A=E4=B8=89=E9=A1=B5=E9=9D=A2=E6=80=BB=E4=BA=A7=E9=87=8F?= =?UTF-8?q?=E4=B8=80=E8=87=B4(2038)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CncCollector/Core/CollectWorker.cs | 7 ++++--- src/CncCollector/Core/ProductionTracker.cs | 8 ++++---- src/CncReplay/Program.cs | 5 +++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/CncCollector/Core/CollectWorker.cs b/src/CncCollector/Core/CollectWorker.cs index 0f3002d..5b08ab7 100644 --- a/src/CncCollector/Core/CollectWorker.cs +++ b/src/CncCollector/Core/CollectWorker.cs @@ -481,12 +481,13 @@ namespace CncCollector.Core records.Add(record); // 产量跟踪(program_name为空时不触发分段逻辑) - var (logText, changed, todayTotal) = _tracker.Track( + var trackResult = _tracker.Track( machine.Id, record.ProgramName, record.TotalPartCount, collectTime); + record.WorkerId = trackResult.matchedWorkerId; analysisLogs.Add("---机床:" + machine.Name + "---"); analysisLogs.Add("采集到:程序名=" + (record.ProgramName ?? "(空)") + ",加工零件总数=" + (record.TotalPartCount?.ToString() ?? "(空)")); - analysisLogs.Add("处理结果:" + logText); - analysisLogs.Add("当日该机床累计产量:" + todayTotal.ToString("F0") + "个"); + analysisLogs.Add("处理结果:" + trackResult.logText); + analysisLogs.Add("当日该机床累计产量:" + trackResult.todayTotal.ToString("F0") + "个"); analysisLogs.Add(""); } diff --git a/src/CncCollector/Core/ProductionTracker.cs b/src/CncCollector/Core/ProductionTracker.cs index 5d45e77..dabc135 100644 --- a/src/CncCollector/Core/ProductionTracker.cs +++ b/src/CncCollector/Core/ProductionTracker.cs @@ -18,14 +18,14 @@ namespace CncCollector.Core _connectionString = connectionString; } - public (string logText, bool changed, decimal todayTotal) Track( + public (string logText, bool changed, decimal todayTotal, int? matchedWorkerId) Track( int machineId, string programName, decimal? totalPartCount, DateTime collectTime) { if (string.IsNullOrEmpty(programName) || !totalPartCount.HasValue) { var skipReason = string.IsNullOrEmpty(programName) ? "程序名为空" : "加工零件总数为空"; _log.Debug(string.Format("机床{0}: 跳过产量跟踪({1})", machineId, skipReason)); - return ("跳过:" + skipReason, false, 0); + return ("跳过:" + skipReason, false, 0, null); } lock (_lock) @@ -70,13 +70,13 @@ namespace CncCollector.Core new { Mid = machineId, Date = effectiveDate, WorkerId = matchedWorkerId }); _log.Info(string.Format("机床{0}: {1}(当日累计产量={2})", machineId, logText, todayTotal)); - return (logText, changed, todayTotal); + return (logText, changed, todayTotal, matchedWorkerId); } } catch (Exception ex) { _log.Error(string.Format("产量跟踪处理失败(machine_id={0})", machineId), ex); - return ("异常:" + ex.Message, false, 0); + return ("异常:" + ex.Message, false, 0, null); } } } diff --git a/src/CncReplay/Program.cs b/src/CncReplay/Program.cs index 14bc670..97ea91c 100644 --- a/src/CncReplay/Program.cs +++ b/src/CncReplay/Program.cs @@ -184,11 +184,12 @@ namespace CncReplay records.Add(record); // 调用产量跟踪 - var (logText, changed, todayTotal) = tracker.Track( + var trackResult = tracker.Track( machine.Id, programName, totalPartCount, log.RequestTime); + record.WorkerId = trackResult.matchedWorkerId; analysisLogs.Add("---机床:" + machine.Name + "---"); analysisLogs.Add("程序名=" + (programName ?? "空") + ",加工零件总数=" + (totalPartCount?.ToString() ?? "空")); - analysisLogs.Add("结果:" + logText + ",当日产量=" + todayTotal.ToString("F0")); + analysisLogs.Add("结果:" + trackResult.logText + ",当日产量=" + trackResult.todayTotal.ToString("F0")); } // 写入采集记录 + 更新分析日志