Ejemplo n.º 1
0
        private static void StepChange_Curr(this StayHour info, FabStep currStep, DateTime now)
        {
            if (currStep != null)
            {
                //FromStepOutTime 미설정된 상태로 중간 Step에 진입한 경우(예외처리)
                if (info.FromStep.IsMainStep && info.FromStepOutTime == DateTime.MinValue)
                {
                    if (info.IsMatchedStep(currStep))
                    {
                        DateTime planStartTime = ModelContext.Current.StartTime;
                        info.FromStepOutTime = planStartTime;

                        #region WriteErrorHistory.
                        string key = string.Format("Qtime{0}/{1}", info.Lot.LotID, currStep.StepKey);
                        ErrHist.WriteIf(key,
                                        ErrCategory.SIMULATION,
                                        ErrLevel.INFO,
                                        currStep.FactoryID,
                                        currStep.ShopID,
                                        info.Lot.LineID,
                                        info.Product.ProductID,
                                        info.Lot.CurrentProductVersion,
                                        info.Lot.CurrentProcessID,
                                        Constants.NULL_ID,
                                        currStep.StepID,
                                        "NOT FOUND FROM_STEP_OUT_TIME",
                                        "Qtime:StepChange_Current");
                        #endregion
                    }
                }

                info.CurrStepInTime = now;
            }
        }
Ejemplo n.º 2
0
        private static bool IsMatched(this StayHour info, FabStep step, QTimeType qtype)
        {
            if (step == null)
            {
                return(false);
            }

            if (info.QType != qtype)
            {
                return(false);
            }


            return(info.IsMatchedStep(step));
        }