예제 #1
0
        /// <summary>
        /// </summary>
        /// <param name="lot"/>
        /// <param name="st"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public bool FILTER_STEP_TARGET0(Mozart.SeePlan.Simulation.ILot lot, Mozart.SeePlan.DataModel.StepTarget st, ref bool handled, bool prevReturnValue)
        {
            FabLot flot = lot as FabLot;

            if (flot.OwnerType == Constants.OwnerE)
            {
                //E Type Demand 생성시 비교필요 2019.6.27기준으로 Demand는 P Type만 존재, 패깅 E Type은 패깅하지 않음.
                return(true);
            }

            return(false);
        }
예제 #2
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);
        }
예제 #3
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);
        }
예제 #4
0
        /// <summary>
        /// </summary>
        /// <param name="eqp"/>
        /// <param name="info"/>
        /// <param name="lot"/>
        /// <param name="wp"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public string ADD_DISPATCH_WIP_LOG0(Mozart.SeePlan.DataModel.Resource eqp, Mozart.SeePlan.Simulation.EntityDispatchInfo info, Mozart.SeePlan.Simulation.ILot lot, Mozart.SeePlan.DataModel.WeightPreset wp, ref bool handled, string prevReturnValue)
        {
            string log = string.Empty;

            var flot      = lot as FabLot;
            var targetEqp = eqp as FabEqp;

            log = DispatchLogHelper.GetDispatchWipLog(targetEqp, info, flot, wp);


            return(log);
        }
예제 #5
0
        /// <summary>
        /// </summary>
        /// <param name="lot"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public IEnumerable <Tuple <Mozart.SeePlan.DataModel.Step, object> > GET_STEP_PLAN_KEYS0(Mozart.SeePlan.Simulation.ILot lot, ref bool handled, IEnumerable <Tuple <Mozart.SeePlan.DataModel.Step, object> > prevReturnValue)
        {
            var slot = lot as FabLot;

            FabProduct prod      = slot.FabProduct;
            string     productID = prod.IsTestProduct ? prod.MainProductID : prod.ProductID;

            var keys    = new List <Tuple <Step, object> >();
            var current = Tuple.Create <Step, object>(slot.CurrentStep, productID);

            keys.Add(current);

            return(keys);
        }