From 9a18f51befd0da9f807446fa98461c7bff369eca Mon Sep 17 00:00:00 2001 From: SHM Date: Wed, 3 Sep 2025 16:45:28 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20Overview=20Merg?= =?UTF-8?q?ed=20=ED=86=B5=ED=95=A9,=20=EC=BB=AC=EB=9F=BC=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=EB=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Web.Tra/Components/Module/TraGrid.razor | 9 +- .../Web.Tra/Components/Pages/TRA.razor | 51 ++++++-- .../Web.Tra/Extended/ObjectExtended.cs | 6 +- Projects/WebClient/Web.Tra/Model/Overview.cs | 40 +++---- .../Web.Tra/Services/CPXV2LogService.cs | 110 +++++------------- 5 files changed, 106 insertions(+), 110 deletions(-) diff --git a/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor b/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor index 57a8b05..eceeadc 100644 --- a/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor +++ b/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor @@ -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 DisableColums { get; set; } + private IList SelectedRow; private void CellRender(DataGridCellRenderEventArgs args) diff --git a/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor b/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor index bdad16d..30f24d1 100644 --- a/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor +++ b/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor @@ -65,11 +65,11 @@ - + - + @@ -87,8 +87,8 @@ @if (tab.Key == EnumTabs.OverviewC1.ToString()) { - + } @@ -122,12 +122,15 @@ private bool IsMergePartNumberOption = false; private int PageSize = 30; + private List DisableColums = new List(); RadzenTabs tabs; int SelectedTabIndex = 0; Dictionary ListTabs = new Dictionary(); - List Overviews = new List(); - List DetailOverviews = new List(); + List SearchDataOverviews = new List(); + List Overviews = new List(); + + //List DetailOverviews = new List(); // List TestHistories = new List(); 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(); + } } \ No newline at end of file diff --git a/Projects/WebClient/Web.Tra/Extended/ObjectExtended.cs b/Projects/WebClient/Web.Tra/Extended/ObjectExtended.cs index 855d275..3b91ea5 100644 --- a/Projects/WebClient/Web.Tra/Extended/ObjectExtended.cs +++ b/Projects/WebClient/Web.Tra/Extended/ObjectExtended.cs @@ -30,9 +30,9 @@ public static class ObjectExtend }; } - public static OverviewMerged ToOverviewMerged(this IEnumerable data) - { - return new OverviewMerged + public static Overview ToOverviewMerged(this IEnumerable data) + { + return new Overview { TestDate = data.Max(x => x.Summary.TestDT.Date), ModelName = data.Last().TestInfo?.PROD_Group?.ModelName, diff --git a/Projects/WebClient/Web.Tra/Model/Overview.cs b/Projects/WebClient/Web.Tra/Model/Overview.cs index 5a5067f..a233a34 100644 --- a/Projects/WebClient/Web.Tra/Model/Overview.cs +++ b/Projects/WebClient/Web.Tra/Model/Overview.cs @@ -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; } + //} } diff --git a/Projects/WebClient/Web.Tra/Services/CPXV2LogService.cs b/Projects/WebClient/Web.Tra/Services/CPXV2LogService.cs index 063e6f8..2dfe31b 100644 --- a/Projects/WebClient/Web.Tra/Services/CPXV2LogService.cs +++ b/Projects/WebClient/Web.Tra/Services/CPXV2LogService.cs @@ -20,9 +20,9 @@ namespace Web.Tra.Services } //Get Overview - public async Task> GetOverview(RequestSearch request) + public async Task> GetSearchDataOverview(RequestSearch request) { - List overview = new List(); + List searchData = new List(); int startYear = request.SearchStart.Year; int endYear = request.SearchEnd.Year; @@ -67,94 +67,48 @@ 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 - .GroupBy(x => (x.Summary.HostID, x.Summary.Section)) - .Select(x => x.ToOverview()) - .OrderBy(x => x.Host); - - overview.AddRange(group); + searchData.AddRange(ListSearchData); } } } - return overview.OrderBy(x=>x.TestDate).ToList(); + return searchData; } - public async Task> GetOverviewMerged(RequestSearch request) + public async Task> GetOverviews(List request) { - List overview = new List(); + var group = request + .GroupBy(x => (x.Summary.HostID, x.Summary.Section)) + .Select(x => x.ToOverview()) + .OrderBy(x => x.Host); - int startYear = request.SearchStart.Year; - int endYear = request.SearchEnd.Year; + await Task.CompletedTask; + return group.OrderBy(x => x.TestDate).ToList(); + } - //search log - List SearchLogList = new List(); - for (int i = startYear; i <= endYear; i++) - { - using (var scope = _scopeFactory.CreateScope()) - { - var provider = scope.ServiceProvider.GetRequiredService(); - using (var context = GetDBContext(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(); - using (var context = GetDBContext(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(); + public async Task> GetOverviewMerged(List request) + { + var group = request.OrderByDescending(x=>x.Summary.TestDT).GroupBy(x => + (DateOnly.FromDateTime(x.Summary.TestDT.Date), + x.Summary.TestType, + x.Summary.ProdNo_C, + x.Summary.Testcode, + x.Summary.TestListFileNo, + x.Summary.TestListVariantNo, + x.Summary.ProdNo_P, + x.Summary.ProdCode, + x.Summary.Version, + x.Summary.StepVersion)) + .Select(x => x.ToOverviewMerged()) + .DistinctBy(x => (x.TestType, x.ProductNo, x.TestCode, + x.ParentNo,x.FileCode, x.FileVersion)) + .OrderBy(x => (x.ProductNo, x.ParentNo)); - 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 => - (DateOnly.FromDateTime(x.Summary.TestDT.Date), - x.Summary.TestType, - x.Summary.ProdNo_C, - x.Summary.Testcode, - x.Summary.TestListFileNo, - x.Summary.TestListVariantNo, - x.Summary.ProdNo_P, - x.Summary.ProdCode, - 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)); - - overview.AddRange(group); - } - } - } - - return overview; + await Task.CompletedTask; + return group.ToList(); } //Get DBContext