Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
                }
            }
        }