Enhance CommonB and Run classes to include ExportControl and ReactorMode properties; update Job class to utilize new fields for improved data handling

This commit is contained in:
2025-12-11 09:02:54 -07:00
parent 35f5873e22
commit 7ca641f912
3 changed files with 69 additions and 4 deletions

View File

@ -10,18 +10,24 @@ public class CommonB
public string? PSN { get; } public string? PSN { get; }
public int? ReactorNumber { get; } public int? ReactorNumber { get; }
public string? Zone { get; } public string? Zone { get; }
public string? ExportControl { get; }
public string? ReactorMode { get; }
public CommonB(string? layer, public CommonB(string? layer,
int? rdsNumber, int? rdsNumber,
string? psn, string? psn,
int? reactorNumber, int? reactorNumber,
string? zone) string? zone,
string? exportControl,
string? reactorMode)
{ {
Layer = layer; Layer = layer;
RDSNumber = rdsNumber; RDSNumber = rdsNumber;
PSN = psn; PSN = psn;
ReactorNumber = reactorNumber; ReactorNumber = reactorNumber;
Zone = zone; Zone = zone;
ExportControl = exportControl;
ReactorMode = reactorMode;
} }
internal static CommonB Get(Common common, RunDataSheetRoot? runDataSheetRoot, Run[]? runs) internal static CommonB Get(Common common, RunDataSheetRoot? runDataSheetRoot, Run[]? runs)
@ -31,9 +37,13 @@ public class CommonB
string? zone; string? zone;
string? layer; string? layer;
int? reactorNumber; int? reactorNumber;
string? reactorMode;
string? exportControl;
if (runs is null || runs.Length == 0) if (runs is null || runs.Length == 0)
{ {
reactorMode = null;
zone = common.Zone; zone = common.Zone;
exportControl = null;
layer = common.Layer; layer = common.Layer;
if (runDataSheetRoot?.RunDataSheet is null) if (runDataSheetRoot?.RunDataSheet is null)
{ {
@ -50,6 +60,8 @@ public class CommonB
{ {
const int zero = 0; const int zero = 0;
Run run = runs[zero]; Run run = runs[zero];
reactorMode = run.ReactorMode;
exportControl = run.ExportControl;
if (runDataSheetRoot?.RunDataSheet is not null) if (runDataSheetRoot?.RunDataSheet is not null)
{ {
psn = runDataSheetRoot?.RunDataSheet.PSN.ToString(); psn = runDataSheetRoot?.RunDataSheet.PSN.ToString();
@ -67,7 +79,9 @@ public class CommonB
rdsNumber: common.RDSNumber, rdsNumber: common.RDSNumber,
psn: psn, psn: psn,
reactorNumber: reactorNumber, reactorNumber: reactorNumber,
zone: zone); zone: zone,
exportControl: exportControl,
reactorMode: reactorMode);
return result; return result;
} }

View File

@ -119,11 +119,9 @@ public partial class Job
basicType = runCount is null ? hyphen : (runCount + 1).ToString(); basicType = runCount is null ? hyphen : (runCount + 1).ToString();
} }
Qty = "1"; Qty = "1";
Status = hyphen; // INFO
CreationUser = hyphen; // ? CreationUser = hyphen; // ?
LotState = hyphen; // LAYER2 LotState = hyphen; // LAYER2
Equipment = input.MesEntity; // ? Equipment = input.MesEntity; // ?
PackageName = hyphen; // WAFER_ID
Qty2 = input.Sequence; // SEQUENCE Qty2 = input.Sequence; // SEQUENCE
RecipeName = input.Recipe; // PPID RecipeName = input.Recipe; // PPID
BasicType = basicType; // BASIC_TYPE BasicType = basicType; // BASIC_TYPE
@ -133,8 +131,10 @@ public partial class Job
AutomationMode = string.Concat(DateTime.Ticks, ".", input.MesEntity); // ? AutomationMode = string.Concat(DateTime.Ticks, ".", input.MesEntity); // ?
SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER
ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT
Status = !string.IsNullOrEmpty(commonB.ReactorMode) ? commonB.ReactorMode : hyphen; // INFO
ProcessSpecName = !string.IsNullOrEmpty(commonB.Zone) ? commonB.Zone : hyphen; // WAFER_POS ProcessSpecName = !string.IsNullOrEmpty(commonB.Zone) ? commonB.Zone : hyphen; // WAFER_POS
LotName = commonB.RDSNumber is not null ? commonB.RDSNumber.Value.ToString() : input.MID; // MID LotName = commonB.RDSNumber is not null ? commonB.RDSNumber.Value.ToString() : input.MID; // MID
PackageName = !string.IsNullOrEmpty(commonB.ExportControl) ? commonB.ExportControl : hyphen; // WAFER_ID
LastUpdateUser = string.IsNullOrEmpty(runDataSheetRoot?.Json) ? "{}" : runDataSheetRoot.Json; // NULL_DATA LastUpdateUser = string.IsNullOrEmpty(runDataSheetRoot?.Json) ? "{}" : runDataSheetRoot.Json; // NULL_DATA
ProcessType = commonB.ReactorNumber is not null ? commonB.ReactorNumber.Value.ToString() : hyphen; // PROCESS_JOBID ProcessType = commonB.ReactorNumber is not null ? commonB.ReactorNumber.Value.ToString() : hyphen; // PROCESS_JOBID
Items.Add(new Item { Name = "0", Type = "NA", Number = (0 + 1).ToString(), Qty = "1", CarrierName = hyphen }); Items.Add(new Item { Name = "0", Type = "NA", Number = (0 + 1).ToString(), Qty = "1", CarrierName = hyphen });
@ -597,6 +597,21 @@ public partial class Job
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}"); results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}"); results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) zone "); results.Add(" ) zone ");
results.Add(" , ( ");
results.Add(" select top 1 case when ep.export_control = 1 then 'true' else 'false' end ");
results.Add(" from lsl2sql.dbo.epi_part ep ");
results.Add(" where ep.epi_pn = rr.part_no ");
results.Add(" ) export_control ");
results.Add(" , ( ");
results.Add(" select top 1 rm.mode ");
results.Add(" from lsl2sql.dbo.react_mode rm ");
results.Add(" where rm.react_no = rr.reactor ");
results.Add(" and rm.start_dtm = ( ");
results.Add(" select max(start_dtm) ");
results.Add(" from lsl2sql.dbo.react_mode rm_b ");
results.Add(" where rm_b.react_no = rr.reactor ");
results.Add(" ) ");
results.Add(" ) react_mode ");
results.Add(" from lsl2sql.dbo.react_run rr "); results.Add(" from lsl2sql.dbo.react_run rr ");
results.Add($" where rr.rds_no = {rdsValue}"); results.Add($" where rr.rds_no = {rdsValue}");
results.Add($" and rr.enter_dtm > '{enteredDateTimeFilter:yyyy-MM-dd} 00:00:00.000' "); results.Add($" and rr.enter_dtm > '{enteredDateTimeFilter:yyyy-MM-dd} 00:00:00.000' ");
@ -618,6 +633,21 @@ public partial class Job
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}"); results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}"); results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) zone "); results.Add(" ) zone ");
results.Add(" , ( ");
results.Add(" select top 1 case when ep.export_control = 1 then 'true' else 'false' end ");
results.Add(" from lsl2sql.dbo.epi_part ep ");
results.Add(" where ep.epi_pn = rr.part_no ");
results.Add(" ) export_control ");
results.Add(" , ( ");
results.Add(" select top 1 rm.mode ");
results.Add(" from lsl2sql.dbo.react_mode rm ");
results.Add(" where rm.react_no = rr.reactor ");
results.Add(" and rm.start_dtm = ( ");
results.Add(" select max(start_dtm) ");
results.Add(" from lsl2sql.dbo.react_mode rm_b ");
results.Add(" where rm_b.react_no = rr.reactor ");
results.Add(" ) ");
results.Add(" ) react_mode ");
results.Add(" from lsl2sql.dbo.react_run rr "); results.Add(" from lsl2sql.dbo.react_run rr ");
results.Add(" where rr.rds_no = ( "); results.Add(" where rr.rds_no = ( ");
results.Add(" select max(wm.rds) "); results.Add(" select max(wm.rds) ");
@ -644,6 +674,21 @@ public partial class Job
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}"); results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}"); results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) zone "); results.Add(" ) zone ");
results.Add(" , ( ");
results.Add(" select top 1 case when ep.export_control = 1 then 'true' else 'false' end ");
results.Add(" from lsl2sql.dbo.epi_part ep ");
results.Add(" where ep.epi_pn = rr.part_no ");
results.Add(" ) export_control ");
results.Add(" , ( ");
results.Add(" select top 1 rm.mode ");
results.Add(" from lsl2sql.dbo.react_mode rm ");
results.Add(" where rm.react_no = rr.reactor ");
results.Add(" and rm.start_dtm = ( ");
results.Add(" select max(start_dtm) ");
results.Add(" from lsl2sql.dbo.react_mode rm_b ");
results.Add(" where rm_b.react_no = rr.reactor ");
results.Add(" ) ");
results.Add(" ) react_mode ");
results.Add(" from lsl2sql.dbo.react_run rr "); results.Add(" from lsl2sql.dbo.react_run rr ");
results.Add(" where rr.rds_no = ( "); results.Add(" where rr.rds_no = ( ");
results.Add(" select max(qa.rds_no) "); results.Add(" select max(qa.rds_no) ");

View File

@ -74,4 +74,10 @@ public class Run
[JsonPropertyName("zone")] [JsonPropertyName("zone")]
public string Zone { get; set; } public string Zone { get; set; }
[JsonPropertyName("export_control")]
public string ExportControl { get; set; }
[JsonPropertyName("react_mode")]
public string ReactorMode { get; set; }
} }