/// <summary> /// </summary> /// <param name="aeqp"/> /// <param name="hb"/> /// <param name="handled"/> /// <param name="prevReturnValue"/> /// <returns/> public ProcTimeInfo GET_PROCESS_TIME0(Mozart.SeePlan.Simulation.AoEquipment aeqp, IHandlingBatch hb, ref bool handled, ProcTimeInfo prevReturnValue) { try { ProcTimeInfo info = new ProcTimeInfo(); MicronBEAssyBELot lot = hb as MicronBEAssyBELot; MicronBEAssyBEStep step = hb.CurrentStep as MicronBEAssyBEStep; foreach (StepTime time in InputMart.Instance.StepTime.DefaultView) { if (step.StepID != time.STEP_ID) { continue; } if (lot.Product.LineID != time.LINE_ID) { continue; } if (LikeUtility.Like(lot.Product.ProductID, time.PRODUCT_ID) == false) { continue; } //if (LikeUtility.Like(lot.Product.Process.ProcessID, time.PROCESS_ID) == false) // continue; if (LikeUtility.Like(aeqp.EqpID, time.EQP_ID) == false) { continue; } double tactTimeBySec = (double)time.TACT_TIME; info.TactTime = TimeSpan.FromSeconds(tactTimeBySec); break; } return(info); } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); return(default(ProcTimeInfo)); } }
/// <summary> /// </summary> /// <param name="aeqp"/> /// <param name="hb"/> /// <param name="handled"/> /// <param name="prevReturnValue"/> /// <returns/> public ProcTimeInfo GET_PROCESS_TIME0(AoEquipment aeqp, IHandlingBatch hb, ref bool handled, ProcTimeInfo prevReturnValue) { FabStep step = hb.CurrentStep as FabStep; FabEqp eqp = aeqp.Target as FabEqp; FabLot lot = hb.Sample as FabLot; StepTime st = step.GetStepTime(eqp.EqpID, lot.CurrentProductID); float mixRunRatio = 1; if (aeqp.IsParallelChamber) { if (eqp.IsMixRunning()) { mixRunRatio = lot.CurrentFabStep.StdStep.MixCriteria; } if (mixRunRatio == 0) { mixRunRatio = 1; } } ProcTimeInfo time = new ProcTimeInfo(); if (st != null) { time.FlowTime = TimeSpan.FromSeconds(st.ProcTime * mixRunRatio); time.TactTime = TimeSpan.FromSeconds(st.TactTime * mixRunRatio); } else { time.FlowTime = TimeSpan.FromMinutes(10); time.TactTime = TimeSpan.FromMinutes(10); } return(time); }