[성현모] HistoryMerged 조회 추가
This commit is contained in:
13
Projects/WebClient/Web.Tra/.config/dotnet-tools.json
Normal file
13
Projects/WebClient/Web.Tra/.config/dotnet-tools.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"isRoot": true,
|
||||||
|
"tools": {
|
||||||
|
"dotnet-ef": {
|
||||||
|
"version": "9.0.8",
|
||||||
|
"commands": [
|
||||||
|
"dotnet-ef"
|
||||||
|
],
|
||||||
|
"rollForward": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -3,7 +3,7 @@
|
|||||||
@inject ContextMenuService ContextMenuService
|
@inject ContextMenuService ContextMenuService
|
||||||
|
|
||||||
<RadzenDataGrid Style="height:calc(100vh - 23rem); font-size: 20px;" TItem="TDataModel" Data="@DataList" AllowPaging PageSize="@PageSize"
|
<RadzenDataGrid Style="height:calc(100vh - 23rem); font-size: 20px;" TItem="TDataModel" Data="@DataList" AllowPaging PageSize="@PageSize"
|
||||||
AllowFiltering FilterMode="FilterMode.Advanced" CellRender="@CellRender"
|
AllowFiltering FilterMode="FilterMode.Advanced" CellRender="@CellRender" AllowColumnResize
|
||||||
SelectionMode="DataGridSelectionMode.Single" @bind-Value="@SelectedRow"
|
SelectionMode="DataGridSelectionMode.Single" @bind-Value="@SelectedRow"
|
||||||
CellContextMenu="@OnCellContextMenu" RowSelect="@SelectRow" RowDoubleClick="@OnRowDoublClick">
|
CellContextMenu="@OnCellContextMenu" RowSelect="@SelectRow" RowDoubleClick="@OnRowDoublClick">
|
||||||
<Columns>
|
<Columns>
|
||||||
@ -12,7 +12,9 @@
|
|||||||
{
|
{
|
||||||
<RadzenDataGridColumn Title="No.">
|
<RadzenDataGridColumn Title="No.">
|
||||||
<Template>
|
<Template>
|
||||||
@(DataList.ToList().IndexOf(context) + 1)
|
<span class="custom-rz-value">
|
||||||
|
@(DataList.ToList().IndexOf(context) + 1)
|
||||||
|
</span>
|
||||||
</Template>
|
</Template>
|
||||||
</RadzenDataGridColumn>
|
</RadzenDataGridColumn>
|
||||||
}
|
}
|
||||||
@ -130,6 +132,9 @@
|
|||||||
|
|
||||||
if (args.Column.Property.ToLower().Equals("host"))
|
if (args.Column.Property.ToLower().Equals("host"))
|
||||||
{
|
{
|
||||||
|
if (HostColumnMerge == false)
|
||||||
|
return;
|
||||||
|
|
||||||
int rowCount = 0;
|
int rowCount = 0;
|
||||||
var take = DataList.Skip(index).Take(((index / PageSize) + 1) * PageSize - index);
|
var take = DataList.Skip(index).Take(((index / PageSize) + 1) * PageSize - index);
|
||||||
foreach (var r in take)
|
foreach (var r in take)
|
||||||
|
|||||||
@ -89,16 +89,24 @@
|
|||||||
@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="@OverviewDisableColums"
|
||||||
OnDoubleClickRow="@OnDoubleClickRowOverview">
|
OnDoubleClickRow="@OnDoubleClickRowOverview" HostColumnMerge>
|
||||||
</TraGrid>
|
</TraGrid>
|
||||||
}
|
}
|
||||||
|
|
||||||
@if (tab.Key == EnumTabs.OverviewC1Detail.ToString())
|
@if (tab.Key == EnumTabs.OverviewC1Detail.ToString())
|
||||||
{
|
{
|
||||||
<TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
<TraGrid TDataModel="Overview" DataList="@DetailOverviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
||||||
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@DisableColums"
|
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@OverviewDisableColums"
|
||||||
OnDoubleClickRow="@OnDoubleClickRowOverview">
|
OnDoubleClickRow="@OnDoubleClickRowDetailOverview" HostColumnMerge>
|
||||||
|
</TraGrid>
|
||||||
|
}
|
||||||
|
|
||||||
|
@if (tab.Key.Contains(EnumTabs.TestHistoryC1.ToString()))
|
||||||
|
{
|
||||||
|
<TraGrid TDataModel="TestHistory" DataList="@TestHistories.Where(x=>x.Key == tab.Key).First().Value" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
||||||
|
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize" DisableColums="@HistoryDisableColums"
|
||||||
|
VisibleRowNo HostColumnMerge="false">
|
||||||
</TraGrid>
|
</TraGrid>
|
||||||
}
|
}
|
||||||
</ChildContent>
|
</ChildContent>
|
||||||
@ -121,7 +129,8 @@
|
|||||||
//options
|
//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> OverviewDisableColums = new List<string>();
|
||||||
|
private List<string> HistoryDisableColums = new List<string> { "testdate", "modelname", "firsttesttime", "finaltesttime", "testlistcntid" };
|
||||||
|
|
||||||
//tab
|
//tab
|
||||||
RadzenTabs tabs;
|
RadzenTabs tabs;
|
||||||
@ -132,6 +141,7 @@
|
|||||||
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>();
|
||||||
|
Dictionary<string,List<TestHistory>> TestHistories = new();
|
||||||
|
|
||||||
private async Task OnSearch()
|
private async Task OnSearch()
|
||||||
{
|
{
|
||||||
@ -155,9 +165,9 @@
|
|||||||
|
|
||||||
private async Task GetOverviews()
|
private async Task GetOverviews()
|
||||||
{
|
{
|
||||||
DisableColums.Clear();
|
OverviewDisableColums.Clear();
|
||||||
DisableColums.Add("rn");
|
OverviewDisableColums.Add("rn");
|
||||||
DisableColums.Add("stepversion");
|
OverviewDisableColums.Add("stepversion");
|
||||||
|
|
||||||
if (IsMergePartNumberOption == false)
|
if (IsMergePartNumberOption == false)
|
||||||
{
|
{
|
||||||
@ -165,10 +175,10 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DisableColums.Add("stationname");
|
OverviewDisableColums.Add("stationname");
|
||||||
DisableColums.Add("host");
|
OverviewDisableColums.Add("host");
|
||||||
DisableColums.Add("section");
|
OverviewDisableColums.Add("section");
|
||||||
DisableColums.Add("testlistcntid");
|
OverviewDisableColums.Add("testlistcntid");
|
||||||
Overviews = await CPXV2LogService.GetOverviewMerged(SearchDataOverviews);
|
Overviews = await CPXV2LogService.GetOverviewMerged(SearchDataOverviews);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -204,6 +214,29 @@
|
|||||||
SelectedTabIndex = ListTabs.Keys.ToList().IndexOf(EnumTabs.OverviewC1Detail.ToString());
|
SelectedTabIndex = ListTabs.Keys.ToList().IndexOf(EnumTabs.OverviewC1Detail.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task OnDoubleClickRowDetailOverview(IDataModel row)
|
||||||
|
{
|
||||||
|
var historyIndex = TestHistories.Count();
|
||||||
|
string histoiresKey = $"{EnumTabs.TestHistoryC1.ToString()}({historyIndex + 1})";
|
||||||
|
|
||||||
|
if (IsMergePartNumberOption == false)
|
||||||
|
{
|
||||||
|
var getHistories = await CPXV2LogService.GetTestHistory(SearchDataOverviews, row);
|
||||||
|
TestHistories.Add(histoiresKey, getHistories);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var getHistories = await CPXV2LogService.GetTestHistoryMerged(SearchDataOverviews, row);
|
||||||
|
TestHistories.Add(histoiresKey, getHistories);
|
||||||
|
}
|
||||||
|
|
||||||
|
//tab control
|
||||||
|
ListTabs.Add(histoiresKey, EnumTabs.TestHistoryC1);
|
||||||
|
tabs.Reload();
|
||||||
|
|
||||||
|
SelectedTabIndex = ListTabs.Count - 1;
|
||||||
|
}
|
||||||
|
|
||||||
private void OnClickDetailOverviewContextMenu()
|
private void OnClickDetailOverviewContextMenu()
|
||||||
{
|
{
|
||||||
// DetailOverviews = OverviewService.SearchDetailOverview(SelectedDataService.SelectedOverview);
|
// DetailOverviews = OverviewService.SearchDetailOverview(SelectedDataService.SelectedOverview);
|
||||||
|
|||||||
@ -59,26 +59,28 @@ public static class ObjectExtend
|
|||||||
return data.ToOverview();
|
return data.ToOverview();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TestHistory ToTestHistory(this IEnumerable<SearchData> data)
|
public static TestHistory ToTestHistory(this SearchData data)
|
||||||
{
|
{
|
||||||
return new TestHistory
|
return new TestHistory
|
||||||
{
|
{
|
||||||
No = data.Last().Summary.No,
|
No = data.Summary.No,
|
||||||
TestDateTime = data.Last().Summary.TestDT,
|
TestDate = data.Summary.TestDT,
|
||||||
StationName = data.Last().Summary.StationName,
|
TestDateTime = data.Summary.TestDT,
|
||||||
Host = data.Last().Summary.HostID,
|
StationName = data.Summary.StationName,
|
||||||
Section = data.Last().Summary.Section,
|
Host = data.Summary.HostID,
|
||||||
ProductID = data.Last().Summary.ProductID,
|
Section = data.Summary.Section,
|
||||||
TestType = data.Last().Summary.TestType,
|
ProductID = data.Summary.ProductID,
|
||||||
ProductNo = data.Last().Summary.ProdNo_C,
|
TestType = data.Summary.TestType,
|
||||||
TestCode = data.Last().Summary.Testcode,
|
ProductNo = data.Summary.ProdNo_C,
|
||||||
ParentNo = data.Last().Summary.ProdNo_P,
|
TestCode = data.Summary.Testcode,
|
||||||
FileCode = data.Last().Summary.ProdCode,
|
ParentNo = data.Summary.ProdNo_P,
|
||||||
FileVersion = data.Last().Summary.Version,
|
FileCode = data.Summary.ProdCode,
|
||||||
StepVersion = data.Last().Summary.StepVersion,
|
FileVersion = data.Summary.Version,
|
||||||
Duration = data.Last().Summary.Duration,
|
StepVersion = data.Summary.StepVersion,
|
||||||
TestResult = data.Last().Summary.Result,
|
Duration = data.Summary.Duration,
|
||||||
TestlistReqID = data.Last().Summary.TestListCntID,
|
TestResult = data.Summary.Result,
|
||||||
|
TestListCntID = data.Summary.TestListCntID,
|
||||||
|
TestListReqID = data.Summary.TestListCntID
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,13 +2,12 @@
|
|||||||
{
|
{
|
||||||
public class TestHistory : IDataModel
|
public class TestHistory : IDataModel
|
||||||
{
|
{
|
||||||
public DateTime? TestDate { get; set; }
|
|
||||||
public string ModelName { get; set; }
|
|
||||||
|
|
||||||
public long No { get; set; }
|
public long No { get; set; }
|
||||||
public DateTime TestDateTime { get; set; }
|
public DateTime? TestDate { get; set; }
|
||||||
|
public DateTime? TestDateTime { get; set; }
|
||||||
|
public string ModelName { get; set; } //no use
|
||||||
public string StationName { get; set; }
|
public string StationName { get; set; }
|
||||||
public string Host { get; set; }
|
public string Host { get; set; }
|
||||||
public string Section { get; set; }
|
public string Section { get; set; }
|
||||||
public string ProductID { get; set; }
|
public string ProductID { get; set; }
|
||||||
public string TestType { get; set; }
|
public string TestType { get; set; }
|
||||||
@ -19,11 +18,10 @@
|
|||||||
public string FileVersion { get; set; }
|
public string FileVersion { get; set; }
|
||||||
public int? StepVersion { get; set; }
|
public int? StepVersion { get; set; }
|
||||||
public string Duration { get; set; }
|
public string Duration { get; set; }
|
||||||
public string TestResult { get; set; }
|
public string TestResult { get; set; }
|
||||||
public string TestlistReqID { 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; }
|
public string TestListCntID { get; set; }
|
||||||
|
public string TestListReqID { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -151,6 +151,34 @@ namespace Web.Tra.Services
|
|||||||
return detailOverview.ToList();
|
return detailOverview.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<List<TestHistory>> GetTestHistory(List<SearchData> request, IDataModel row)
|
||||||
|
{
|
||||||
|
var testHistory = request
|
||||||
|
.Where(x => x.Summary.TestDT.Date == row.TestDate.Value.Date &&
|
||||||
|
x.Summary.HostID == row.Host &&
|
||||||
|
x.Summary.Section == row.Section &&
|
||||||
|
x.Summary.ProdNo_C == row.ProductNo &&
|
||||||
|
x.Summary.ProdNo_P == row.ParentNo &&
|
||||||
|
x.Summary.TestListCntID == row.TestListCntID)
|
||||||
|
.Select(x=>x.ToTestHistory())
|
||||||
|
.OrderBy(x => x.No);
|
||||||
|
await Task.CompletedTask;
|
||||||
|
return testHistory.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<TestHistory>> GetTestHistoryMerged(List<SearchData> request, IDataModel row)
|
||||||
|
{
|
||||||
|
var testHistory = request
|
||||||
|
.Where(x => x.Summary.TestDT.Date == row.TestDate.Value.Date &&
|
||||||
|
x.Summary.Testcode == row.TestCode&&
|
||||||
|
x.Summary.ProdNo_C == row.ProductNo &&
|
||||||
|
x.Summary.ProdNo_P == row.ParentNo)
|
||||||
|
.Select(x => x.ToTestHistory())
|
||||||
|
.OrderBy(x => (x.TestListReqID, x.No));
|
||||||
|
await Task.CompletedTask;
|
||||||
|
return testHistory.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