Merge branch '添加TrayBelongTo属性' into develop
This commit is contained in:
commit
137b7609f7
|
@ -265,6 +265,9 @@ namespace Aitex.Core.Common
|
|||
public int TrayOriginSlot { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string TrayBelongTo { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public int OriginStation { get; set; }
|
||||
|
||||
[DataMember]
|
||||
|
|
|
@ -268,6 +268,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
var waferOrigin = AllLocationWafers[moduleFrom][slotFrom].WaferOrigin;
|
||||
var InnerIdForm= AllLocationWafers[moduleFrom][slotFrom].InnerId;
|
||||
var InnerIdTo = AllLocationWafers[moduleTo][slotTo].InnerId;
|
||||
var TrayBelongTo_Form = AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo;
|
||||
var TrayBelongTo_To = AllLocationWafers[moduleTo][slotTo].TrayBelongTo;
|
||||
var waferInfo = CopyWaferInfo(moduleTo, slotTo, AllLocationWafers[moduleFrom][slotFrom]);
|
||||
UpdateWaferHistory(moduleTo, slotTo, SubstAccessType.Arrive);
|
||||
DeleteWaferForMove(moduleFrom, slotFrom);
|
||||
|
@ -284,7 +286,11 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = trayOriginSlot;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = trayProcessCount;
|
||||
|
||||
//新加的两个参数
|
||||
AllLocationWafers[moduleFrom][slotFrom].InnerId = InnerIdForm;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = TrayBelongTo_Form;
|
||||
|
||||
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = "";
|
||||
}
|
||||
else if (OnlyWaferModule.Contains(moduleFrom) && WaferTrayModule.Contains(moduleTo))//wafer出去
|
||||
{
|
||||
|
@ -299,7 +305,11 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = 0;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = 0;
|
||||
|
||||
//新加的两个参数
|
||||
AllLocationWafers[moduleTo][slotTo].InnerId = InnerIdTo;//目的地的信息被清了,重新赋值
|
||||
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = TrayBelongTo_To;
|
||||
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -314,8 +324,12 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = 0;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = 0;
|
||||
|
||||
AllLocationWafers[moduleTo][slotTo].InnerId = InnerIdForm;
|
||||
}
|
||||
//新加的两个参数
|
||||
AllLocationWafers[moduleTo][slotTo].InnerId = InnerIdForm;
|
||||
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = TrayBelongTo_Form;
|
||||
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo = "";
|
||||
}
|
||||
EV.PostMessage(ModuleName.System.ToString(), EventEnum.WaferMoved, waferOrigin, moduleFrom.ToString(), slotFrom + 1, moduleTo.ToString(), slotTo + 1);
|
||||
WaferMoveHistoryRecorder.WaferMoved(waferInfo.InnerId.ToString(), moduleTo.ToString(), slotTo, waferInfo.Status.ToString());
|
||||
EV.Notify("WAFER_LEFT_POSITION", new SerializableDictionary<string, string>
|
||||
|
@ -398,12 +412,14 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[moduleTo][slotTo].TrayOriginSlot = AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot;
|
||||
AllLocationWafers[moduleTo][slotTo].TrayProcessCount = AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount;
|
||||
AllLocationWafers[moduleTo][slotTo].InnerId = AllLocationWafers[moduleFrom][slotFrom].InnerId;
|
||||
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = AllLocationWafers[moduleFrom][slotFrom].TrayBelongTo;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayState = WaferTrayStatus.Empty;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayUsedForWhichPM = 0;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayOriginStation = 0;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayOriginSlot = 0;
|
||||
AllLocationWafers[moduleFrom][slotFrom].TrayProcessCount = 0;
|
||||
AllLocationWafers[moduleFrom][slotFrom].InnerId=Guid.Empty;
|
||||
AllLocationWafers[moduleTo][slotTo].TrayBelongTo = "System";
|
||||
|
||||
if (OnlyTrayModule.Contains(moduleTo))
|
||||
{
|
||||
|
@ -726,8 +742,9 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[module][slot].WaferOrigin = GenerateOrigin(module, slot);
|
||||
AllLocationWafers[module][slot].Station = (int)module;
|
||||
AllLocationWafers[module][slot].Slot = slot;
|
||||
//AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
|
||||
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
|
||||
//AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
|
||||
AllLocationWafers[module][slot].TrayBelongTo = "System";
|
||||
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
|
||||
AllLocationWafers[module][slot].OriginStation = (int)module;
|
||||
AllLocationWafers[module][slot].OriginSlot = slot;
|
||||
AllLocationWafers[module][slot].OriginCarrierID = text;
|
||||
|
@ -795,8 +812,9 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[module][slot].WaferOrigin = GenerateOrigin(module, slot);
|
||||
AllLocationWafers[module][slot].Station = (int)module;
|
||||
AllLocationWafers[module][slot].Slot = slot;
|
||||
//AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
|
||||
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
|
||||
//AllLocationWafers[module][slot].InnerId = Guid.NewGuid();
|
||||
AllLocationWafers[module][slot].TrayBelongTo = "System";
|
||||
AllLocationWafers[module][slot].TrayUsedForWhichPM = 0;
|
||||
AllLocationWafers[module][slot].OriginStation = (int)module;
|
||||
AllLocationWafers[module][slot].OriginSlot = slot;
|
||||
AllLocationWafers[module][slot].OriginCarrierID = text;
|
||||
|
@ -862,7 +880,8 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
}
|
||||
lock (_lockerWaferList)
|
||||
{
|
||||
AllLocationWafers[module][slot].Status = WaferStatus.Empty;
|
||||
AllLocationWafers[module][slot].TrayBelongTo = "System";
|
||||
AllLocationWafers[module][slot].Status = WaferStatus.Empty;
|
||||
AllLocationWafers[module][slot].ProcessState = EnumWaferProcessStatus.Idle;
|
||||
AllLocationWafers[module][slot].SubstE90Status = EnumE90Status.NeedProcessing;
|
||||
AllLocationWafers[module][slot].WaferID = GenerateWaferId(module, slot, text);
|
||||
|
@ -918,6 +937,7 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
AllLocationWafers[module][num].SubstHists = null;
|
||||
_dictWaferInfo.Remove(AllLocationWafers[module][num].WaferID);
|
||||
AllLocationWafers[module][num].InnerId = Guid.Empty;
|
||||
AllLocationWafers[module][num].TrayBelongTo = "";
|
||||
}
|
||||
}
|
||||
_needSerialize = true;
|
||||
|
@ -1533,6 +1553,11 @@ namespace MECF.Framework.Common.SubstrateTrackings
|
|||
_needSerialize = true;
|
||||
}
|
||||
|
||||
public void UpdatTrayBelongTo(ModuleName module,int slot,string trayBelongTo)
|
||||
{
|
||||
AllLocationWafers[module][slot].TrayBelongTo = trayBelongTo;
|
||||
}
|
||||
|
||||
public void UpdateWaferHistory(ModuleName module, int slot, SubstAccessType accesstype)
|
||||
{
|
||||
if (!IsWaferSlotLocationValid(module, slot))
|
||||
|
|
|
@ -156,7 +156,7 @@ namespace MECF.Framework.UI.Client.ClientBase
|
|||
if (chamber.ToString().Contains("PM") && _waferInfo[CurrentSlot.SlotID].InnerId == Guid.Empty)
|
||||
model = new WinPMThicknessDataViewModel(chamber.ToString());
|
||||
else
|
||||
model = new WinTrayThicknessDataViewModel(guid);
|
||||
model = new WinTrayThicknessDataViewModel(guid, chamber, slot);
|
||||
dynamic settings = new ExpandoObject();
|
||||
settings.WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
||||
settings.Title = "Edit MinorCycle Info.";
|
||||
|
|
|
@ -73,7 +73,7 @@ namespace MECF.Framework.UI.Client.ClientBase
|
|||
if (wafers.Length == info.WaferManager.Wafers.Count)
|
||||
{
|
||||
int index;
|
||||
ModuleName module;
|
||||
string _trayBelongTo;
|
||||
for (int i = 0; i < wafers.Length; i++)
|
||||
{
|
||||
if (info.IsWaferReverseDisplay)
|
||||
|
@ -100,23 +100,26 @@ namespace MECF.Framework.UI.Client.ClientBase
|
|||
|
||||
if (wafers[index].TrayOriginSlot % 2 == 0)
|
||||
{
|
||||
module = ModuleName.PM1;
|
||||
_trayBelongTo = ModuleName.PM1.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
module = ModuleName.PM2;
|
||||
_trayBelongTo = ModuleName.PM2.ToString();
|
||||
}
|
||||
if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsEFEMInstalled"))
|
||||
{
|
||||
_trayBelongTo = wafers[index].TrayBelongTo;
|
||||
}
|
||||
|
||||
if (info.WaferManager.Wafers[i].ToolTip == null)
|
||||
{
|
||||
info.WaferManager.Wafers[i].ToolTip = new ToolTip()
|
||||
{
|
||||
Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].Status).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {module.ToString()}"
|
||||
Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].Status).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {_trayBelongTo}"
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
info.WaferManager.Wafers[i].ToolTip.Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].Status).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {module.ToString()}";
|
||||
info.WaferManager.Wafers[i].ToolTip.Content = $"LotId : {wafers[index].LotId}\r\nWaferId : {wafers[index].WaferID}\r\nSequenceName : {wafers[index].ProcessJobID}\r\nWaferStatus : {((int)wafers[index].Status).ToString()}\r\nNextSequenceStep : {wafers[index].NextSequenceStep + 1}\r\nTrayState : {((int)wafers[index].TrayState).ToString()}\r\nTrayProcessCount : {wafers[index].TrayProcessCount}\r\nTrayOriginStation : {((ModuleName)wafers[index].TrayOriginStation).ToString()}\r\nTrayOriginSlot : {wafers[index].TrayOriginSlot + 1}\r\nTrayBelongTo : {_trayBelongTo}";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ namespace MECF.Framework.UI.Client.TrayThickness
|
|||
PMGuid = pmGuId;//PM的默认数据库ID为MP
|
||||
MinorCycle = new CoatingData($"{pmGuId}小周期", pmGuId);
|
||||
MajorCycle = new CoatingData($"{pmGuId}大周期", pmGuId);
|
||||
|
||||
MinorCycle.PmOwned = pmGuId;
|
||||
MajorCycle.PmOwned = pmGuId;
|
||||
_dataList = new List<CoatingData>(
|
||||
|
@ -77,17 +76,17 @@ namespace MECF.Framework.UI.Client.TrayThickness
|
|||
}
|
||||
|
||||
|
||||
public void Update(TrayCoatingThickness newData)
|
||||
public void Update(PMCoatingThickness newData)
|
||||
{
|
||||
MinorCycle.Update(newData.Tray);
|
||||
MajorCycle.Update(newData.TrayInner);
|
||||
MinorCycle.Update(newData.MinorCycle);
|
||||
MajorCycle.Update(newData.MajorCycle);
|
||||
}
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
var newObj = new TrayCoatingThickness(PMGuid);
|
||||
newObj.Tray = (CoatingData)MinorCycle.Clone();
|
||||
newObj.TrayInner = (CoatingData)MajorCycle.Clone();
|
||||
var newObj = new PMCoatingThickness(PMGuid);
|
||||
newObj.MinorCycle = (CoatingData)MinorCycle.Clone();
|
||||
newObj.MajorCycle = (CoatingData)MajorCycle.Clone();
|
||||
return newObj;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
using MECF.Framework.Common.OperationCenter;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.Common.OperationCenter;
|
||||
using MECF.Framework.Common.SubstrateTrackings;
|
||||
using MECF.Framework.UI.Client.ClientBase;
|
||||
using OpenSEMI.ClientBase;
|
||||
using OpenSEMI.Ctrlib.Controls;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
@ -13,11 +16,14 @@ namespace MECF.Framework.UI.Client.TrayThickness
|
|||
public class WinTrayThicknessDataViewModel : UiViewModelBase
|
||||
{
|
||||
TrayDataViewManager trayDataViewManager;
|
||||
string trayID;
|
||||
private ModuleName MoudleName;
|
||||
private int Sloat;
|
||||
public TrayCoatingThickness TrayData { get; set; }
|
||||
public List<string> PmsList { get; set; } = new List<string>() { "PM1", "PM2" };
|
||||
public WinTrayThicknessDataViewModel(string _trayGuid)
|
||||
public WinTrayThicknessDataViewModel(string _trayGuid, ModuleName moudleName, int sloat)
|
||||
{
|
||||
MoudleName = moudleName;
|
||||
Sloat = sloat;
|
||||
TrayData = new TrayCoatingThickness(_trayGuid);
|
||||
trayDataViewManager = new TrayDataViewManager(TrayData, _trayGuid);
|
||||
UpTrayCoatingThickness();
|
||||
|
@ -30,6 +36,7 @@ namespace MECF.Framework.UI.Client.TrayThickness
|
|||
{
|
||||
if (trayDataViewManager.SET(out var reason))
|
||||
{
|
||||
InvokeClient.Instance.Service.DoOperation("UpdatTrayBelongTo", MoudleName, Sloat, TrayData.Tray.PmOwned);
|
||||
DialogBox.ShowInfo("MinorCycle Info. created successfully!");
|
||||
TryClose();
|
||||
}
|
||||
|
|
|
@ -23,19 +23,6 @@ namespace MECF.Framework.UI.Client.TrayThickness
|
|||
Tray, TrayInner, RingInner, RingOuter
|
||||
});
|
||||
}
|
||||
public TrayCoatingThickness(string pmGuId, bool isPM) //把PM当成特殊的Tray来处理,PM1+PM2为一个Tray数据源
|
||||
{
|
||||
TrayGuid = pmGuId;//PM的默认数据库ID为MP
|
||||
Tray = new CoatingData($"{pmGuId}小周期", pmGuId);
|
||||
TrayInner = new CoatingData($"{pmGuId}大周期", pmGuId);
|
||||
RingInner = new CoatingData("", pmGuId);
|
||||
RingOuter = new CoatingData("", pmGuId);
|
||||
_dataList = new List<CoatingData>(
|
||||
new []
|
||||
{
|
||||
Tray, TrayInner
|
||||
});
|
||||
}
|
||||
|
||||
public TrayCoatingThickness(string trayGuId)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue