using System; using System.Collections.Generic; using System.Data; using System.ServiceModel; using Aitex.Core.RT.ConfigCenter; using Aitex.Core.RT.DataCenter; using Aitex.Core.RT.Event; using Aitex.Core.RT.IOCore; using Aitex.Core.RT.Log; using Aitex.Core.RT.SCCore; using Aitex.Core.RT.RecipeCenter; using Aitex.Core.UI.ControlDataContext; using Aitex.Core.Util; using Aitex.Sorter.Common; using Aitex.Sorter.RT.Module.DBRecorder; using MECF.Framework.Common.DBCore; using MECF.Framework.Common.IOCore; using MECF.Framework.Common.SCCore; using MECF.Framework.Common.CommonData; using Aitex.Core.Common; namespace MECF.Framework.Common.DataCenter { [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] public class QueryDataService : IQueryDataService { public Dictionary PollData(IEnumerable keys) { try { var result = DATA.PollData(keys); return result; } catch (Exception ex) { LOG.Write(ex); } return null; } public string GetConfigFileContent() { return SC.GetConfigFileContent(); } public string GetFileContent(string fileName) { return ConfigManager.Instance.GetRootFileContent(fileName); } public string GetConfigFileDispenseByModule(string module) { return ConfigManager.Instance.GetFileContent(module); } public List GetFileListByFolderBrowser(string folderBrowser) { return ConfigManager.Instance.GetFileListByFolderBrowser(folderBrowser); } public string GetConfigFileContentByModule(string module) { return SC.GetConfigFileContent(module); } public List GetConfigItemList() { return SC.GetItemList(); } public List GetConfigWaferTypes() { return SC.GetWaferTypes(); } public object GetConfigByModule(string module, string key) { return CONFIG.Poll(module, key); } public Dictionary PollConfigByModule(string module, IEnumerable keys) { return CONFIG.PollConfig(module, keys); } public Dictionary PollConfig(IEnumerable keys) { return CONFIG.PollConfig(keys); } public object GetData(string key) { return DATA.Poll(key); } public object GetConfig(string key) { return CONFIG.Poll(key); } public List GetDiList(string key) { var ret = IO.GetDiList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, BoolValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List GetDoList(string key) { var ret = IO.GetDoList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, BoolValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List GetAiList(string key) { var ret = IO.GetAiList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, ShortValue = (short)x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List GetAoList(string key) { var ret = IO.GetAoList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, ShortValue = (short)x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List QueryDBEvent(string sql) { return EV.QueryDBEvent(sql); } public List QueryDBCarrier(string sql) { return CarrierDataRecorder.QueryDBCarrier(sql); } public List QueryDBOCRStatistics(string sql) { return OCRDataRecorder.QueryDBOCRStatistics(sql); } public List QueryDBFfuDiffPressureStatistics(string sql) { return FfuDiffPressureDataRecorder.FfuDiffPressureHistory(sql); } public List QueryDBOCRHistory(string sql) { return OCRDataRecorder.QueryDBOCRHistory(sql); } public List QueryStatsDBStatistics(string sql) { List statsStatisticsDatas = new List(); return StatsDataRecorder.QueryStatsStatistics(sql); } public List QueryDBProcess(string sql) { return ProcessDataRecorder.QueryDBProcess(sql); } public List QueryDBWafer(string sql) { return WaferDataRecorder.QueryDBWafer(sql); } public List QueryDBMovement(string sql) { return WaferMoveHistoryRecorder.QueryDBMovement(sql); } public List QueryDBJobMovementByJobGuid(string jobGuid) { return JobMoveHistoryRecorder.QueryJobMovement(jobGuid); } public List QueryDBJobMovementByJobGuidAndStationName(string jobGuid, string stationName) { return JobMoveHistoryRecorder.QueryJobMovement(jobGuid, stationName); } public List GetHistoryData(IEnumerable keys, string recipeRunGuid, string module) { return ProcessDataRecorder.GetHistoryData(keys, recipeRunGuid, module); } public List GetOneDayHistoryData(IEnumerable keys, DateTime begin, string module) { return ProcessDataRecorder.GetOneDayHistoryData(keys, begin, module); } public List GetHistoryDataFromStartToEnd(IEnumerable keys, DateTime begin, DateTime end, string module) { return ProcessDataRecorder.GetHistoryDataFromStartToEnd(keys, begin, end, module); } public DataTable QueryData(string sql) { return DataQuery.Query(sql); } public List GetWaferHistoryWafers(string id) { return WaferDataRecorder.GetWaferHistoryWafers(id); } public WaferHistoryRecipe GetWaferHistoryRecipe(string id) { return RecipeDataRecorder.GetWaferHistoryRecipe(id); } public List GetWaferHistoryRecipes(string id) { return RecipeDataRecorder.GetWaferHistoryRecipes(id); } public List GetWaferHistorySecquences(string id) { return RecipeDataRecorder.GetWaferHistorySecquences(id); } public List GetWaferHistoryMovements(string id) { return WaferMoveHistoryRecorder.GetWaferHistoryMovements(id); } public List QueryWaferHistoryLotsBySql(string sql) { return CarrierDataRecorder.QueryWaferHistoryLotsBySql(sql); } public List GetWaferHistoryLots(DateTime startTime, DateTime endTime, string keyWord) { return CarrierDataRecorder.GetWaferHistoryLots(startTime, endTime, keyWord); } public string GetTypedConfigContent(string type, string contentPath) { return TypedConfigManager.Instance.GetTypedConfigContent(type, contentPath); } public void SetTypedConfigContent(string type, string contentPath, string content) { TypedConfigManager.Instance.SetTypedConfigContent(type, contentPath, content); } public List GetExpertLayoutRecipeContent(string chamberId, string recipeFile) { return RecipeFileManager.Instance.ExpertLayoutRecipeParse(chamberId, recipeFile); } public List GetLayoutRecipeContent(/*string chamberId, */string recipeContent, string slotCount, string cassetteSlotCount) { return RecipeFileManager.Instance.LayoutRecipeParse(/*chamberId, */recipeContent, slotCount, cassetteSlotCount); } public List GetLayoutExpertRecipeContent(/*string chamberId, */string recipeContent, string slotCount, string cassetteSlotCount) { return RecipeFileManager.Instance.LayoutExpertRecipeParse(/*chamberId, */recipeContent, slotCount, cassetteSlotCount); } public string GetInterlockConfigContent() { return Singleton.Instance.GetInterlockConfigContent(); } public string GetInterlockUserDefineConfigContent() { return Singleton.Instance.GetInterlockUserDefineConfigContent(); } public void SetInterlockConfigContent(string content) { Singleton.Instance.SetInterlockConfigContent(content); } public List QueryByRecipePathHistory(string RecipePath, int row = 20) { return RecipeEditHistoryRecorder.QueryByRecipePathHistory(RecipePath, 20); } public bool ClearByRecipePathHistory(string RecipePath) { return RecipeEditHistoryRecorder.ClearByRecipePathHistory(RecipePath); } } }