Track()返回值加workerId+重放验证通过:三页面总产量一致(2038)

main
haoliang 1 month ago
parent 0cbb829ebf
commit af774ba564

@ -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("");
}

@ -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);
}
}
}

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

Loading…
Cancel
Save