예제 #1
0
파일: Route.cs 프로젝트: yichunbong/CSOT
        /// <summary>
        /// </summary>
        /// <param name="lot"/>
        /// <param name="task"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public LoadInfo CREATE_LOAD_INFO0(Mozart.SeePlan.Simulation.ILot lot, Mozart.SeePlan.DataModel.Step task, ref bool handled, Mozart.SeePlan.DataModel.LoadInfo prevReturnValue)
        {
            FabLot  flot = lot as FabLot;
            FabStep step = task as FabStep;

            FabPlanInfo info = new FabPlanInfo(step);

            info.ShopID  = step.ShopID;
            info.LotID   = flot.LotID;
            info.Product = flot.FabProduct;
            info.UnitQty = flot.UnitQty;

            info.ProductID = info.Product.ProductID;
            info.ProcessID = info.Product.ProcessID;

            info.OwnerType = flot.OwnerType;
            info.OwnerID   = flot.OwnerID;

            //Change ProductVersion
            flot.CurrentProductVersion = step.IsArrayShop ? flot.OrigProductVersion : "00001";

            info.ProductVersion = flot.CurrentProductVersion;

            if (flot.CurrentProcessID != info.ProcessID)
            {
                flot.Route = step.Process;
            }

            info.WipInfo = flot.Wip;
            info.Lot     = flot;

            info.LotFilterInfo             = new LotFilterInfo();
            info.LotFilterInfo.FilterType  = DispatchFilter.None;
            info.LotFilterInfo.Reason      = Constants.NULL_ID;
            info.LotFilterInfo.RecipeTimes = new Dictionary <string, EqpRecipeInfo>();

            if (flot.PlanSteps == null)
            {
                flot.PlanSteps = new List <string>();
            }

            flot.PlanSteps.Add(step.StepKey);

            return(info);
        }
예제 #2
0
        /// <summary>
        /// </summary>
        /// <param name="pegTarget"/>
        /// <param name="stepPlanKey"/>
        /// <param name="step"/>
        /// <param name="isRun"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public Mozart.SeePlan.DataModel.StepTarget CREATE_STEP_TARGET0(Mozart.SeePlan.Pegging.PegTarget pegTarget, object stepPlanKey, Mozart.SeePlan.DataModel.Step step, bool isRun, ref bool handled, Mozart.SeePlan.DataModel.StepTarget prevReturnValue)
        {
            var pt = pegTarget as FabPegTarget;
            var st = new FabStepTarget(stepPlanKey, step, pt.Qty, pt.DueDate, isRun);

            st.Mo = pegTarget.MoPlan as FabMoPlan;

            return(st);
        }
예제 #3
0
파일: Route.cs 프로젝트: yichunbong/CSOT
        /// <summary>
        /// </summary>
        /// <param name="lot"/>
        /// <param name="loadInfo"/>
        /// <param name="step"/>
        /// <param name="now"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public Step GET_NEXT_STEP1(Mozart.SeePlan.Simulation.ILot lot, Mozart.SeePlan.DataModel.LoadInfo loadInfo, Mozart.SeePlan.DataModel.Step step, DateTime now, ref bool handled, Mozart.SeePlan.DataModel.Step prevReturnValue)
        {
            FabLot      flot  = lot as FabLot;
            var         fstep = step as FabStep;
            FabPlanInfo plan  = loadInfo as FabPlanInfo;

            FabProduct prod = flot.FabProduct;

            FabProduct nextProd = prod;
            var        nextStep = GetNextStep(fstep, prod, plan, ref nextProd);

            flot.Product = nextProd;

            return(nextStep);
        }