public static bool OnParallelChamberPM(this FabAoEquipment eqp, PMSchedule pm, DownEventType det) { if (pm == null || eqp.IsParallelChamber || string.IsNullOrEmpty(pm.ComponentID)) { return(false); } var chamberID = pm.ComponentID; if (string.IsNullOrEmpty(chamberID)) { chamberID = Constants.NULL_ID; } var cproc = eqp.FirstProcess <AoChamberProc2>(); if (det == DownEventType.End) { cproc.Live(chamberID); eqp.WriteHistoryAfterBreak(); eqp.SetModified(); } else { cproc.Die(chamberID, pm.EndTime); eqp.WriteHistory(LoadingStates.PM); } return(true); }
internal static void AddPM(FabEqp eqp, PMSchedule pm) { List <PMSchedule> list; if (_pmDic.TryGetValue(eqp, out list) == false) { list = new List <PMSchedule>(); _pmDic.Add(eqp, list); } list.Add(pm); }
internal static void AddAdjustPmList() { DateTime planStartTime = ModelContext.Current.StartTime; DateTime planEndTime = ModelContext.Current.EndTime; foreach (KeyValuePair <FabEqp, List <PMSchedule> > item in _pmDic) { FabEqp eqp = item.Key; item.Value.Sort((x, y) => x.StartTime.CompareTo(y.StartTime)); PMSchedule lastPMSched = null; foreach (PMSchedule pm in item.Value) { if (pm.EndTime < planStartTime) { continue; } if (pm.StartTime > planEndTime) { break; } if (lastPMSched != null) { if (lastPMSched.EndTime >= pm.StartTime && lastPMSched.EndTime < pm.EndTime) { lastPMSched.EndTime = pm.EndTime; continue; } } lastPMSched = pm; List <PMSchedule> list; if (_pmList.TryGetValue(eqp, out list) == false) { list = new List <PMSchedule>(); _pmList.Add(eqp, list); } list.Add(pm); } } }
private static bool IsPmPeriodSection(this PMSchedule pm, DateTime date) { return(pm.StartTime <= date && date <= pm.EndTime); }