using Aitex.Core.Common;
using MECF.Framework.Common.CommonData;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.RecipeCenter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.Common.WaferHolder
{
public enum WaferHolderStatus
{
Disabled = 0,
Empty = 1,
Normal = 2,
Processing = 3,
Completed=4,
Failed=5,
MisProcessed=6
}
[DataContract]
public class WaferHolderInfo : NotifiableItem
{
[DataMember]
public string Id { get; set; }
///
/// 创建时所在buffer Id
///
[DataMember]
public Int32 BufferId { get; set; }
///
/// 类型
///
[DataMember]
public string CrsType { get; set; }
///
/// Wafer尺寸
///
[DataMember]
public Int32 WaferSize { get; set; }
///
/// 可用性
///
[DataMember]
public Boolean Enabled { get; set; }
///
/// 化学用剂
///
[DataMember]
public string Chemistry { get; set; }
///
/// CRS-A Id
///
[DataMember]
public string CrsAId { get; set; }
///
/// CRS-A总次数
///
[DataMember]
public int CrsATotalUses { get; set; }
///
/// CRS-A pad清理后次数
///
[DataMember]
public int CrsAUsesSincePadClean { get; set; }
///
/// CRS-A seal清理后次数
///
[DataMember]
public int CrsAUsesSinceSealClean { get; set; }
///
/// CRS-B Id
///
[DataMember]
public string CrsBId { get; set; }
///
/// CRS-A总次数
///
[DataMember]
public int CrsBTotalUses { get; set; }
///
/// CRS-A pad清理后次数
///
[DataMember]
public int CrsBUsesSincePadClean { get; set; }
///
/// CRS-A seal清理后次数
///
[DataMember]
public int CrsBUsesSinceSealClean { get; set; }
///
/// 所有使用次数
///
[DataMember]
public int TotalUses { get; set; }
///
/// 所有生产片使用次数
///
[DataMember]
public int TotalProductWafers { get; set; }
///
/// Dummy Wafes数量
///
[DataMember]
public int TotalDummyWafers { get; set; }
///
/// 当前位置
///
[DataMember]
public string CurrentLocation { get; set; }
///
/// Wafer A ID
///
[DataMember]
public string WaferAId { get; set; }
///
/// Wafer A类型
///
[DataMember]
public int WaferAType { get; set; }
///
/// Wafer B ID
///
[DataMember]
public string WaferBId { get; set; }
///
/// Wafer B 类型
///
[DataMember]
public int WaferBType { get; set; }
///
/// 当前ProcessJob
///
[DataMember]
public string CurrentProcessJobId { get; set; }
///
/// 当前ControlJob
///
[DataMember]
public string CurrentControlJobId { get; set; }
///
/// 当前LotID
///
[DataMember]
public string LotId { get; set; }
///
/// 状态
///
[DataMember]
public WaferHolderStatus Status { get; set; }
///
/// 创建时间
///
[DataMember]
public DateTime CreateTime { get; set; }
///
/// 最后一次更新时间
///
[DataMember]
public DateTime LastUpdateTime { get; set; }
///
/// Sequence Id
///
public string SequenceId { get; set; }
///
/// Sequence Recipe
///
[DataMember]
public SequenceRecipe SequenceRecipe { get; set; }
///
/// Metal模块名称
///
public ModuleName MetalModuleName { get; set; }
///
/// 调度经过所有过程
///
public List SchedulerModules { get; set; } = new List();
///
/// 是否可以去Loader
///
public bool IsToLoader { get; set; } = true;
///
/// 上一个Metal Recipe完成时间
///
public DateTime LastMetalRecipeCompleteTime { get; set; }
///
/// 起始的位置
///
public string OriginalBuffer { get; set; }
///
/// 初始化Wafer信息
///
///
///
public void InitWaferInfo(int waferSize)
{
this.WaferSize = waferSize;
}
///
/// 克隆
///
///
public void Clone(WaferHolderInfo info)
{
this.Id= info.Id;
this.CrsType = info.CrsType;
this.WaferSize = info.WaferSize;
this.Enabled = info.Enabled;
this.CrsAId = info.CrsAId;
this.CrsATotalUses = info.CrsATotalUses;
this.CrsAUsesSinceSealClean = info.CrsAUsesSinceSealClean;
this.CrsAUsesSincePadClean = info.CrsAUsesSincePadClean;
this.CrsBId = info.CrsBId;
this.CrsBTotalUses = info.CrsBTotalUses;
this.CrsBUsesSinceSealClean = info.CrsBUsesSinceSealClean;
this.CrsBUsesSincePadClean = info.CrsBUsesSincePadClean;
this.Chemistry = info.Chemistry;
this.TotalUses = info.TotalUses;
this.TotalProductWafers = info.TotalProductWafers;
this.CurrentLocation = info.CurrentLocation;
this.CurrentProcessJobId = info.CurrentProcessJobId;
this.CurrentControlJobId = info.CurrentControlJobId;
this.Status = info.Status;
this.WaferAId= info.WaferAId;
this.WaferBId= info.WaferBId;
this.SequenceId = info.SequenceId;
this.SequenceRecipe = info.SequenceRecipe;
}
///
/// 克隆
///
///
public void CloneBaseInfo(WaferHolderInfo info)
{
this.Id = info.Id;
this.BufferId = info.BufferId;
this.CrsType = info.CrsType;
this.WaferSize = info.WaferSize;
this.Enabled = info.Enabled;
this.CrsATotalUses = info.CrsATotalUses;
this.CrsAUsesSinceSealClean = info.CrsAUsesSinceSealClean;
this.CrsAUsesSincePadClean = info.CrsAUsesSincePadClean;
this.CrsBTotalUses = info.CrsBTotalUses;
this.CrsBUsesSinceSealClean = info.CrsBUsesSinceSealClean;
this.CrsBUsesSincePadClean = info.CrsBUsesSincePadClean;
this.TotalUses = info.TotalUses;
this.TotalProductWafers = info.TotalProductWafers;
this.CurrentLocation = info.CurrentLocation;
this.Chemistry=info.Chemistry;
this.WaferAId = info.WaferAId;
this.WaferBId = info.WaferBId;
}
}
}