[성현모] Overview Merged 통합, 컬럼 필터링 추가
This commit is contained in:
@ -19,8 +19,12 @@
|
||||
|
||||
@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;
|
||||
@*
|
||||
if (col.Name.ToLower().Equals("rn") || col.Name.ToLower().Equals("stepversion"))
|
||||
continue; *@
|
||||
|
||||
if (col.Name.ToLower().Equals("testdate"))
|
||||
{
|
||||
@ -85,6 +89,9 @@
|
||||
[Parameter]
|
||||
public int PageSize { get; set; } = 30;
|
||||
|
||||
[Parameter]
|
||||
public List<string> DisableColums { get; set; }
|
||||
|
||||
private IList<TDataModel> SelectedRow;
|
||||
|
||||
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="width: 18rem;" Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.SpaceBetween">
|
||||
<RadzenLabel Text="Merge By PartNumber"></RadzenLabel>
|
||||
<RadzenSwitch @bind-Value=@IsMergePartNumberOption></RadzenSwitch>
|
||||
<RadzenSwitch @bind-Value=@IsMergePartNumberOption Change="@OnChangeMergePartNumberOption"></RadzenSwitch>
|
||||
</RadzenStack>
|
||||
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
|
||||
<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>
|
||||
@ -87,8 +87,8 @@
|
||||
<ChildContent>
|
||||
@if (tab.Key == EnumTabs.OverviewC1.ToString())
|
||||
{
|
||||
<TraGrid TDataModel="OverviewMerged" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
||||
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize">
|
||||
<TraGrid TDataModel="Overview" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
||||
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums">
|
||||
</TraGrid>
|
||||
}
|
||||
|
||||
@ -122,12 +122,15 @@
|
||||
|
||||
private bool IsMergePartNumberOption = false;
|
||||
private int PageSize = 30;
|
||||
private List<string> DisableColums = new List<string>();
|
||||
|
||||
RadzenTabs tabs;
|
||||
int SelectedTabIndex = 0;
|
||||
Dictionary<string, EnumTabs> ListTabs = new Dictionary<string, EnumTabs>();
|
||||
List<OverviewMerged> Overviews = new List<OverviewMerged>();
|
||||
List<Overview> DetailOverviews = new List<Overview>();
|
||||
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()
|
||||
@ -145,13 +148,35 @@
|
||||
|
||||
PopupService.OpenIndicator("Search Data");
|
||||
|
||||
Overviews = await CPXV2LogService.GetOverviewMerged(RequestSearch);
|
||||
SearchDataOverviews = await CPXV2LogService.GetSearchDataOverview(RequestSearch);
|
||||
await GetOverviews();
|
||||
|
||||
if (ListTabs.ContainsKey(EnumTabs.OverviewC1.ToString()) == false)
|
||||
ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
|
||||
|
||||
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()
|
||||
{
|
||||
|
||||
@ -172,7 +197,7 @@
|
||||
// ListTabs.Add($"{EnumTabs.OverviewC1}", EnumTabs.OverviewC1);
|
||||
}
|
||||
|
||||
private void OnSelectRowOverview(OverviewMerged overview)
|
||||
private void OnSelectRowOverview(IDataModel overview)
|
||||
{
|
||||
// SelectionStationName = $"{overview.StationName} ({overview.Host},{overview.Section})";
|
||||
// SelectionProductNO = $"{overview.ProductNo} ({overview.TestCode})";
|
||||
@ -216,4 +241,14 @@
|
||||
}
|
||||
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),
|
||||
ModelName = data.Last().TestInfo?.PROD_Group?.ModelName,
|
||||
|
||||
@ -25,24 +25,24 @@
|
||||
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; }
|
||||
}
|
||||
//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; }
|
||||
//}
|
||||
}
|
||||
|
||||
@ -20,9 +20,9 @@ namespace Web.Tra.Services
|
||||
}
|
||||
|
||||
//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;
|
||||
@ -67,73 +67,31 @@ namespace Web.Tra.Services
|
||||
});
|
||||
|
||||
var ListSearchData = search
|
||||
.Where(x => x.Summary.TestListVariantNo > 0)
|
||||
// .Where(x => x.Summary.TestListVariantNo > 0)
|
||||
.OrderBy(x => x.Summary.TestDT).ToList();
|
||||
|
||||
var group = ListSearchData
|
||||
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);
|
||||
|
||||
overview.AddRange(group);
|
||||
}
|
||||
}
|
||||
await Task.CompletedTask;
|
||||
return group.OrderBy(x => x.TestDate).ToList();
|
||||
}
|
||||
|
||||
return overview.OrderBy(x=>x.TestDate).ToList();
|
||||
}
|
||||
|
||||
public async Task<List<OverviewMerged>> GetOverviewMerged(RequestSearch request)
|
||||
public async Task<List<Overview>> GetOverviewMerged(List<SearchData> request)
|
||||
{
|
||||
List<OverviewMerged> overview = new List<OverviewMerged>();
|
||||
|
||||
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)
|
||||
.OrderByDescending(x => x.Summary.TestDT).ToList();
|
||||
|
||||
var group = ListSearchData.GroupBy(x =>
|
||||
var group = request.OrderByDescending(x=>x.Summary.TestDT).GroupBy(x =>
|
||||
(DateOnly.FromDateTime(x.Summary.TestDT.Date),
|
||||
x.Summary.TestType,
|
||||
x.Summary.ProdNo_C,
|
||||
@ -145,16 +103,12 @@ namespace Web.Tra.Services
|
||||
x.Summary.Version,
|
||||
x.Summary.StepVersion))
|
||||
.Select(x => x.ToOverviewMerged())
|
||||
.DistinctBy(x => (x.ModelName, x.TestType, x.ProductNo, x.TestCode, x.ParentNo,
|
||||
x.TestListFileNo, x.TestListVariantNo, x.FileCode, x.FileVersion))
|
||||
.OrderBy(x => (x.ProductNo, x.ParentNo, x.TestDate));
|
||||
.DistinctBy(x => (x.TestType, x.ProductNo, x.TestCode,
|
||||
x.ParentNo,x.FileCode, x.FileVersion))
|
||||
.OrderBy(x => (x.ProductNo, x.ParentNo));
|
||||
|
||||
overview.AddRange(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return overview;
|
||||
await Task.CompletedTask;
|
||||
return group.ToList();
|
||||
}
|
||||
|
||||
//Get DBContext
|
||||
|
||||
Reference in New Issue
Block a user