示例#1
0
        public static string GetDefaultPhotoStep(string shopID)
        {
            try
            {
                string groupCode = Constants.CONF_ENG_DEFAULT_VALUE;
                string codeName  = string.Format("DEFAULT_PHOTO_STEP_{0}", shopID);

                string codeValue;
                if (ConfigHelper.TryGetValue(groupCode, codeName, out codeValue))
                {
                    return(codeValue);
                }
            }
            catch { }

            const string ARRAY_PHOTO_STEP = "1300;3300;4300;5300";
            const string CF_PHOTO_STEP    = "R300;G300;B300;S300";

            if (LcdHelper.Equals(shopID, Constants.ArrayShop))
            {
                return(ARRAY_PHOTO_STEP);
            }

            if (LcdHelper.Equals(shopID, Constants.CfShop))
            {
                return(CF_PHOTO_STEP);
            }

            return(string.Empty);
        }
示例#2
0
        private static float GetAdditionalSetupTime(string eqpGroupID, string stepID, string productID, float idleTime)
        {
            float addSetupTime = 0f;

            var finds = InputMart.Instance.SetupTimeIdlebyStep.FindRows(eqpGroupID, stepID).ToList();

            if (finds == null || finds.Count() == 0)
            {
                return(addSetupTime);
            }

            //product matched
            var matchList = finds.FindAll(t => t.PRODUCT_ID == productID);

            //all
            if (matchList == null || matchList.Count == 0)
            {
                matchList = finds.FindAll(t => LcdHelper.Equals(t.PRODUCT_ID, "ALL"));
            }

            var list = matchList.FindAll(t => t.IDLE_TIME <= idleTime);

            if (list != null && list.Count > 0)
            {
                //range matched
                list.Sort(new CompareHelper.SetupTimeIdleComparer());
                addSetupTime = list[0].SETUP_TIME;
            }

            return(addSetupTime);
        }
示例#3
0
        public static bool AvailableChangeProductVer(FabStdStep stdStep, string productVer)
        {
            string shopID = stdStep.ShopID;
            string stepID = stdStep.StepID;

            //1300 이전 공정 이면서 Ver에 X가 없는 Version은 변경 투입 가능함.
            if (BopHelper.IsArrayShop(shopID))
            {
                if (IsProductVer_X(productVer) == false)
                {
                    if (LcdHelper.Equals(Constants.GATE_PHOTO_STEP, stepID))
                    {
                        return(true);
                    }

                    //1300 이전 공정은 ProductVersion 변경가능 함.
                    var fromStep = BopHelper.FindStdStep(Constants.ArrayShop, Constants.GATE_PHOTO_STEP);
                    if (fromStep != null)
                    {
                        if (stdStep.StepSeq <= fromStep.StepSeq)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
示例#4
0
        public static void SetUsedArrange(this CurrentArrange item, string productVersion)
        {
            item.UsedMaskProductVersion = productVersion;

            var list = item.LoadableList;

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

            if (list.Count > 1)
            {
                list.Sort(new EqpArrangeInfoComparer2(productVersion));
            }

            item.UsedEqpArrange = list[0];

            if (string.IsNullOrEmpty(item.UsedMaskProductVersion))
            {
                //Mask 미사용 옵션, Arrange의 ProductVersion으로 대체(??)
                if (LcdHelper.Equals(item.UsedEqpArrange.ProductVer, "ALL") == false)
                {
                    item.UsedMaskProductVersion = item.UsedEqpArrange.ProductVer;
                }
            }
        }
示例#5
0
        private static void AddItem(this EqpArrangeSet setInfo, EqpArrangeInfo item)
        {
            if (item == null)
            {
                return;
            }

            //All Items
            LcdHelper.AddSort(setInfo.Items, item, EqpArrangeInfoComparer.Default);

            //Group Items
            //SubEqp는 defaultArrange 미지정, 모두 Default로 처리(2019.09.07)
            bool isDefault = setInfo.IsSubEqp ? true : LcdHelper.Equals(item.LimitType, setInfo.DefaultArrange);

            var    groups   = isDefault ? setInfo.DefaultGroups : setInfo.EtcGroups;
            string groupKey = item.GetGroupKey();

            List <EqpArrangeInfo> list;

            if (groups.TryGetValue(groupKey, out list) == false)
            {
                groups.Add(groupKey, list = new List <EqpArrangeInfo>());
            }

            LcdHelper.AddSort(list, item, EqpArrangeInfoComparer.Default);
        }
示例#6
0
        public static bool IsOtherID(this string p)
        {
            if (LcdHelper.Equals(p, Constants.OTHER))
            {
                return(true);
            }

            return(false);
        }
示例#7
0
        public static bool IsSameID(this string p)
        {
            if (LcdHelper.Equals(p, Constants.SAME))
            {
                return(true);
            }

            return(false);
        }
示例#8
0
        public static bool IsAllID(this string p)
        {
            if (LcdHelper.Equals(p, Constants.ALL))
            {
                return(true);
            }

            return(false);
        }
示例#9
0
        private static bool IsMatched(string arrangeStr, string targetStr)
        {
            if (LcdHelper.Equals(arrangeStr, "ALL") || LcdHelper.Equals(targetStr, "ALL"))
            {
                return(true);
            }

            return(arrangeStr == targetStr);
        }
示例#10
0
        internal static bool IsUnpackTargetStep(string shopID, string stepID)
        {
            if (LcdHelper.Equals(shopID, "ARRAY") && stepID == "1200")
            {
                return(true);
            }

            if (LcdHelper.Equals(shopID, "CF") && stepID == "1300")
            {
                return(true);
            }

            return(false);
        }
示例#11
0
        public static string GetDefaultDcnStep(string shopID)
        {
            try
            {
                string groupCode = Constants.CONF_ENG_DEFAULT_VALUE;
                string codeName  = string.Format("DEFAULT_DCN_STEP_{0}", shopID);

                string codeValue;
                if (ConfigHelper.TryGetValue(groupCode, codeName, out codeValue))
                {
                    return(codeValue);
                }
            }
            catch { }

            const string ARRAY_STEP = "A000";
            const string CF_STEP    = "C000";
            const string CELL_STEP  = "0000";

            if (LcdHelper.Equals(shopID, Constants.ArrayShop))
            {
                return(ARRAY_STEP);
            }

            if (LcdHelper.Equals(shopID, Constants.CfShop))
            {
                return(CF_STEP);
            }

            if (LcdHelper.Equals(shopID, Constants.CellShop))
            {
                return(CELL_STEP);
            }

            return(string.Empty);
        }
示例#12
0
        //private static bool CheckLastPlan(FabAoEquipment eqp, string shopID, string stepID, string productID, string prodVer, string ownerType, string ownerID)
        //{
        //	if (AcidMaster.IsNeedChangeAcid(eqp, stepID, productID))
        //		return false;

        //	if (eqp.IsParallelChamber)
        //	{
        //		//Equipment → ProcessControl → GetNeedSetupChamber
        //		List<FabSubEqp> needSetupChambers = ChamberMaster.GetNeedSetupChamberList(eqp.SubEqps.ToList(), shopID, stepID, productID, prodVer, ownerType, ownerID);
        //		if (needSetupChambers.Count == 0)
        //			return true;
        //	}

        //	if (eqp.IsLastPlan(shopID, stepID, productID, prodVer, ownerType, ownerID))
        //		return true;

        //	return false;
        //}

        private static bool IsMatch(this SetupTime item, SetupInfo info)
        {
            //if(info.EqpID == "THPHL100" && info.ToProductID == "TH645A3AB100")
            //	Console.WriteLine("B");

            if (item.IsMatch_Base(info) == false)
            {
                return(false);
            }

            if (item.IsEqpAll == false)
            {
                if (LcdHelper.Equals(item.EqpID, info.EqpID) == false)
                {
                    return(false);
                }
            }

            if (item.HasChangeType(ChangeType.P))
            {
                if (IsMatch(item.FromProductID, item.ToProductID, info.FromProductID, info.ToProductID) == false)
                {
                    return(false);
                }
            }

            if (item.HasChangeType(ChangeType.O))
            {
                if (IsMatch(item.FromStepID, item.ToStepID, info.FromStepID, info.ToStepID) == false)
                {
                    return(false);
                }
            }

            if (item.HasChangeType(ChangeType.B))
            {
                if (IsMatch(item.FromProductVersion, item.ToProductVersion, info.FromProductVersion, info.ToProductVersion) == false)
                {
                    return(false);
                }
            }

            if (item.HasChangeType(ChangeType.PRODUCT_VERSION))
            {
                if (IsMatch(item.FromEtc, item.ToEtc, info.FromProductVersion, info.ToProductVersion) == false)
                {
                    return(false);
                }
            }

            if (item.HasChangeType(ChangeType.OWNER_TYPE))
            {
                if (IsMatch(item.FromEtc, item.ToEtc, info.FromOwnerType, info.ToOwnerType) == false)
                {
                    return(false);
                }
            }

            if (item.HasChangeType(ChangeType.OWNER_ID))
            {
                if (IsMatch(item.FromEtc, item.ToEtc, info.FromOwnerID, info.ToOwnerID) == false)
                {
                    return(false);
                }
            }

            return(true);
        }
示例#13
0
 private static bool IsSupportAll(string str)
 {
     return(LcdHelper.Equals(str, "ALL"));
 }