internal static FabStep GetNextMandatoryStep(FabLot lot) { string key = LcdHelper.CreateKey(lot.CurrentProductID, lot.CurrentFabStep.Key); FabStep next; if (_nextMainEqpStepCache.TryGetValue(key, out next) == false) { FabProduct nextProd = lot.FabProduct; next = lot.CurrentFabStep.GetNextStep(nextProd, ref nextProd); int safeCnt = 0; while (next != null && next.StdStep.IsMandatory == false) { next = next.GetNextStep(nextProd, ref nextProd); if (next == null) { break; } safeCnt++; if (safeCnt == 100) { Logger.MonitorInfo("CHECK ROUTE : {0} → NEXT MAIN EQP STEP", lot.CurrentFabStep.StepKey); next = null; break; } } _nextMainEqpStepCache.Add(key, next); } return(next); }
internal static IList <IMaterial> GetBankWip(PegPart pegPart) { FabPegPart pp = pegPart.ToFabPegPart(); FabProduct prod = pp.Current.Product; FabStep step = pp.Current.Step; string key = LcdHelper.CreateKey(step.ShopID, step.StepID); List <FabPlanWip> list; CellBankPlanWips.TryGetValue(key, out list); if (list == null) { return(null); } List <IMaterial> result = new List <IMaterial>(); foreach (var item in list) { if (item.ProductID == prod.ProductID) { result.Add(item); } } return(result); }
public static FabProduct FindProduct(string shopID, string productID) { string key = LcdHelper.CreateKey(shopID, productID); if (key == null) { return(null); } FabProduct prod; InputMart.Instance.FabProduct.TryGetValue(key, out prod); return(prod); }
internal static FabStep GetSafeDummyStep(string factoryID, string shopID, string stepID) { if (DummySteps == null) { DummySteps = new Dictionary <string, FabStep>(); } string key = LcdHelper.CreateKey(shopID, stepID); FabStep step; if (DummySteps.TryGetValue(key, out step) == false) { step = CreateDummyStep(factoryID, shopID, stepID); DummySteps.Add(key, step); } return(step); }
private static void AddOut(OutInfo info) { var outProfiles = InOutProfileMaster.OutProfiles; var key = LcdHelper.CreateKey(info.ProductID, info.ProductVersion, info.OwnerType); FabOutProfile op; if (outProfiles.TryGetValue(key, out op) == false) { op = CreateHelper.CreateFabOutProfile(info); outProfiles.Add(key, op); //set matched cell info op.CellCodeList = CellCodeMaster.GetCellCodeList(info.ProductID); } AddInfo(op.Infos, info); }
private static bool IsNotOwnerLimit(AoEquipment aeqp, FabLot lot, ref string reason) { string key = LcdHelper.CreateKey(lot.CurrentShopID, lot.CurrentStepID, lot.OwnerID); OwnerLimitInfo info; InputMart.Instance.OwnerLimitInfo.TryGetValue(key, out info); if (info == null) { return(true); } string eqpID = aeqp.EqpID; //N >> Y 순 if (info.HasN) { if (info.NList.Contains(eqpID)) { reason = string.Format("Type N"); return(false); } } if (info.HasY) { if (info.YList.Contains(eqpID)) { return(true); } else { //Y인 정보가 한개라도 등록된 경우 (등록된 Eqp만 가능) reason = string.Format("No Register Type Y"); return(false); } } return(true); }
internal static void PrePareBankWip() { if (CellBankPlanWips == null) { CellBankPlanWips = new Dictionary <string, List <FabPlanWip> >(); } foreach (var item in InputMart.Instance.CellBankWips.Values) { FabPlanWip wip = CreateHelper.CreatePlanWip(item); string key = LcdHelper.CreateKey(item.ShopID, item.WipStepID); List <FabPlanWip> list; if (CellBankPlanWips.TryGetValue(key, out list) == false) { CellBankPlanWips.Add(key, list = new List <FabPlanWip>()); } list.Add(wip); } }
/// <param name="isMain">true: MainL-ine, false:U-Line</param> public static string GetTatKey(string productID, bool isMain) { return(LcdHelper.CreateKey(productID, isMain.ToString())); }
private string GetWipProfileKey(FabStep step, string productVer) { return(LcdHelper.CreateKey(step.StepKey, productVer)); }
internal static List <EqpRecipeInfo> GetRecipeMatchList(FabAoEquipment eqp, FabLot lot) { FabStep step = lot.CurrentFabStep; FabMask mask = lot.CurrentMask; string productID = lot.CurrentProductID; string stepID = step.StdStep.RecipeLPOBM.Contains("O") ? lot.CurrentFabStep.StepID : Constants.NULL_ID; string prodVer = step.StdStep.RecipeLPOBM.Contains("B") ? lot.CurrentProductVersion : Constants.NULL_ID;; string toolID = step.StdStep.RecipeLPOBM.Contains("M") ? mask != null ? mask.ToolID : Constants.NULL_ID : Constants.NULL_ID; string key = LcdHelper.CreateKey(eqp.EqpID, step.StepID, productID, prodVer, toolID); List <EqpRecipeInfo> list; if (_cacheRecipeInfo.TryGetValue(key, out list)) { return(list); } FabEqp targetEqp = eqp.TargetEqp; if (targetEqp.RecipeTime.TryGetValue(productID, out list) == false) { return(new List <EqpRecipeInfo>()); } List <EqpRecipeInfo> result = new List <EqpRecipeInfo>(); foreach (var item in list) { if (item.Flag == RecipeFlag.N || item.Flag == RecipeFlag.None) { continue; } if (item.Flag == RecipeFlag.M && item.IsVaildMFlag == false) { continue; } string runMode = eqp.GetCurrentRunMode(); //RunMode if (LcdHelper.IsEmptyID(runMode) == false) { if (runMode != item.RunMode) { continue; } } //Shop if (step.ShopID != item.ShopID) { continue; } //O - Step if (LcdHelper.IsEmptyID(stepID) == false && stepID != item.StepID) { continue; } //B - Version if (LcdHelper.IsEmptyID(prodVer) == false) { if (item.ProductVersion != prodVer) { continue; } } //M - Mask if (LcdHelper.IsEmptyID(toolID) == false) { if (toolID != item.ToolID) { continue; } } result.Add(item); } result.Sort(new CompareHelper.EqpRecipeTimeComparer()); _cacheRecipeInfo.Add(key, result); return(result); }
public override string ToString() { return(LcdHelper.CreateKey(this.ProductID, this.OwnerType)); }
private static string CreateKey(string cellCode, string ownerType) { return(LcdHelper.CreateKey(cellCode, ownerType)); }
internal static string CreateKeyForJobFilter(string shop, string stepID, string productID, string prodVer, string ownerType) { return(LcdHelper.CreateKey(shop, stepID, productID, prodVer, ownerType)); }
private static string CreateKey(string eqpGroup, string runMode) { return(LcdHelper.CreateKey(eqpGroup, runMode)); }
private static string GetFromListKey(string productID, CellActionType actionType) { return(LcdHelper.CreateKey(productID, actionType.ToString())); }
public static string CreateKey(string productID, string ownerType) { return(LcdHelper.CreateKey(productID, ownerType)); }
private static string GetMaskLoadInfoKey(string eqpID, string lotID, string stepID) { return(LcdHelper.CreateKey(eqpID, lotID, stepID)); }
private static string GetKey(string shopID, string holdCode) { string key = LcdHelper.CreateKey(shopID, holdCode); return(key); }
private static string GetLayerKey(string shopID, string layerID) { return(LcdHelper.CreateKey(shopID, layerID)); }
public static string GetProcessKey2(string productID, string stepID) { return(LcdHelper.CreateKey(productID, stepID)); }
private static string CreateKey_EqpArrangeSet(string eqpID, string stepID, string productID, string productVer) { return(LcdHelper.CreateKey(eqpID, stepID, productID, productVer)); }