コード例 #1
0
        internal static bool IsMatched(this FabPlanInfo info, string shopID, string stepID,
                                       string productID, string productVersion, string ownerType, string ownerID, bool checkProductVersion)
        {
            if (info == null)
            {
                return(false);
            }

            if (info.ShopID != shopID)
            {
                return(false);
            }

            if (info.StepID != stepID)
            {
                return(false);
            }

            if (info.ProductID != productID)
            {
                return(false);
            }

            if (checkProductVersion)
            {
                var stdStep = info.FabStep.StdStep;
                if (EqpArrangeMaster.IsFixedProductVer(stdStep, productVersion))
                {
                    if (info.ProductVersion != productVersion)
                    {
                        return(false);
                    }
                }
            }

            if (info.OwnerType != ownerType)
            {
                return(false);
            }

            //TODO : OwnerID 추가 필요
            //if (info.OwnerID != ownerID)
            //    return false;

            return(true);
        }
コード例 #2
0
ファイル: InFlowMaster.cs プロジェクト: yichunbong/CSOT
        public static int GetContinuousQty(FabLot lot, FabStep baseStep, bool includeFromStep = false)
        {
            if (baseStep == null)
            {
                return(0);
            }

            var jobState = GetJobState(lot);

            if (jobState == null)
            {
                return(0);
            }

            string productID      = lot.CurrentProductID;
            string productVersion = lot.CurrentProductVersion;

            bool isFixedProductVer = EqpArrangeMaster.IsFixedProductVer(baseStep.StdStep, productVersion);

            if (isFixedProductVer == false)
            {
                productVersion = Constants.NULL_ID;
            }

            int continuousQty = 0;

            if (includeFromStep)
            {
                //run
                int runWipQty = jobState.GetStepWips(baseStep, WipType.Run, productVersion);
                if (runWipQty <= 0)
                {
                    return(continuousQty);
                }

                continuousQty += runWipQty;

                //wait
                int waitWipQty = jobState.GetStepWips(baseStep, WipType.Wait, productVersion);
                if (waitWipQty <= 0)
                {
                    return(continuousQty);
                }

                continuousQty += waitWipQty;
            }

            var pevStepList = baseStep.GetPrevSteps(productID);

            if (pevStepList != null && pevStepList.Count > 0)
            {
                //run
                int runWipQty = 0;
                foreach (var prevStep in pevStepList)
                {
                    runWipQty += jobState.GetStepWips(prevStep, WipType.Run, productVersion);
                }

                if (runWipQty <= 0)
                {
                    return(continuousQty);
                }

                continuousQty += runWipQty;

                //wait
                int waitWipQty = 0;
                foreach (var prevStep in pevStepList)
                {
                    waitWipQty += jobState.GetStepWips(prevStep, WipType.Wait, productVersion);
                }

                if (waitWipQty <= 0)
                {
                    return(continuousQty);
                }

                continuousQty += waitWipQty;
            }

            return(continuousQty);
        }