[성현모] DetailOverview 추가

This commit is contained in:
SHM
2025-09-04 14:32:19 +09:00
parent 0fb0da2daf
commit db28cfdec0
7 changed files with 91 additions and 65 deletions

View File

@ -7,7 +7,7 @@
},
"DataBase": [
{
"IP": "127.0.0.1",
"IP": "192.168.0.69",
"Port": 1433,
"DBName": "CPXV2",
"DBID": 1,

View File

@ -22,9 +22,6 @@
if(DisableColums?.Contains(col.Name.ToLower()) == true)
continue;
@*
if (col.Name.ToLower().Equals("rn") || col.Name.ToLower().Equals("stepversion"))
continue; *@
if (col.Name.ToLower().Equals("testdate"))
{
@ -77,6 +74,9 @@
[Parameter]
public EventCallback<TDataModel> OnSelectRow { get; set; }
[Parameter]
public EventCallback<TDataModel> OnDoubleClickRow{ get; set; }
[Parameter]
public EventCallback OnClickContextMenu { get; set; }
@ -177,8 +177,8 @@
await OnSelectRow.InvokeAsync(data);
}
private async Task OnRowDoublClick<T>(DataGridRowMouseEventArgs<T> args)
private async Task OnRowDoublClick(DataGridRowMouseEventArgs<TDataModel> args)
{
await OnDoubleClickRow.InvokeAsync(args.Data);
}
}

View File

@ -75,6 +75,7 @@
</RadzenStack>
</RadzenStack>
<!--Data Grid-->
<RadzenTabs @ref="@tabs" Style="width:100%; height:100%;" RenderMode="TabRenderMode.Client" @bind-SelectedIndex=@SelectedTabIndex>
<Tabs>
@foreach (var tab in ListTabs)
@ -88,22 +89,18 @@
@if (tab.Key == EnumTabs.OverviewC1.ToString())
{
<TraGrid TDataModel="Overview" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums">
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
OnDoubleClickRow="@OnDoubleClickRowOverview">
</TraGrid>
}
@if (tab.Key == EnumTabs.OverviewC1Detail.ToString())
{
@* <TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickHistoryContextMenu"
OnSelectRow="@OnSelectRowOverview" HostColumnMerge="true">
</TraGrid> *@
<TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
OnDoubleClickRow="@OnDoubleClickRowOverview">
</TraGrid>
}
@*
@if (tab.Key.Contains(EnumTabs.TestHistoryC1.ToString()))
{
<TRAGrid TDataModel="TestHistory" DataList="@TestHistories" HostColumnMerge="true" VisibleRowNo="true">
</TRAGrid>
} *@
</ChildContent>
</RadzenTabsItem>
}
@ -113,6 +110,7 @@
@code {
private RequestSearch RequestSearch = new RequestSearch();
//selection
private string SelectionStationName = string.Empty;
private string SelectionProductNO = string.Empty;
private string SelectionParentInfo = string.Empty;
@ -120,22 +118,20 @@
private string SelectionSearchEnd = string.Empty;
private string SelectionStepVersion = string.Empty;
//options
private bool IsMergePartNumberOption = false;
private int PageSize = 30;
private List<string> DisableColums = new List<string>();
//tab
RadzenTabs tabs;
int SelectedTabIndex = 0;
Dictionary<string, EnumTabs> ListTabs = new Dictionary<string, EnumTabs>();
//search data
List<SearchData> SearchDataOverviews = new List<SearchData>();
List<Overview> Overviews = new List<Overview>();
//List<Overview> DetailOverviews = new List<Overview>();
// List<TestHistory> TestHistories = new List<TestHistory>();
protected override async Task OnInitializedAsync()
{
}
List<Overview> DetailOverviews = new List<Overview>();
private async Task OnSearch()
{
@ -177,26 +173,6 @@
}
}
protected override void OnInitialized()
{
}
protected override void OnAfterRender(bool firstRender)
{
}
protected override void OnParametersSet()
{
// var searchData = OverviewService.SearchOverview();
//Overviews = searchData;
// if (ListTabs.ContainsKey(EnumTabs.OverviewC1.ToString()) == false)
// ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
}
private void OnSelectRowOverview(IDataModel overview)
{
SelectionStationName = $"{overview.StationName} ({overview.Host},{overview.Section})";
@ -208,6 +184,26 @@
SelectionStepVersion = $"{overview.StepVersion}";
}
private async Task OnDoubleClickRowOverview(IDataModel row)
{
DetailOverviews.Clear();
if (IsMergePartNumberOption == false)
{
DetailOverviews = await CPXV2LogService.GetDetailOverview(SearchDataOverviews, row);
}
else
{
DetailOverviews = await CPXV2LogService.GetDetailOverviewMerged(SearchDataOverviews, row);
}
//tab control
if (ListTabs.ContainsKey(EnumTabs.OverviewC1Detail.ToString()) == false)
ListTabs.Add($"{EnumTabs.OverviewC1Detail.ToString()}", EnumTabs.OverviewC1Detail);
tabs.Reload();
SelectedTabIndex = ListTabs.Keys.ToList().IndexOf(EnumTabs.OverviewC1Detail.ToString());
}
private void OnClickDetailOverviewContextMenu()
{
// DetailOverviews = OverviewService.SearchDetailOverview(SelectedDataService.SelectedOverview);
@ -232,6 +228,11 @@
}
void OnClickClose(string tabKey)
{
CloseTab(tabKey);
}
void CloseTab(string tabKey)
{
if (ListTabs.ContainsKey(tabKey))
{
@ -245,7 +246,14 @@
async Task OnChangeMergePartNumberOption()
{
PopupService.OpenIndicator("");
foreach(var tab in ListTabs)
{
if (tab.Value == EnumTabs.OverviewC1)
continue;
CloseTab(tab.Key.ToString());
}
await GetOverviews();
await Task.Delay(300);

View File

@ -15,5 +15,6 @@
public int? StepVersion { get; set; }
public string FirstTestTime { get; set; }
public string FinalTestTime { get; set; }
public string TestListCntID { get; set; }
}
}

View File

@ -24,25 +24,4 @@
public int RN { get; set; }
public string TestListCntID { get; set; }
}
//public class OverviewMerged : IDataModel
//{
// public DateTime? TestDate { get; set; }
// public string ModelName { get; set; }
// public string TestType { get; set; }
// public string ProductNo { get; set; }
// public string TestCode { get; set; }
// public string ParentNo { get; set; }
// public int? TestListFileNo { get; set; }
// public int? TestListVariantNo { get; set; }
// public string FileCode { get; set; }
// public string FileVersion { get; set; }
// public int? StepVersion { get; set; }
// public string FirstTestTime { get; set; }
// public string FinalTestTime { get; set; }
// public int Total { get; set; }
// public int OK { get; set; }
// public int NG { get; set; }
// public int RN { get; set; }
//}
}

View File

@ -24,5 +24,6 @@
public string FirstTestTime { get; set; }
public string FinalTestTime { get; set; }
public string TestListCntID { get; set; }
}
}

View File

@ -114,6 +114,43 @@ namespace Web.Tra.Services
return group.ToList();
}
public async Task<List<Overview>> GetDetailOverview(List<SearchData> request, IDataModel row)
{
var detailOverview = request
.Where(x => x.Summary.HostID == row.Host &&
x.Summary.Section == row.Section &&
x.Summary.Testcode == row.TestCode
)
.OrderByDescending(x=>x.Summary.TestDT.Date)
.GroupBy(x => (
DateOnly.FromDateTime(x.Summary.TestDT.Date),
x.Summary.TestListCntID,
x.Summary.StepVersion
))
.Select(x => x.ToOverview())
.OrderBy(x=>x.TestDate);
await Task.CompletedTask;
return detailOverview.ToList();
}
public async Task<List<Overview>> GetDetailOverviewMerged(List<SearchData> request, IDataModel row)
{
var detailOverview = request
.Where(x => x.Summary.Testcode == row.TestCode &&
x.Summary.ProdNo_C == row.ProductNo &&
x.Summary.ProdNo_P == row.ParentNo)
.GroupBy(x => (
DateOnly.FromDateTime(x.Summary.TestDT.Date),
x.Summary.StepVersion
))
.Select(x => x.ToOverviewMerged())
.OrderBy(x => x.TestDate);
await Task.CompletedTask;
return detailOverview.ToList();
}
//Get DBContext
private T? GetDBContext<T>(DbContextProvider provider, int dbID) where T : DbContext
{