using Aitex.Common.Util; using Aitex.Core.RT.RecipeCenter; using Aitex.Core.Util; using CyberX8_Core; using MECF.Framework.Common.Equipment; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MECF.Framework.Common.RecipeCenter { public class SequenceRecipeManager : Singleton { #region 常量 private const string PRODUCTION = "Production"; #endregion /// /// 获取Recipe类型 /// /// /// public RecipeType GetRecipeType(string item) { string str = item.ToLower(); if (str.EndsWith("srd.rcp")) { return RecipeType.SRD; } else if(str.EndsWith("hvd.rcp")) { return RecipeType.HVD; } else if(str.EndsWith("pwt.rcp")) { return RecipeType.PWT; } else if(str.EndsWith("qdr.rcp")) { return RecipeType.QDR; } else if(str.EndsWith("dep.rcp")) { return RecipeType.DEP; } else { return RecipeType.RES; } } /// /// 获取模块类型 /// /// /// public ModuleType GetModuleType(string item) { string str = item.ToLower(); if (str.EndsWith("srd.rcp")) { return ModuleType.SRD; } else if (str.EndsWith("hvd.rcp")) { return ModuleType.Dryer; } else if (str.EndsWith("pwt.rcp")) { return ModuleType.Prewet; } else if (str.EndsWith("qdr.rcp")) { return ModuleType.Rinse; } else if (str.EndsWith("dep.rcp")) { return ModuleType.Metal; } else { return ModuleType.None; } } /// /// 加载Recipe对象 /// /// /// /// public object LoadSequenceTypeRecipe(string sequenceType,string recipeName,RecipeType recipeType) { string strDirectory = sequenceType == PRODUCTION ? PathManager.GetProductionRecipeDir() : PathManager.GetEngineeringRecipeDir(); string strProduction = strDirectory + "\\" + recipeName; switch (recipeType) { case RecipeType.HVD: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); case RecipeType.RES: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); case RecipeType.SRD: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); case RecipeType.PWT: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); case RecipeType.QDR: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); case RecipeType.DEP: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); case RecipeType.RDS: return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); default: return null; } } /// /// 是否包含SRD /// /// /// public bool IsContainedSrd(SequenceRecipe recipe) { return recipe.Recipes.FindIndex(O => O.ToLower().Contains("srd.rcp")) >=0; } /// /// 是否包含PWT /// /// /// public bool IsContainedPwt(SequenceRecipe recipe) { return recipe.Recipes.FindIndex(O => O.ToLower().Contains("pwt.rcp")) >= 0; } /// /// 获取SRD recipe /// /// /// public SrdRecipe GetSrdRecipeBySequenceRecipe(SequenceRecipe recipe) { int index = recipe.Recipes.FindIndex(O => O.ToLower().Contains("srd.rcp")); if(index>=0) { string srd=recipe.Recipes[index]; string strProduction = (recipe.SequenceType == PRODUCTION ? PathManager.GetProductionRecipeDir() : PathManager.GetEngineeringRecipeDir()) + "\\" + srd; return RecipeFileManager.Instance.LoadGenericityRecipe(strProduction); } else { return null; } } } }