[성현모] Grid 성능 개선

This commit is contained in:
SHM
2025-09-17 09:32:33 +09:00
parent a57734308f
commit 89fe237e52
10 changed files with 287 additions and 183 deletions

View File

@ -28,7 +28,6 @@ public static class ObjectExtend
Total = data.GroupBy(x => (x.Summary.TestListCntID, x.Summary.TestDT.Date)).Last().Count(),
OK = data.GroupBy(x => (x.Summary.TestListCntID, x.Summary.TestDT.Date)).Last().Count(y => y.Summary.Result.ToLower().Equals("ok")),
NG = data.GroupBy(x => (x.Summary.TestListCntID, x.Summary.TestDT.Date)).Last().Count(y => !y.Summary.Result.ToLower().Equals("ok")),
RN = 0,
TestListCntID = data.Last().Summary.TestListCntID
};
}
@ -52,8 +51,7 @@ public static class ObjectExtend
FinalTestTime = data.Max(y => y.Summary.TestDT).ToString("HH:mm:ss"),
Total = data.Count(),
OK = data.Count(y => y.Summary.Result.ToLower().Equals("ok")),
NG = data.Count(y => !y.Summary.Result.ToLower().Equals("ok")),
RN = 0
NG = data.Count(y => !y.Summary.Result.ToLower().Equals("ok")),
};
}
@ -67,7 +65,6 @@ public static class ObjectExtend
return new TestHistory
{
No = data.Summary.No,
TestDate = data.Summary.TestDT,
TestDateTime = data.Summary.TestDT,
StationName = data.Summary.StationName,
Host = data.Summary.HostID,
@ -79,29 +76,87 @@ public static class ObjectExtend
ParentNo = data.Summary.ProdNo_P,
FileCode = data.Summary.ProdCode,
FileVersion = data.Summary.Version,
StepVersion = data.Summary.StepVersion,
StepVersion = Convert.ToInt32(data.Summary.StepVersion),
Duration = data.Summary.Duration,
TestResult = data.Summary.Result,
TestListCntID = data.Summary.TestListCntID,
TestListReqID = data.Summary.TestListCntID
};
}
public static List<DecompressTestResult> ToTestResult(this HIST_TestResult histTestResult)
public static TestResult ToTestResult(this HIST_TestResult histTestResult, TestList testList = null)
{
TestResult testResult = new TestResult();
testResult.TestList = testList;
//decompress
var decompStr = histTestResult?.LogData.GzipDecompress();
var logData = JsonConvert.DeserializeObject<List<DecompressTestResult>>(decompStr);
foreach (var log in logData)
{
if (string.IsNullOrEmpty(log.Message) == false)
log.MesauredValue = log.Message;
else if (string.IsNullOrEmpty(log.MeasValStr) == false)
log.MesauredValue = log.MeasValStr;
else
log.MesauredValue = log.MeasVal.ToString();
}
testResult.DecompressTestResult = logData;
return logData;
//parse
var parse = logData.Select(x=>x.ParseTestResult(testList)).Where(x=> x is not null && string.IsNullOrEmpty(x.MeasuredValue) == false).ToList();
testResult.ParseTestResult = parse;
return testResult;
}
public static ParseTestResult ParseTestResult(this DecompressTestResult logData, TestList testList = null)
{
var selectData = testList.TestListFile.Where(x => x.StepID == logData.StepID)?.FirstOrDefault();
if (selectData is not null)
{
var parseTestResult = new ParseTestResult
{
StepNo = logData.StepID,
Position = (long)selectData?.Position,
Variant = selectData?.Variant,
Gate = selectData?.Gate,
MO = selectData?.StepDesc,
Function = selectData?.UseFunction,
Min = logData?.GlobalMin,
MeasuredValue = logData.MeasuredValue,
Max = logData.GlobalMax,
Dimension = selectData?.Dim,
Result = logData.Result,
Duration = logData.SpentTime
};
//min,max
if (selectData.IsGlobal == true)
{
parseTestResult.Min = logData.GlobalMin;
parseTestResult.Max = logData.GlobalMax;
}
else
{
parseTestResult.Min = selectData.SpecMin;
parseTestResult.Max = selectData.SpecMax;
}
//meas val
if (string.IsNullOrEmpty(logData.Message) == false)
{
parseTestResult.MeasuredValue = logData.Message;
}
else if (string.IsNullOrEmpty(logData.MeasValStr) == false)
{
parseTestResult.MeasuredValue = logData.MeasValStr;
}
else if (string.IsNullOrEmpty(parseTestResult.Min) == true &&
string.IsNullOrEmpty(parseTestResult.Max) == true &&
logData.MeasVal == 0)
{
parseTestResult.MeasuredValue = logData.MeasVal.ToString("F1");
}
else
{
parseTestResult.MeasuredValue = logData.MeasVal.ToString();
}
return parseTestResult;
}
return null;
}
}