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")); } // 写入采集记录 + 更新分析日志