private void SetLayerBalance(Dictionary <FabStdStep, string> balance) { foreach (var item in balance) { FabStdStep step = item.Key; FabStdStep toStep = BopHelper.FindStdStep(step.ShopID, item.Value); if (toStep == null) { toStep = step.Layer.LastStep; } if (toStep == null) { continue; } step.BalanceToStep = toStep; var curr = step; while (curr != null) { step.BalanceSteps.Add(curr); if (curr == toStep) { break; } curr = curr.NexStep; } } }
private FabStdStep CheckStdStep(string factoryID, string shopID, string stepID, string where, ref bool hasError) { FabStdStep step = BopHelper.FindStdStep(shopID, stepID); if (step == null) { hasError = true; ErrHist.WriteIf(where + stepID, ErrCategory.PERSIST, ErrLevel.WARNING, factoryID, shopID, Constants.NULL_ID, Constants.NULL_ID, Constants.NULL_ID, Constants.NULL_ID, Constants.NULL_ID, stepID, "NOT FOUND STD_STEP", string.Format("Table:{0}", where) ); } return(step); }
private void SetMixRun() { ConfigGroup mixRuns = SiteConfigHelper.GetChamberMixRun(); ConfigGroup lossInfos = SiteConfigHelper.GetChamberMixRunLoss(); if (mixRuns == null) { return; } foreach (var item in mixRuns.Item.Values) { string[] steps = item.CodeValue.Split(','); if (steps.Length < 2) { continue; } List <FabStdStep> list = new List <FabStdStep>(); foreach (var stdStepID in steps) { FabStdStep step = BopHelper.FindStdStep(Constants.ArrayShop, stdStepID); if (step != null) { list.Add(step); } } if (list.Count < 2) { continue; } float lossValue = 1f; if (lossInfos != null) { ConfigInfo loss; lossInfos.Item.TryGetValue(item.CodeName, out loss); if (loss != null) { if (float.TryParse(loss.CodeValue, out lossValue) == false) { lossValue = 1f; } } } foreach (var step in list) { foreach (var otherStep in list) { if (step == otherStep) { continue; } if (step.MixRunPairSteps == null) { step.MixRunPairSteps = new List <FabStdStep>(); } step.MixRunPairSteps.Add(otherStep); } step.IsMixRunStep = true; step.MixCriteria = lossValue; } } }