diff --git a/Adaptation/FileHandlers/TIBCO/Transport/Job.cs b/Adaptation/FileHandlers/TIBCO/Transport/Job.cs index 0494ca1..6a272d3 100644 --- a/Adaptation/FileHandlers/TIBCO/Transport/Job.cs +++ b/Adaptation/FileHandlers/TIBCO/Transport/Job.cs @@ -39,6 +39,7 @@ public class Job else { string psn; + string zone; int? rdsNumber; string epiLayer; string basicType; @@ -61,11 +62,12 @@ public class Job JobName = DateTime.Ticks.ToString(); AutomationMode = string.Concat(DateTime.Ticks, ".", input.MesEntity); if (IsValid(rdsNumber)) - (basicType, rdsNumber, psn, reactorNumber, epiLayer) = GetWithValidRDS(lsl2SQLConnectionString, psn, rdsNumber, reactorNumber); + (basicType, rdsNumber, psn, reactorNumber, epiLayer, zone) = GetWithValidRDS(lsl2SQLConnectionString, psn, rdsNumber, reactorNumber); else if (isWorkOrder || reactorNumber.HasValue) - (basicType, rdsNumber, psn, reactorNumber, epiLayer) = Get(lsl2SQLConnectionString, reactorNumber, slotNumber, workOrderNumber, workOrderCassette); + (basicType, rdsNumber, psn, reactorNumber, epiLayer, zone) = Get(lsl2SQLConnectionString, reactorNumber, slotNumber, workOrderNumber, workOrderCassette); else { + zone = hyphen; epiLayer = "1"; basicType = hyphen; } @@ -76,7 +78,7 @@ public class Job RecipeName = input.Recipe; StateModel = input.EquipmentType; PackageName = hyphen; //WAFER_ID WaferLot - ProcessSpecName = hyphen; //WAFER_POS PocketNumber + ProcessSpecName = zone; //WAFER_POS PocketNumber if (rdsNumber is null) LotName = input.MID; else @@ -228,6 +230,14 @@ public class Job Append(" , rr.recipe_name "). Append(" , rr.recipe_no "). Append(" , rr.spec_type "). + Append(" , ( "). + Append(" select max(wm.zone) "). + Append(" from lsl2sql.dbo.wm_in_slot_no wm "). + Append(" where wm.wo_no = rr.wo_no "). + Append(" and wm.rds_no = rr.rds_no "). + Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' '). + Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' '). + Append(" ) zone "). Append(" from lsl2sql.dbo.react_run rr "). Append(" where rr.rds_no = ").Append(rds is null ? -1 : rds.Value).Append(' '). Append(" union all "). @@ -240,6 +250,14 @@ public class Job Append(" , rr.recipe_name "). Append(" , rr.recipe_no "). Append(" , rr.spec_type "). + Append(" , ( "). + Append(" select max(wm.zone) "). + Append(" from lsl2sql.dbo.wm_in_slot_no wm "). + Append(" where wm.wo_no = rr.wo_no "). + Append(" and wm.rds_no = rr.rds_no "). + Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' '). + Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' '). + Append(" ) zone "). Append(" from lsl2sql.dbo.react_run rr "). Append(" where rr.rds_no = ( "). Append(" select max(wm.rds_no) "). @@ -258,6 +276,14 @@ public class Job Append(" , rr.recipe_name "). Append(" , rr.recipe_no "). Append(" , rr.spec_type "). + Append(" , ( "). + Append(" select max(wm.zone) "). + Append(" from lsl2sql.dbo.wm_in_slot_no wm "). + Append(" where wm.wo_no = rr.wo_no "). + Append(" and wm.rds_no = rr.rds_no "). + Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' '). + Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' '). + Append(" ) zone "). Append(" from lsl2sql.dbo.react_run rr "). Append(" where rr.rds_no = ( "). Append(" select max(qa.rds_no) "). @@ -284,9 +310,10 @@ public class Job return result; } - private static (string, int?, string, int?, string) Get(string lsl2SQLConnectionString, int? reactorNumber, int? slotNumber, int? workOrderNumber, int? workOrderCassette) + private static (string, int?, string, int?, string, string) Get(string lsl2SQLConnectionString, int? reactorNumber, int? slotNumber, int? workOrderNumber, int? workOrderCassette) { string psn; + string zone; int? rdsNumber; string basicType; const int zero = 0; @@ -298,6 +325,7 @@ public class Job rdsNumber = null; basicType = hyphen; psn = string.Empty; + zone = string.Empty; } else { @@ -311,10 +339,12 @@ public class Job rdsNumber = null; basicType = hyphen; psn = string.Empty; + zone = string.Empty; } else { psn = runs[zero].PSN; + zone = runs[zero].Zone; rdsNumber = runs[zero].RdsNo; if (reactorNumber is null) reactorNumber = runs[zero].Reactor; @@ -328,18 +358,22 @@ public class Job basicType = $"{loadLockSideFull} - {runs[zero].ReactorType}"; } } - return new(basicType, rdsNumber, psn, reactorNumber, epiLayer); + return new(basicType, rdsNumber, psn, reactorNumber, epiLayer, zone); } - private static (string, int?, string, int?, string) GetWithValidRDS(string lsl2SQLConnectionString, string psn, int? rdsNumber, int? reactorNumber) + private static (string, int?, string, int?, string, string) GetWithValidRDS(string lsl2SQLConnectionString, string psn, int? rdsNumber, int? reactorNumber) { + string zone; string basicType; const int zero = 0; string epiLayer = "1"; const string hyphen = "-"; string json = GetRunJson(lsl2SQLConnectionString, rdsNumber, workOrderNumber: -1, workOrderCassette: -1, slot: -1, reactor: -1); if (string.IsNullOrEmpty(json)) + { basicType = hyphen; + zone = string.Empty; + } else { Run[] runs; @@ -348,13 +382,17 @@ public class Job catch (Exception) { runs = Array.Empty(); } if (!runs.Any()) + { basicType = hyphen; + zone = string.Empty; + } else { if (string.IsNullOrEmpty(psn)) psn = runs[zero].PSN; if (reactorNumber is null) reactorNumber = runs[zero].Reactor; + zone = runs[zero].Zone; string loadLockSide = runs[zero].LoadLockSide; string loadLockSideFull = loadLockSide switch { @@ -365,7 +403,7 @@ public class Job basicType = $"{loadLockSideFull} - {runs[zero].ReactorType}"; } } - return new(basicType, rdsNumber, psn, reactorNumber, epiLayer); + return new(basicType, rdsNumber, psn, reactorNumber, epiLayer, zone); } } \ No newline at end of file diff --git a/Adaptation/FileHandlers/TIBCO/Transport/Run.cs b/Adaptation/FileHandlers/TIBCO/Transport/Run.cs index 8ccba14..e5df997 100644 --- a/Adaptation/FileHandlers/TIBCO/Transport/Run.cs +++ b/Adaptation/FileHandlers/TIBCO/Transport/Run.cs @@ -77,4 +77,7 @@ public class Run [JsonPropertyName("epi_res_targ")] public double? EpiResTarg { get; set; } + [JsonPropertyName("zone")] + public string Zone { get; set; } + } \ No newline at end of file