整理Slot信息,添加属性和Wafer共享数据

This commit is contained in:
hanqiangqiang 2024-08-14 15:42:08 +08:00
parent c4b0f20a7a
commit 405a49bb77
1 changed files with 175 additions and 17 deletions

View File

@ -10,6 +10,7 @@ using MECF.Framework.Common.Jobs;
using MECF.Framework.Common.Properties; using MECF.Framework.Common.Properties;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Runtime.Serialization; using System.Runtime.Serialization;
@ -17,6 +18,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using MECF.Framework.Common.DBCore;
namespace Aitex.Core.Common namespace Aitex.Core.Common
{ {
@ -24,6 +26,9 @@ namespace Aitex.Core.Common
[DataContract] [DataContract]
public class SlotInfor : NotifiableItem public class SlotInfor : NotifiableItem
{ {
private string _sequenceName;
private int _nextSequenceStep;
public SlotInfor(ModuleName module,int slotID,int trayNum, int waferNum) public SlotInfor(ModuleName module,int slotID,int trayNum, int waferNum)
{ {
ModuleID = module.ToString(); ModuleID = module.ToString();
@ -52,6 +57,14 @@ namespace Aitex.Core.Common
} }
} }
private void UpData()
{
foreach (var waferInfor in WaferInforList ?? Enumerable.Empty<WaferInfor>())
{
waferInfor.SlotInforUpData(this);
}
}
public int TrayNum { get; private set; } public int TrayNum { get; private set; }
public int WaferNum { get; private set; } public int WaferNum { get; private set; }
@ -71,9 +84,6 @@ namespace Aitex.Core.Common
[DataMember] [DataMember]
public int SlotID { get; set; } public int SlotID { get; set; }
[DataMember]
public string CurrentCarrierID { get; set; }
[DataMember] [DataMember]
public string OriginCarrierID { get; set; } public string OriginCarrierID { get; set; }
@ -90,8 +100,96 @@ namespace Aitex.Core.Common
[MoveInfor] [MoveInfor]
public int NextStation { get; set; } public int NextStation { get; set; }
#region Wafer共享的数据SequenceRecipe相关内容
private string _recipeName;
[DataMember]
public string RecipeName
{
get => _recipeName;
set { _recipeName = value; UpData(); }
}
[DataMember]
public string SequenceName
{
get => _sequenceName;
set
{
_sequenceName=value;
UpData();
}
}
[DataMember]
public int NextSequenceStep
{
get => _nextSequenceStep;
set
{
_nextSequenceStep = value;
UpData();
}
}
private string _lotId;
[DataMember]
public string LotId
{
get => _lotId;
set
{
_lotId = value;
UpData();
}
}
private ProcessJobInfo _processJob;
[DataMember]
public ProcessJobInfo ProcessJob
{
get => _processJob;
set
{
_processJob = value;
UpData();
}
}
private string processJobID;
[DataMember]
public string ProcessJobID
{
get => processJobID;
set
{
processJobID = value;
UpData();
}
}
private string controlJobID;
[DataMember] [DataMember]
[MoveInfor] [MoveInfor]
public string ControlJobID
{
get => controlJobID;
set
{
controlJobID = value;
UpData();
}
}
#endregion
[DataMember]
public int NextStationSlot { get; set; } public int NextStationSlot { get; set; }
private bool isSource; private bool isSource;
@ -296,6 +394,10 @@ namespace Aitex.Core.Common
[MoveInfor] [MoveInfor]
public string SequenceName { get; set; } public string SequenceName { get; set; }
[DataMember]
[MoveInfor]
public int NextSequenceStep { get; set; }
[DataMember] [DataMember]
[MoveInfor] [MoveInfor]
public string WaferID { get; set; } public string WaferID { get; set; }
@ -313,11 +415,7 @@ namespace Aitex.Core.Common
[DataMember] [DataMember]
[MoveInfor] [MoveInfor]
public ProcessJobInfo ProcessJob { get; set; } public ProcessJobInfo? ProcessJob { get; set; }
[DataMember]
[MoveInfor]
public int NextSequenceStep { get; set; }
[DataMember] [DataMember]
[MoveInfor] [MoveInfor]
@ -380,12 +478,25 @@ namespace Aitex.Core.Common
set { _moduleSlotID = value; InvokePropertyChanged(); } set { _moduleSlotID = value; InvokePropertyChanged(); }
} }
/// <summary>
/// 刷新界面提示用当对象属性值改变时需要设为true ProcessJob
/// </summary>
private bool _isToolTipRefresh = true;
private string _toolTip; private string _toolTip;
[DataMember] [DataMember]
[MoveInfor] [MoveInfor]
public string ToolTip public string ToolTip
{ {
get => $"ModuleName : {ModuleID}\r\nModuleSlot : {ModuleSlotID+1}\r\nWaferSlot : {WaferSlotID+1}\r\nWaferOrigin: {WaferOriginModule}\r\nLotId : {LotId}\r\nWaferId : {WaferID}\r\nSequenceName : {ProcessJobID}\r\nRecipeName : {RecipeName}\r\nWaferStatus : {WaferStatus}\r\nNextSequenceStep : {NextSequenceStep + 1}\r\nTrayState : {TrayInfor?.TrayStatus}\r\nTrayProcessCount : {TrayInfor?.TrayProcessCount}\r\nTrayOriginStation : { TrayInfor?.TrayOriginStation}\r\nTrayOriginSlot : {TrayInfor?.TrayOriginSlot + 1}\r\nTrayBelongTo : {TrayInfor?.TrayBelongTo}";
get
{
//if (_isToolTipRefresh)
{
_toolTip = ToolTipInfor();
_isToolTipRefresh =false ;
}
return _toolTip;
}
set { } set { }
} }
@ -437,12 +548,9 @@ namespace Aitex.Core.Common
[MoveInfor] [MoveInfor]
public int WaferStateNum public int WaferStateNum
{ {
get => waferStateNum; get => WaferStatusConverter(this);
set set { }
{
waferStateNum = WaferStatusConverter(this); ;
InvokePropertyChanged();
}
} }
private bool isChecked; private bool isChecked;
@ -458,11 +566,11 @@ namespace Aitex.Core.Common
} }
} }
private WaferProcessStatus processState; private WaferProcessStatus? processState;
[DataMember] [DataMember]
[MoveInfor] [MoveInfor]
public WaferProcessStatus ProcessState public WaferProcessStatus? ProcessState
{ {
get => processState; get => processState;
set set
@ -523,12 +631,27 @@ namespace Aitex.Core.Common
WaferSlotID = waferSlotID; WaferSlotID = waferSlotID;
TrayInfor = trayInfor; TrayInfor = trayInfor;
} }
public void SlotInforUpData(SlotInfor slotInfor)
{
RecipeName= slotInfor.RecipeName;
SequenceName =slotInfor.SequenceName;
NextSequenceStep = slotInfor.NextSequenceStep;
LotId = slotInfor.LotId;
ProcessJob=slotInfor.ProcessJob;
ProcessJobID=slotInfor.ProcessJobID;
ControlJobID =slotInfor.ControlJobID;
RefreshToolTip();
}
public void Move(WaferInfor wafetInfor) public void Move(WaferInfor wafetInfor)
{ {
ObjectMove objectMove = new ObjectMove(); ObjectMove objectMove = new ObjectMove();
objectMove.Move(this, wafetInfor); objectMove.Move(this, wafetInfor);
TrayInfor.Move(wafetInfor.TrayInfor); TrayInfor.Move(wafetInfor.TrayInfor);
RefreshToolTip();
} }
public void SetWaferEmpty() public void SetWaferEmpty()
@ -552,6 +675,8 @@ namespace Aitex.Core.Common
SubstTransStatus = SubstrateTransportStatus.None; SubstTransStatus = SubstrateTransportStatus.None;
SubstE90Status = EnumE90Status.None; SubstE90Status = EnumE90Status.None;
SubstHists = null; SubstHists = null;
RefreshToolTip();
} }
public void CreateWaferInformation(SlotInfor slotInfor,string waferId, string origin, WaferStatus status = WaferStatus.Normal, WaferSize wz = WaferSize.WS6) public void CreateWaferInformation(SlotInfor slotInfor,string waferId, string origin, WaferStatus status = WaferStatus.Normal, WaferSize wz = WaferSize.WS6)
@ -578,6 +703,8 @@ namespace Aitex.Core.Common
SubstTransStatus = SubstrateTransportStatus.None; SubstTransStatus = SubstrateTransportStatus.None;
SubstE90Status = EnumE90Status.NeedProcessing; SubstE90Status = EnumE90Status.NeedProcessing;
SubstHists = null; SubstHists = null;
RefreshToolTip();
} }
//0: no wafer //0: no wafer
@ -614,6 +741,36 @@ namespace Aitex.Core.Common
return 5; return 5;
} }
private string ToolTipInfor()
{
var sb = new StringBuilder();
sb.AppendLine($"ModuleName : {ModuleID ?? ""}");
sb.AppendLine($"ModuleSlot : {ModuleSlotID + 1}");
sb.AppendLine($"WaferSlot : {WaferSlotID + 1}");
sb.AppendLine($"WaferOrigin: {WaferOriginModule ?? ""}");
sb.AppendLine($"LotId : {LotId ?? ""}");
sb.AppendLine($"WaferId : {WaferID ?? ""}");
sb.AppendLine($"ProcessJobID : {ProcessJobID ?? ""}");
sb.AppendLine($"RecipeName : {RecipeName ?? ""}");
sb.AppendLine($"WaferStatus : {WaferStatus}");
sb.AppendLine($"ProcessState : {ProcessState?.ToString() ?? ""}");
sb.AppendLine($"ProcessJob : {ProcessJob?.ToString() ?? ""}");
sb.AppendLine($"SequenceName : {SequenceName?.ToString() ?? ""}");
sb.AppendLine($"NextSequenceStep : {NextSequenceStep + 1}");
sb.AppendLine($"TrayState : {TrayInfor?.TrayStatus}");
sb.AppendLine($"TrayProcessCount : {TrayInfor?.TrayProcessCount ?? 0}");
sb.AppendLine($"TrayOriginStation : {TrayInfor?.TrayOriginStation ?? ""}");
sb.AppendLine($"TrayOriginSlot : {(TrayInfor?.TrayOriginSlot + 1) ?? 0}");
sb.Append($"TrayBelongTo : {TrayInfor?.TrayBelongTo ?? ""}");
return sb.ToString();
}
private void RefreshToolTip()
{
_isToolTipRefresh = true;
}
#endregion WaferInfor #endregion WaferInfor
} }
@ -641,4 +798,5 @@ namespace Aitex.Core.Common
public class MoveInforAttribute : Attribute public class MoveInforAttribute : Attribute
{ {
} }
} }