[성현모] HistoryMerged 조회 추가

This commit is contained in:
SHM
2025-09-05 09:15:48 +09:00
parent db28cfdec0
commit 95f137d543
6 changed files with 118 additions and 39 deletions

View File

@ -0,0 +1,13 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "9.0.8",
"commands": [
"dotnet-ef"
],
"rollForward": false
}
}
}

View File

@ -3,7 +3,7 @@
@inject ContextMenuService ContextMenuService
<RadzenDataGrid Style="height:calc(100vh - 23rem); font-size: 20px;" TItem="TDataModel" Data="@DataList" AllowPaging PageSize="@PageSize"
AllowFiltering FilterMode="FilterMode.Advanced" CellRender="@CellRender"
AllowFiltering FilterMode="FilterMode.Advanced" CellRender="@CellRender" AllowColumnResize
SelectionMode="DataGridSelectionMode.Single" @bind-Value="@SelectedRow"
CellContextMenu="@OnCellContextMenu" RowSelect="@SelectRow" RowDoubleClick="@OnRowDoublClick">
<Columns>
@ -12,7 +12,9 @@
{
<RadzenDataGridColumn Title="No.">
<Template>
<span class="custom-rz-value">
@(DataList.ToList().IndexOf(context) + 1)
</span>
</Template>
</RadzenDataGridColumn>
}
@ -130,6 +132,9 @@
if (args.Column.Property.ToLower().Equals("host"))
{
if (HostColumnMerge == false)
return;
int rowCount = 0;
var take = DataList.Skip(index).Take(((index / PageSize) + 1) * PageSize - index);
foreach (var r in take)

View File

@ -89,16 +89,24 @@
@if (tab.Key == EnumTabs.OverviewC1.ToString())
{
<TraGrid TDataModel="Overview" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
OnDoubleClickRow="@OnDoubleClickRowOverview">
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@OverviewDisableColums"
OnDoubleClickRow="@OnDoubleClickRowOverview" HostColumnMerge>
</TraGrid>
}
@if (tab.Key == EnumTabs.OverviewC1Detail.ToString())
{
<TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
OnDoubleClickRow="@OnDoubleClickRowOverview">
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@OverviewDisableColums"
OnDoubleClickRow="@OnDoubleClickRowDetailOverview" HostColumnMerge>
</TraGrid>
}
@if (tab.Key.Contains(EnumTabs.TestHistoryC1.ToString()))
{
<TraGrid TDataModel="TestHistory" DataList="@TestHistories.Where(x=>x.Key == tab.Key).First().Value" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@HistoryDisableColums"
VisibleRowNo HostColumnMerge="false">
</TraGrid>
}
</ChildContent>
@ -121,7 +129,8 @@
//options
private bool IsMergePartNumberOption = false;
private int PageSize = 30;
private List<string> DisableColums = new List<string>();
private List<string> OverviewDisableColums = new List<string>();
private List<string> HistoryDisableColums = new List<string> { "testdate", "modelname", "firsttesttime", "finaltesttime", "testlistcntid" };
//tab
RadzenTabs tabs;
@ -132,6 +141,7 @@
List<SearchData> SearchDataOverviews = new List<SearchData>();
List<Overview> Overviews = new List<Overview>();
List<Overview> DetailOverviews = new List<Overview>();
Dictionary<string,List<TestHistory>> TestHistories = new();
private async Task OnSearch()
{
@ -155,9 +165,9 @@
private async Task GetOverviews()
{
DisableColums.Clear();
DisableColums.Add("rn");
DisableColums.Add("stepversion");
OverviewDisableColums.Clear();
OverviewDisableColums.Add("rn");
OverviewDisableColums.Add("stepversion");
if (IsMergePartNumberOption == false)
{
@ -165,10 +175,10 @@
}
else
{
DisableColums.Add("stationname");
DisableColums.Add("host");
DisableColums.Add("section");
DisableColums.Add("testlistcntid");
OverviewDisableColums.Add("stationname");
OverviewDisableColums.Add("host");
OverviewDisableColums.Add("section");
OverviewDisableColums.Add("testlistcntid");
Overviews = await CPXV2LogService.GetOverviewMerged(SearchDataOverviews);
}
}
@ -204,6 +214,29 @@
SelectedTabIndex = ListTabs.Keys.ToList().IndexOf(EnumTabs.OverviewC1Detail.ToString());
}
private async Task OnDoubleClickRowDetailOverview(IDataModel row)
{
var historyIndex = TestHistories.Count();
string histoiresKey = $"{EnumTabs.TestHistoryC1.ToString()}({historyIndex + 1})";
if (IsMergePartNumberOption == false)
{
var getHistories = await CPXV2LogService.GetTestHistory(SearchDataOverviews, row);
TestHistories.Add(histoiresKey, getHistories);
}
else
{
var getHistories = await CPXV2LogService.GetTestHistoryMerged(SearchDataOverviews, row);
TestHistories.Add(histoiresKey, getHistories);
}
//tab control
ListTabs.Add(histoiresKey, EnumTabs.TestHistoryC1);
tabs.Reload();
SelectedTabIndex = ListTabs.Count - 1;
}
private void OnClickDetailOverviewContextMenu()
{
// DetailOverviews = OverviewService.SearchDetailOverview(SelectedDataService.SelectedOverview);

View File

@ -59,26 +59,28 @@ public static class ObjectExtend
return data.ToOverview();
}
public static TestHistory ToTestHistory(this IEnumerable<SearchData> data)
public static TestHistory ToTestHistory(this SearchData data)
{
return new TestHistory
{
No = data.Last().Summary.No,
TestDateTime = data.Last().Summary.TestDT,
StationName = data.Last().Summary.StationName,
Host = data.Last().Summary.HostID,
Section = data.Last().Summary.Section,
ProductID = data.Last().Summary.ProductID,
TestType = data.Last().Summary.TestType,
ProductNo = data.Last().Summary.ProdNo_C,
TestCode = data.Last().Summary.Testcode,
ParentNo = data.Last().Summary.ProdNo_P,
FileCode = data.Last().Summary.ProdCode,
FileVersion = data.Last().Summary.Version,
StepVersion = data.Last().Summary.StepVersion,
Duration = data.Last().Summary.Duration,
TestResult = data.Last().Summary.Result,
TestlistReqID = data.Last().Summary.TestListCntID,
No = data.Summary.No,
TestDate = data.Summary.TestDT,
TestDateTime = data.Summary.TestDT,
StationName = data.Summary.StationName,
Host = data.Summary.HostID,
Section = data.Summary.Section,
ProductID = data.Summary.ProductID,
TestType = data.Summary.TestType,
ProductNo = data.Summary.ProdNo_C,
TestCode = data.Summary.Testcode,
ParentNo = data.Summary.ProdNo_P,
FileCode = data.Summary.ProdCode,
FileVersion = data.Summary.Version,
StepVersion = data.Summary.StepVersion,
Duration = data.Summary.Duration,
TestResult = data.Summary.Result,
TestListCntID = data.Summary.TestListCntID,
TestListReqID = data.Summary.TestListCntID
};
}
}

View File

@ -2,11 +2,10 @@
{
public class TestHistory : IDataModel
{
public DateTime? TestDate { get; set; }
public string ModelName { get; set; }
public long No { get; set; }
public DateTime TestDateTime { get; set; }
public DateTime? TestDate { get; set; }
public DateTime? TestDateTime { get; set; }
public string ModelName { get; set; } //no use
public string StationName { get; set; }
public string Host { get; set; }
public string Section { get; set; }
@ -20,10 +19,9 @@
public int? StepVersion { get; set; }
public string Duration { get; set; }
public string TestResult { get; set; }
public string TestlistReqID { get; set; }
public string FirstTestTime { get; set; }
public string FinalTestTime { get; set; }
public string TestListCntID { get; set; }
public string TestListReqID { get; set; }
}
}

View File

@ -151,6 +151,34 @@ namespace Web.Tra.Services
return detailOverview.ToList();
}
public async Task<List<TestHistory>> GetTestHistory(List<SearchData> request, IDataModel row)
{
var testHistory = request
.Where(x => x.Summary.TestDT.Date == row.TestDate.Value.Date &&
x.Summary.HostID == row.Host &&
x.Summary.Section == row.Section &&
x.Summary.ProdNo_C == row.ProductNo &&
x.Summary.ProdNo_P == row.ParentNo &&
x.Summary.TestListCntID == row.TestListCntID)
.Select(x=>x.ToTestHistory())
.OrderBy(x => x.No);
await Task.CompletedTask;
return testHistory.ToList();
}
public async Task<List<TestHistory>> GetTestHistoryMerged(List<SearchData> request, IDataModel row)
{
var testHistory = request
.Where(x => x.Summary.TestDT.Date == row.TestDate.Value.Date &&
x.Summary.Testcode == row.TestCode&&
x.Summary.ProdNo_C == row.ProductNo &&
x.Summary.ProdNo_P == row.ParentNo)
.Select(x => x.ToTestHistory())
.OrderBy(x => (x.TestListReqID, x.No));
await Task.CompletedTask;
return testHistory.ToList();
}
//Get DBContext
private T? GetDBContext<T>(DbContextProvider provider, int dbID) where T : DbContext
{