[성현모] DetailOverview 추가
This commit is contained in:
@ -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,
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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; }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user