MET08DDUPSP1TBI - v2.47.0 - Job - Zone

This commit is contained in:
Mike Phares 2022-10-10 20:01:34 -07:00
parent ccc2e138e5
commit 73b88fed0b
2 changed files with 48 additions and 7 deletions

View File

@ -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<Run>(); }
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);
}
}

View File

@ -77,4 +77,7 @@ public class Run
[JsonPropertyName("epi_res_targ")]
public double? EpiResTarg { get; set; }
[JsonPropertyName("zone")]
public string Zone { get; set; }
}