[성현모] 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": [ "DataBase": [
{ {
"IP": "127.0.0.1", "IP": "192.168.0.69",
"Port": 1433, "Port": 1433,
"DBName": "CPXV2", "DBName": "CPXV2",
"DBID": 1, "DBID": 1,

View File

@ -22,9 +22,6 @@
if(DisableColums?.Contains(col.Name.ToLower()) == true) if(DisableColums?.Contains(col.Name.ToLower()) == true)
continue; continue;
@*
if (col.Name.ToLower().Equals("rn") || col.Name.ToLower().Equals("stepversion"))
continue; *@
if (col.Name.ToLower().Equals("testdate")) if (col.Name.ToLower().Equals("testdate"))
{ {
@ -77,6 +74,9 @@
[Parameter] [Parameter]
public EventCallback<TDataModel> OnSelectRow { get; set; } public EventCallback<TDataModel> OnSelectRow { get; set; }
[Parameter]
public EventCallback<TDataModel> OnDoubleClickRow{ get; set; }
[Parameter] [Parameter]
public EventCallback OnClickContextMenu { get; set; } public EventCallback OnClickContextMenu { get; set; }
@ -177,8 +177,8 @@
await OnSelectRow.InvokeAsync(data); 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>
</RadzenStack> </RadzenStack>
<!--Data Grid-->
<RadzenTabs @ref="@tabs" Style="width:100%; height:100%;" RenderMode="TabRenderMode.Client" @bind-SelectedIndex=@SelectedTabIndex> <RadzenTabs @ref="@tabs" Style="width:100%; height:100%;" RenderMode="TabRenderMode.Client" @bind-SelectedIndex=@SelectedTabIndex>
<Tabs> <Tabs>
@foreach (var tab in ListTabs) @foreach (var tab in ListTabs)
@ -88,22 +89,18 @@
@if (tab.Key == EnumTabs.OverviewC1.ToString()) @if (tab.Key == EnumTabs.OverviewC1.ToString())
{ {
<TraGrid TDataModel="Overview" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu" <TraGrid TDataModel="Overview" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"> OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
OnDoubleClickRow="@OnDoubleClickRowOverview">
</TraGrid> </TraGrid>
} }
@if (tab.Key == EnumTabs.OverviewC1Detail.ToString()) @if (tab.Key == EnumTabs.OverviewC1Detail.ToString())
{ {
@* <TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickHistoryContextMenu" <TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
OnSelectRow="@OnSelectRowOverview" HostColumnMerge="true"> OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
</TraGrid> *@ OnDoubleClickRow="@OnDoubleClickRowOverview">
</TraGrid>
} }
@*
@if (tab.Key.Contains(EnumTabs.TestHistoryC1.ToString()))
{
<TRAGrid TDataModel="TestHistory" DataList="@TestHistories" HostColumnMerge="true" VisibleRowNo="true">
</TRAGrid>
} *@
</ChildContent> </ChildContent>
</RadzenTabsItem> </RadzenTabsItem>
} }
@ -113,6 +110,7 @@
@code { @code {
private RequestSearch RequestSearch = new RequestSearch(); private RequestSearch RequestSearch = new RequestSearch();
//selection
private string SelectionStationName = string.Empty; private string SelectionStationName = string.Empty;
private string SelectionProductNO = string.Empty; private string SelectionProductNO = string.Empty;
private string SelectionParentInfo = string.Empty; private string SelectionParentInfo = string.Empty;
@ -120,22 +118,20 @@
private string SelectionSearchEnd = string.Empty; private string SelectionSearchEnd = string.Empty;
private string SelectionStepVersion = string.Empty; private string SelectionStepVersion = string.Empty;
//options
private bool IsMergePartNumberOption = false; private bool IsMergePartNumberOption = false;
private int PageSize = 30; private int PageSize = 30;
private List<string> DisableColums = new List<string>(); private List<string> DisableColums = new List<string>();
//tab
RadzenTabs tabs; RadzenTabs tabs;
int SelectedTabIndex = 0; int SelectedTabIndex = 0;
Dictionary<string, EnumTabs> ListTabs = new Dictionary<string, EnumTabs>(); Dictionary<string, EnumTabs> ListTabs = new Dictionary<string, EnumTabs>();
//search data
List<SearchData> SearchDataOverviews = new List<SearchData>(); List<SearchData> SearchDataOverviews = new List<SearchData>();
List<Overview> Overviews = new List<Overview>(); List<Overview> Overviews = new List<Overview>();
List<Overview> DetailOverviews = new List<Overview>();
//List<Overview> DetailOverviews = new List<Overview>();
// List<TestHistory> TestHistories = new List<TestHistory>();
protected override async Task OnInitializedAsync()
{
}
private async Task OnSearch() 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) private void OnSelectRowOverview(IDataModel overview)
{ {
SelectionStationName = $"{overview.StationName} ({overview.Host},{overview.Section})"; SelectionStationName = $"{overview.StationName} ({overview.Host},{overview.Section})";
@ -208,6 +184,26 @@
SelectionStepVersion = $"{overview.StepVersion}"; 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() private void OnClickDetailOverviewContextMenu()
{ {
// DetailOverviews = OverviewService.SearchDetailOverview(SelectedDataService.SelectedOverview); // DetailOverviews = OverviewService.SearchDetailOverview(SelectedDataService.SelectedOverview);
@ -232,6 +228,11 @@
} }
void OnClickClose(string tabKey) void OnClickClose(string tabKey)
{
CloseTab(tabKey);
}
void CloseTab(string tabKey)
{ {
if (ListTabs.ContainsKey(tabKey)) if (ListTabs.ContainsKey(tabKey))
{ {
@ -245,7 +246,14 @@
async Task OnChangeMergePartNumberOption() async Task OnChangeMergePartNumberOption()
{ {
PopupService.OpenIndicator(""); PopupService.OpenIndicator("");
foreach(var tab in ListTabs)
{
if (tab.Value == EnumTabs.OverviewC1)
continue;
CloseTab(tab.Key.ToString());
}
await GetOverviews(); await GetOverviews();
await Task.Delay(300); await Task.Delay(300);

View File

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

View File

@ -24,25 +24,4 @@
public int RN { get; set; } public int RN { get; set; }
public string TestListCntID { 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 FirstTestTime { get; set; }
public string FinalTestTime { 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(); 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 //Get DBContext
private T? GetDBContext<T>(DbContextProvider provider, int dbID) where T : DbContext private T? GetDBContext<T>(DbContextProvider provider, int dbID) where T : DbContext
{ {