Exemple #1
0
        private static bool IsFilterRunMode(this JobFilterInfo info, FabAoEquipment eqp, List <JobFilterInfo> jobList)
        {
            WeightFactor wf = WeightHelper.GetWeightFactor(eqp.Target.Preset, Constants.WF_RUN_MODE_FILTER);

            if (wf == null || wf.Factor == 0)
            {
                return(false);
            }

            //연속진행인 경우
            if (info.IsRunning)
            {
                return(false);
            }

            string eqpGroup = eqp.TargetEqp.EqpGroup;
            string runMode  = eqp.GetCurrentRunMode();

            var branchStep = BranchStepMaster.GetBranchStep(eqpGroup, runMode);

            if (branchStep == null)
            {
                return(false);
            }

            if (branchStep.IsAllProduct)
            {
                return(false);
            }

            var productList = branchStep.ProductList;

            if (productList == null || productList.Count == 0)
            {
                return(false);
            }

            string productID = info.ProductID;
            string ownerType = info.OwnerType;

            bool isFilter = true;

            if (branchStep.IsLoadable(productID, ownerType))
            {
                isFilter = false;
            }

            if (isFilter)
            {
                string defaultOwnerType = SiteConfigHelper.GetDefaultOwnerType();
                if (ExistRemainWip(jobList, productList, defaultOwnerType) == false)
                {
                    isFilter = false;
                }
            }

            return(isFilter);
        }
Exemple #2
0
        internal static void ChangeCurrentRunMode(this FabSubEqp subEqp, FabLot lot)
        {
            if (subEqp == null)
            {
                return;
            }

            if (lot == null)
            {
                return;
            }

            var step = lot.CurrentFabStep;

            if (step == null || step.StdStep == null)
            {
                return;
            }

            var    targetEqp = subEqp.Parent as FabEqp;
            string eqpGroup  = targetEqp.EqpGroup;
            string runMode   = subEqp.SubEqpGroup.CurrentRunMode;
            string productID = lot.CurrentProductID;
            string ownerType = lot.OwnerType;

            var branchStep = BranchStepMaster.GetBranchStep(eqpGroup, runMode);

            if (branchStep != null)
            {
                //현재 runMode에서 Loadable 한 경우 RunMode 유지
                if (branchStep.IsLoadable(productID, ownerType))
                {
                    return;
                }
            }

            //change runMode (DefaultRunMode)
            subEqp.SubEqpGroup.CurrentRunMode = step.StdStep.DefaultRunMode;
        }