[성현모] Overview Merged 통합, 컬럼 필터링 추가
This commit is contained in:
@ -19,8 +19,12 @@
|
|||||||
|
|
||||||
@foreach (var col in typeof(TDataModel).GetProperties())
|
@foreach (var col in typeof(TDataModel).GetProperties())
|
||||||
{
|
{
|
||||||
if (col.Name.ToLower().Equals("rn") || col.Name.ToLower().Equals("stepversion"))
|
|
||||||
|
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"))
|
||||||
{
|
{
|
||||||
@ -85,6 +89,9 @@
|
|||||||
[Parameter]
|
[Parameter]
|
||||||
public int PageSize { get; set; } = 30;
|
public int PageSize { get; set; } = 30;
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public List<string> DisableColums { get; set; }
|
||||||
|
|
||||||
private IList<TDataModel> SelectedRow;
|
private IList<TDataModel> SelectedRow;
|
||||||
|
|
||||||
private void CellRender(DataGridCellRenderEventArgs<TDataModel> args)
|
private void CellRender(DataGridCellRenderEventArgs<TDataModel> args)
|
||||||
|
|||||||
@ -65,11 +65,11 @@
|
|||||||
<RadzenStack Style="font-size:1.5rem;" Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Center">
|
<RadzenStack Style="font-size:1.5rem;" Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Center">
|
||||||
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.SpaceBetween">
|
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.SpaceBetween">
|
||||||
<RadzenLabel Text="Merge By PartNumber"></RadzenLabel>
|
<RadzenLabel Text="Merge By PartNumber"></RadzenLabel>
|
||||||
<RadzenSwitch @bind-Value=@IsMergePartNumberOption></RadzenSwitch>
|
<RadzenSwitch @bind-Value=@IsMergePartNumberOption Change="@OnChangeMergePartNumberOption"></RadzenSwitch>
|
||||||
</RadzenStack>
|
</RadzenStack>
|
||||||
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
|
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
|
||||||
<RadzenLabel Text="Page Size"></RadzenLabel>
|
<RadzenLabel Text="Page Size"></RadzenLabel>
|
||||||
<RadzenNumeric @bind-Value=@PageSize></RadzenNumeric>
|
<RadzenNumeric Style="width: 8rem;" @bind-Value=@PageSize Min="10" Max="200"></RadzenNumeric>
|
||||||
</RadzenStack>
|
</RadzenStack>
|
||||||
</RadzenStack>
|
</RadzenStack>
|
||||||
</RadzenStack>
|
</RadzenStack>
|
||||||
@ -87,8 +87,8 @@
|
|||||||
<ChildContent>
|
<ChildContent>
|
||||||
@if (tab.Key == EnumTabs.OverviewC1.ToString())
|
@if (tab.Key == EnumTabs.OverviewC1.ToString())
|
||||||
{
|
{
|
||||||
<TraGrid TDataModel="OverviewMerged" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
<TraGrid TDataModel="Overview" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
||||||
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize">
|
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums">
|
||||||
</TraGrid>
|
</TraGrid>
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,12 +122,15 @@
|
|||||||
|
|
||||||
private bool IsMergePartNumberOption = false;
|
private bool IsMergePartNumberOption = false;
|
||||||
private int PageSize = 30;
|
private int PageSize = 30;
|
||||||
|
private List<string> DisableColums = new List<string>();
|
||||||
|
|
||||||
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>();
|
||||||
List<OverviewMerged> Overviews = new List<OverviewMerged>();
|
List<SearchData> SearchDataOverviews = new List<SearchData>();
|
||||||
List<Overview> DetailOverviews = new List<Overview>();
|
List<Overview> Overviews = new List<Overview>();
|
||||||
|
|
||||||
|
//List<Overview> DetailOverviews = new List<Overview>();
|
||||||
// List<TestHistory> TestHistories = new List<TestHistory>();
|
// List<TestHistory> TestHistories = new List<TestHistory>();
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
@ -145,13 +148,35 @@
|
|||||||
|
|
||||||
PopupService.OpenIndicator("Search Data");
|
PopupService.OpenIndicator("Search Data");
|
||||||
|
|
||||||
Overviews = await CPXV2LogService.GetOverviewMerged(RequestSearch);
|
SearchDataOverviews = await CPXV2LogService.GetSearchDataOverview(RequestSearch);
|
||||||
|
await GetOverviews();
|
||||||
|
|
||||||
if (ListTabs.ContainsKey(EnumTabs.OverviewC1.ToString()) == false)
|
if (ListTabs.ContainsKey(EnumTabs.OverviewC1.ToString()) == false)
|
||||||
ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
|
ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
|
||||||
|
|
||||||
PopupService.CloseIndicator();
|
PopupService.CloseIndicator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task GetOverviews()
|
||||||
|
{
|
||||||
|
DisableColums.Clear();
|
||||||
|
DisableColums.Add("rn");
|
||||||
|
DisableColums.Add("stepversion");
|
||||||
|
|
||||||
|
if (IsMergePartNumberOption == false)
|
||||||
|
{
|
||||||
|
Overviews = await CPXV2LogService.GetOverviews(SearchDataOverviews);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DisableColums.Add("stationname");
|
||||||
|
DisableColums.Add("host");
|
||||||
|
DisableColums.Add("section");
|
||||||
|
DisableColums.Add("testlistcntid");
|
||||||
|
Overviews = await CPXV2LogService.GetOverviewMerged(SearchDataOverviews);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -172,7 +197,7 @@
|
|||||||
// ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
|
// ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSelectRowOverview(OverviewMerged overview)
|
private void OnSelectRowOverview(IDataModel overview)
|
||||||
{
|
{
|
||||||
// SelectionStationName = $"{overview.StationName} ({overview.Host},{overview.Section})";
|
// SelectionStationName = $"{overview.StationName} ({overview.Host},{overview.Section})";
|
||||||
// SelectionProductNO = $"{overview.ProductNo} ({overview.TestCode})";
|
// SelectionProductNO = $"{overview.ProductNo} ({overview.TestCode})";
|
||||||
@ -216,4 +241,14 @@
|
|||||||
}
|
}
|
||||||
tabs.Reload();
|
tabs.Reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async Task OnChangeMergePartNumberOption()
|
||||||
|
{
|
||||||
|
PopupService.OpenIndicator("");
|
||||||
|
|
||||||
|
await GetOverviews();
|
||||||
|
|
||||||
|
await Task.Delay(300);
|
||||||
|
PopupService.CloseIndicator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -30,9 +30,9 @@ public static class ObjectExtend
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static OverviewMerged ToOverviewMerged(this IEnumerable<SearchData> data)
|
public static Overview ToOverviewMerged(this IEnumerable<SearchData> data)
|
||||||
{
|
{
|
||||||
return new OverviewMerged
|
return new Overview
|
||||||
{
|
{
|
||||||
TestDate = data.Max(x => x.Summary.TestDT.Date),
|
TestDate = data.Max(x => x.Summary.TestDT.Date),
|
||||||
ModelName = data.Last().TestInfo?.PROD_Group?.ModelName,
|
ModelName = data.Last().TestInfo?.PROD_Group?.ModelName,
|
||||||
|
|||||||
@ -25,24 +25,24 @@
|
|||||||
public string TestListCntID { get; set; }
|
public string TestListCntID { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class OverviewMerged : IDataModel
|
//public class OverviewMerged : IDataModel
|
||||||
{
|
//{
|
||||||
public DateTime? TestDate { get; set; }
|
// public DateTime? TestDate { get; set; }
|
||||||
public string ModelName { get; set; }
|
// public string ModelName { get; set; }
|
||||||
public string TestType { get; set; }
|
// public string TestType { get; set; }
|
||||||
public string ProductNo { get; set; }
|
// public string ProductNo { get; set; }
|
||||||
public string TestCode { get; set; }
|
// public string TestCode { get; set; }
|
||||||
public string ParentNo { get; set; }
|
// public string ParentNo { get; set; }
|
||||||
public int? TestListFileNo { get; set; }
|
// public int? TestListFileNo { get; set; }
|
||||||
public int? TestListVariantNo { get; set; }
|
// public int? TestListVariantNo { get; set; }
|
||||||
public string FileCode { get; set; }
|
// public string FileCode { get; set; }
|
||||||
public string FileVersion { get; set; }
|
// public string FileVersion { get; set; }
|
||||||
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 int Total { get; set; }
|
// public int Total { get; set; }
|
||||||
public int OK { get; set; }
|
// public int OK { get; set; }
|
||||||
public int NG { get; set; }
|
// public int NG { get; set; }
|
||||||
public int RN { get; set; }
|
// public int RN { get; set; }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,72 +20,9 @@ namespace Web.Tra.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Get Overview
|
//Get Overview
|
||||||
public async Task<List<Overview>> GetOverview(RequestSearch request)
|
public async Task<List<SearchData>> GetSearchDataOverview(RequestSearch request)
|
||||||
{
|
{
|
||||||
List<Overview> overview = new List<Overview>();
|
List<SearchData> searchData = new List<SearchData>();
|
||||||
|
|
||||||
int startYear = request.SearchStart.Year;
|
|
||||||
int endYear = request.SearchEnd.Year;
|
|
||||||
|
|
||||||
//search log
|
|
||||||
List<HIST_LogSummary> SearchLogList = new List<HIST_LogSummary>();
|
|
||||||
for (int i = startYear; i <= endYear; i++)
|
|
||||||
{
|
|
||||||
using (var scope = _scopeFactory.CreateScope())
|
|
||||||
{
|
|
||||||
var provider = scope.ServiceProvider.GetRequiredService<DbContextProvider>();
|
|
||||||
using (var context = GetDBContext<CPXV2Log>(provider, i))
|
|
||||||
{
|
|
||||||
if (context is not null)
|
|
||||||
{
|
|
||||||
SearchLogList.AddRange(await context.HIST_LogSummaries.Where(x => request.SearchStart <= DateOnly.FromDateTime(x.TestDT) && DateOnly.FromDateTime(x.TestDT) <= request.SearchEnd).ToListAsync());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//search testlist
|
|
||||||
using (var scope = _scopeFactory.CreateScope())
|
|
||||||
{
|
|
||||||
var provider = scope.ServiceProvider.GetRequiredService<DbContextProvider>();
|
|
||||||
using (var context = GetDBContext<CPXV2>(provider, 1))
|
|
||||||
{
|
|
||||||
if (context is not null)
|
|
||||||
{
|
|
||||||
var varProdVariant = context.PROD_Variants.ToList();
|
|
||||||
var varProudGroup = context.PROD_Groups.ToList();
|
|
||||||
var TesetInfoList = varProdVariant.Select(x => new TestInfo
|
|
||||||
{
|
|
||||||
PROD_Variant = x,
|
|
||||||
PROD_Group = varProudGroup.Find(y => y.No == x.GroupNo)
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
var search = SearchLogList.Select(x => new SearchData
|
|
||||||
{
|
|
||||||
Summary = x,
|
|
||||||
TestInfo = TesetInfoList.Find(y => y.PROD_Variant.No == x.TestListVariantNo)
|
|
||||||
});
|
|
||||||
|
|
||||||
var ListSearchData = search
|
|
||||||
.Where(x => x.Summary.TestListVariantNo > 0)
|
|
||||||
.OrderBy(x => x.Summary.TestDT).ToList();
|
|
||||||
|
|
||||||
var group = ListSearchData
|
|
||||||
.GroupBy(x => (x.Summary.HostID, x.Summary.Section))
|
|
||||||
.Select(x => x.ToOverview())
|
|
||||||
.OrderBy(x => x.Host);
|
|
||||||
|
|
||||||
overview.AddRange(group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return overview.OrderBy(x=>x.TestDate).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<List<OverviewMerged>> GetOverviewMerged(RequestSearch request)
|
|
||||||
{
|
|
||||||
List<OverviewMerged> overview = new List<OverviewMerged>();
|
|
||||||
|
|
||||||
int startYear = request.SearchStart.Year;
|
int startYear = request.SearchStart.Year;
|
||||||
int endYear = request.SearchEnd.Year;
|
int endYear = request.SearchEnd.Year;
|
||||||
@ -131,9 +68,30 @@ namespace Web.Tra.Services
|
|||||||
|
|
||||||
var ListSearchData = search
|
var ListSearchData = search
|
||||||
// .Where(x => x.Summary.TestListVariantNo > 0)
|
// .Where(x => x.Summary.TestListVariantNo > 0)
|
||||||
.OrderByDescending(x => x.Summary.TestDT).ToList();
|
.OrderBy(x => x.Summary.TestDT).ToList();
|
||||||
|
|
||||||
var group = ListSearchData.GroupBy(x =>
|
searchData.AddRange(ListSearchData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return searchData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<Overview>> GetOverviews(List<SearchData> request)
|
||||||
|
{
|
||||||
|
var group = request
|
||||||
|
.GroupBy(x => (x.Summary.HostID, x.Summary.Section))
|
||||||
|
.Select(x => x.ToOverview())
|
||||||
|
.OrderBy(x => x.Host);
|
||||||
|
|
||||||
|
await Task.CompletedTask;
|
||||||
|
return group.OrderBy(x => x.TestDate).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<Overview>> GetOverviewMerged(List<SearchData> request)
|
||||||
|
{
|
||||||
|
var group = request.OrderByDescending(x=>x.Summary.TestDT).GroupBy(x =>
|
||||||
(DateOnly.FromDateTime(x.Summary.TestDT.Date),
|
(DateOnly.FromDateTime(x.Summary.TestDT.Date),
|
||||||
x.Summary.TestType,
|
x.Summary.TestType,
|
||||||
x.Summary.ProdNo_C,
|
x.Summary.ProdNo_C,
|
||||||
@ -145,16 +103,12 @@ namespace Web.Tra.Services
|
|||||||
x.Summary.Version,
|
x.Summary.Version,
|
||||||
x.Summary.StepVersion))
|
x.Summary.StepVersion))
|
||||||
.Select(x => x.ToOverviewMerged())
|
.Select(x => x.ToOverviewMerged())
|
||||||
.DistinctBy(x => (x.ModelName, x.TestType, x.ProductNo, x.TestCode, x.ParentNo,
|
.DistinctBy(x => (x.TestType, x.ProductNo, x.TestCode,
|
||||||
x.TestListFileNo, x.TestListVariantNo, x.FileCode, x.FileVersion))
|
x.ParentNo,x.FileCode, x.FileVersion))
|
||||||
.OrderBy(x => (x.ProductNo, x.ParentNo, x.TestDate));
|
.OrderBy(x => (x.ProductNo, x.ParentNo));
|
||||||
|
|
||||||
overview.AddRange(group);
|
await Task.CompletedTask;
|
||||||
}
|
return group.ToList();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return overview;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Get DBContext
|
//Get DBContext
|
||||||
|
|||||||
Reference in New Issue
Block a user