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.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; namespace MECF.Framework.Common.DataCenter { [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)] public class QueryDataService : IQueryDataService { public Dictionary PollData(IEnumerable keys) { try { return DATA.PollData(keys); } catch (Exception ex) { LOG.Write(ex); } return null; } public string GetConfigFileContent() { return SC.GetConfigFileContent(); } public string GetConfigFileContentByModule(string module) { return SC.GetConfigFileContent(module); } public List GetConfigItemList() { return SC.GetItemList(); } 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) { List diList = IO.GetDiList(key); List result = new List(); diList.ForEach(delegate(DIAccessor 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) { List doList = IO.GetDoList(key); List result = new List(); doList.ForEach(delegate(DOAccessor 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) { List aiList = IO.GetAiList(key); List result = new List(); aiList.ForEach(delegate(AIAccessor x) { result.Add(new NotifiableIoItem { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, ShortValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index }); }); return result; } public List GetAoList(string key) { List aoList = IO.GetAoList(key); List result = new List(); aoList.ForEach(delegate(AOAccessor x) { result.Add(new NotifiableIoItem { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, ShortValue = 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 list = 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 bool ExcuteTransAction(List sql) { return DataQuery.ExcuteTransAction(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 Singleton.Instance.GetTypedConfigContent(type, contentPath); } public void SetTypedConfigContent(string type, string contentPath, string content) { Singleton.Instance.SetTypedConfigContent(type, contentPath, content); } } }