/// <summary> /// </summary> /// <param name="aeqp"/> /// <param name="proc"/> /// <param name="handled"/> public void ON_BEGIN_PROCESSING0(Mozart.SeePlan.Simulation.AoEquipment aeqp, Mozart.SeePlan.Simulation.AoProcess proc, ref bool handled) { IHandlingBatch hb = proc.Entity as IHandlingBatch; FabLot lot = hb.Sample as FabLot; lot.CurrentFabPlan.EqpInStartTime = aeqp.NowDT; if (lot.IsRunWipFirstPlan()) { lot.CurrentFabPlan.EqpInStartTime = lot.Wip.LastTrackInTime; lot.CurrentFabPlan.IsInitRunWip = true; } AcidMaster.OnBegingProcessing(aeqp, lot); }
/// <summary> /// </summary> /// <param name="aeqp"/> /// <param name="proc"/> /// <param name="handled"/> public void ON_BEGIN_SETUP0(Mozart.SeePlan.Simulation.AoEquipment aeqp, Mozart.SeePlan.Simulation.AoProcess proc, ref bool handled) { FabAoEquipment eqp = aeqp.ToFabAoEquipment(); EqpDispatchInfo info = aeqp.EqpDispatchInfo; FabLot lot = proc.Entity as FabLot; bool isAheadSetup = eqp.AvailableSetupTime < aeqp.NowDT; if (isAheadSetup) { DispatchLogHelper.UpdateDispatchLogByAheadSetup(eqp, info); } if (eqp.IsAcidConst && eqp.AcidDensity.IsSetupMark) { DateTime inTime = isAheadSetup ? eqp.AvailableSetupTime : eqp.NowDT; AcidMaster.ResetAcidDensity(eqp, lot, inTime); } }