| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | 
							- using Aitex.Core.Common;
 
- using Aitex.Core.RT.Log;
 
- using Aitex.Core.RT.SCCore;
 
- using MECF.Framework.Common.DBCore;
 
- using MECF.Framework.Common.Equipment;
 
- using MECF.Framework.Common.SubstrateTrackings;
 
- using SciChart.Core.Utility.Mouse;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.ServiceModel;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- namespace MECF.Framework.Common.WaferHolder
 
- {
 
-     [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
 
-     public class WaferHolderDataService : IWaferHolderDataService
 
-     {
 
-         /// <summary>
 
-         /// 获取所有集合
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         public List<WaferHolderInfo> GetAllWaferHolderDatas()
 
-         {
 
-             return WaferHolderDataRecorder.GetAllWaferHolderDatas();
 
-         }
 
-         /// <summary>
 
-         /// 根据Location获取WaferHolder信息
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         public WaferHolderInfo GetWaferHolderDataByLocation(string location)
 
-         {
 
-             return WaferHolderDataRecorder.GetWaferHolderDataByLocation(location);
 
-         }
 
-         /// <summary>
 
-         /// 启用禁用
 
-         /// </summary>
 
-         /// <param name="waferHolderId"></param>
 
-         /// <param name="enable"></param>
 
-         /// <returns></returns>
 
-         public int UpdateWaferHolderEnable(string waferHolderId, bool enable)
 
-         {
 
-             WaferHolderInfo waferHolderInfo = WaferHolderManager.Instance.GetWaferHolderInfoById(waferHolderId);
 
-             if (waferHolderInfo != null)
 
-             {
 
-                 waferHolderInfo.Enabled = enable;
 
-             }
 
-             return WaferHolderDataRecorder.UpdateWaferHolderEnable(waferHolderId, enable);
 
-         }
 
-         /// <summary>
 
-         /// 新增
 
-         /// </summary>
 
-         /// <param name="bufferId"></param>
 
-         /// <param name="waferHolderInfo"></param>
 
-         /// <returns></returns>
 
-         public int AddWaferHolderData(int bufferId, WaferHolderInfo waferHolderInfo)
 
-         {
 
-             int result= WaferHolderDataRecorder.AddWaferHolderData(bufferId, waferHolderInfo);
 
-            
 
-             if(result>0)
 
-             {
 
-                 CreateWaferHolderWafer(waferHolderInfo,waferHolderInfo.CurrentLocation);
 
-                 WaferHolderManager.Instance.SubscribeLocation(waferHolderInfo.CurrentLocation, waferHolderInfo);
 
-                 WaferHolderManager.Instance.CreateWaferHolder(waferHolderInfo);
 
-                 LOG.WriteLog(eEvent.INFO_WINRESOURCE, "System", $"Create Wafer Shuttle {waferHolderInfo.Id}");
 
-             }
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 更新
 
-         /// </summary>
 
-         /// <param name="waferHolderId"></param>
 
-         /// <param name="info"></param>
 
-         /// <returns></returns>
 
-         public int UpdateWaferHolderData(string waferHolderId, WaferHolderInfo info,bool sync)
 
-         {
 
-             WaferHolderInfo waferHolderInfo = WaferHolderManager.Instance.GetWaferHolderInfoById(waferHolderId);
 
-             if (!string.IsNullOrEmpty(waferHolderId) && waferHolderId != info.Id)
 
-             {
 
-                 WaferHolderManager.Instance.SwitchWaferHolderId(waferHolderInfo, waferHolderInfo.CurrentLocation, info.Id);
 
-             }
 
-                                  
 
-             if(waferHolderInfo!=null)
 
-             {
 
-                 if(string.IsNullOrEmpty(info.CurrentLocation))
 
-                 {
 
-                     WaferHolderManager.Instance.Remove(waferHolderInfo.CurrentLocation);
 
-                     if (!string.IsNullOrEmpty(waferHolderInfo.WaferAId))
 
-                     {
 
-                         WaferManager.Instance.DeleteWaferById(waferHolderInfo.WaferAId);
 
-                     }
 
-                     if (!string.IsNullOrEmpty(waferHolderInfo.WaferBId))
 
-                     {
 
-                         WaferManager.Instance.DeleteWaferById(waferHolderInfo.WaferBId);
 
-                     }
 
-                     waferHolderInfo.CurrentLocation = "";
 
-                     waferHolderInfo.CloneBaseInfo(info);
 
-                     WaferHolderHistoryRecord.InsertWaferHolderRemoveHistory(waferHolderInfo.Id);
 
-                 }
 
-                 else if(string.IsNullOrEmpty(waferHolderInfo.CurrentLocation)&&!string.IsNullOrEmpty(info.CurrentLocation))
 
-                 {
 
-                     CreateWaferHolderWafer(waferHolderInfo,info.CurrentLocation);
 
-                     waferHolderInfo.CloneBaseInfo(info);
 
-                     WaferHolderManager.Instance.SubscribeLocation(info.CurrentLocation, waferHolderInfo);
 
-                 }
 
-                 else
 
-                 {
 
-                     waferHolderInfo.CloneBaseInfo(info);
 
-                 }
 
-             }
 
-             
 
-             if (sync)
 
-             {
 
-                 int result= WaferHolderDataRecorder.SyncUpdateWaferHolderData(waferHolderId, waferHolderInfo);
 
-                 if (result>0)
 
-                 {
 
-                     LOG.WriteLog(eEvent.INFO_WINRESOURCE, "System", $"Update Wafer Shuttle {waferHolderInfo}");
 
-                     MaterialTrackerManager.Instance.UpdateModuleMaterial(waferHolderInfo.CurrentLocation);
 
-                 }
 
-                 return result;
 
-             }
 
-             else
 
-             {
 
-                 WaferHolderDataRecorder.UpdateWaferHolderData(waferHolderId, waferHolderInfo);
 
-                 MaterialTrackerManager.Instance.UpdateModuleMaterial(waferHolderInfo.CurrentLocation);
 
-                 return 1;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 创建WaferHolder中Wafer
 
-         /// </summary>
 
-         /// <param name="waferHolderInfo"></param>
 
-         private void CreateWaferHolderWafer(WaferHolderInfo waferHolderInfo,string currentLocation)
 
-         {
 
-             ModuleName moduleName = (ModuleName)Enum.Parse(typeof(ModuleName), currentLocation);
 
-             if (!string.IsNullOrEmpty(waferHolderInfo.WaferAId))
 
-             {
 
-                 WaferManager.Instance.CreateWafer(moduleName, 0, WaferStatus.Normal, (WaferSize)waferHolderInfo.WaferSize, WaferType.Assit);
 
-                 WaferInfo waferInfo = WaferManager.Instance.GetWafer(moduleName, 0);
 
-                 waferInfo.WaferOrigin = waferHolderInfo.WaferAId;
 
-                 waferInfo.WaferID = waferHolderInfo.WaferAId;
 
-                 waferInfo.WaferType = (WaferType)waferHolderInfo.WaferAType;
 
-                 waferInfo.OriginStation = (int)moduleName;
 
-                 waferInfo.OrginalWaferHolder = waferHolderInfo.Id;
 
-             }
 
-             if (!string.IsNullOrEmpty(waferHolderInfo.WaferBId))
 
-             {
 
-                 WaferManager.Instance.CreateWafer(moduleName, 1, WaferStatus.Normal, (WaferSize)waferHolderInfo.WaferSize, WaferType.Assit);
 
-                 WaferInfo waferInfo = WaferManager.Instance.GetWafer(moduleName, 1);
 
-                 waferInfo.WaferOrigin = waferHolderInfo.WaferBId;
 
-                 waferInfo.WaferID = waferHolderInfo.WaferBId;
 
-                 waferInfo.WaferType = (WaferType)waferHolderInfo.WaferBType;
 
-                 waferInfo.OriginStation = (int)moduleName;
 
-                 waferInfo.OrginalWaferHolder=waferHolderInfo.Id;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 删除
 
-         /// </summary>
 
-         /// <param name="waferHolderId"></param>
 
-         /// <returns></returns>
 
-         public int DeleteWaferHolderData(string waferHolderId)
 
-         {
 
-             WaferHolderInfo waferHolderInfo = WaferHolderManager.Instance.GetWaferHolderInfoById(waferHolderId);
 
-             int result= WaferHolderDataRecorder.DeleteWaferHolderData(waferHolderId);
 
-             if(result>0)
 
-             {
 
-                 if (!string.IsNullOrEmpty(waferHolderInfo.CurrentLocation))
 
-                 {
 
-                     WaferHolderManager.Instance.Remove(waferHolderInfo.CurrentLocation);
 
-                 }
 
-                 if(!string.IsNullOrEmpty(waferHolderId))               
 
-                 {
 
-                     WaferHolderManager.Instance.RemoveByWaferHolderId(waferHolderId);
 
-                 }
 
-                 
 
-                 if (waferHolderInfo != null)
 
-                 {
 
-                     if (!string.IsNullOrEmpty(waferHolderInfo.WaferAId))
 
-                     {
 
-                         WaferManager.Instance.DeleteWaferById(waferHolderInfo.WaferAId);
 
-                     }
 
-                     if (!string.IsNullOrEmpty(waferHolderInfo.WaferBId))
 
-                     {
 
-                         WaferManager.Instance.DeleteWaferById(waferHolderInfo.WaferBId);
 
-                     }
 
-                 }
 
-             }
 
-             return result;
 
-         }
 
-     }
 
- }
 
 
  |