internal static void WriteStepTarget(Mozart.SeePlan.Pegging.PegPart pegPart, bool isOut) { MicronBETestBEPegPart pp = pegPart as MicronBETestBEPegPart; foreach (MicronBETestBEPegTarget target in pegPart.PegTargetList) { MicronBETestBEMoPlan moPlan = target.Mo as MicronBETestBEMoPlan; MicronBETestBEMoMaster moMaster = moPlan.MoMaster as MicronBETestBEMoMaster; StepTarget info = new StepTarget(); info.LINE_ID = pp.Product.LineID; info.PRODUCT_ID = pp.Product.ProductID; info.PROCESS_ID = pp.CurrentStep.RouteID; info.STEP_ID = pp.CurrentStep.StepID; if (isOut) { info.OUT_QTY = Convert.ToDecimal(target.Qty); } else { info.IN_QTY = Convert.ToDecimal(target.Qty); } info.TARGET_DATE = target.DueDate; info.MO_PRODUCT_ID = moPlan.ProductID; OutputMart.Instance.StepTarget.Add(info); } }
private List <ResultItem> GetResultItemList(DateTime startTime, DateTime endTime, Dictionary <IComparable, EqpPlan> eqpPlanMappings, Dictionary <IComparable, StepTarget> stepTargetMappings) { var result = this._expDataContext.Result(this._result.Name); var list = new List <ResultItem>(); var keys = eqpPlanMappings.Keys.Union(stepTargetMappings.Keys).Distinct(); foreach (var key in keys) { Tuple <string, string, string, string, DateTime> tuple = key as Tuple <string, string, string, string, DateTime>; ResultItem item = new ResultItem(); StepTarget stepTarget = null; EqpPlan eqpPlan = null; DateTime date = tuple.Item5; if (stepTargetMappings.TryGetValue(tuple, out stepTarget)) { item.TargetQty = Convert.ToDouble(stepTarget.OUT_QTY); } if (eqpPlanMappings.TryGetValue(tuple, out eqpPlan)) { item.PlanQty = Convert.ToDouble(eqpPlan.QTY); } var prodMaster = this.FindProductMaster(tuple.Item1, tuple.Item2); var procStep = this.FindProcessStep(tuple.Item1, tuple.Item3, tuple.Item4); item.LineID = prodMaster.LINE_ID; item.DesignID = prodMaster.DESIGN_ID; item.ProductID = prodMaster.PRODUCT_ID; item.ProcessID = prodMaster.PROCESS_ID; item.StepID = procStep.STEP_ID; item.Sequence = procStep.SEQUENCE; item.Date = date.DbToString().Substring(0, 11); item.MaterialGroup = prodMaster.MATERIAL_GROUP; item.PkgFamily = prodMaster.PKG_FAMILY; item.PkgType = prodMaster.PKG_TYPE; list.Add(item); } return(list); }
public static void WriteStepTarget(Mozart.SeePlan.Pegging.PegPart pegPart, bool isOut) { try { MicronBEAssyBEPegPart pp = pegPart as MicronBEAssyBEPegPart; foreach (MicronBEAssyBEPegTarget target in pegPart.PegTargetList) { MicronBEAssyBEMoPlan moPlan = target.Mo as MicronBEAssyBEMoPlan; MicronBEAssyBEMoMaster moMaster = moPlan.MoMaster as MicronBEAssyBEMoMaster; StepTarget info = new StepTarget(); info.LINE_ID = pp.Product.LineID; info.PRODUCT_ID = pp.Product.ProductID; info.PROCESS_ID = pp.CurrentStep.RouteID; info.STEP_ID = pp.CurrentStep.StepID; if (isOut) { info.OUT_QTY = Convert.ToDecimal(target.Qty); } else { info.IN_QTY = Convert.ToDecimal(target.Qty); } info.TARGET_DATE = target.DueDate; info.MO_PRODUCT_ID = moPlan.ProductID; info.DESIGN_ID = pp.Product.DesignID(); info.DEMAND_ID = moPlan.DemandID; info.WEEK_NO = moPlan.WeekNo; info.SEQUENCE = (pp.CurrentStep as MicronBEAssyBEStep).Sequence; info.IS_BASE = UtilityHelper.IsYN(pp.Product.IsBase()); OutputMart.Instance.StepTarget.Add(info); } } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); } }
private Dictionary <IComparable, StepTarget> GetStepTargetMappings(DateTime startTime, DateTime endTime, string timeUnit) { var result = this._expDataContext.Result(this._result.Name); var stepTargets = result.StepTarget; Dictionary <IComparable, StepTarget> stepTargetMappings = new Dictionary <IComparable, StepTarget>(); foreach (var item in stepTargets) { if (startTime > item.TARGET_DATE) { continue; } if (endTime < item.TARGET_DATE) { continue; } if (this._selectedLineIDSet.Contains(item.LINE_ID) == false) { continue; } if (this._selectedDesignIDSet.Contains(item.DESIGN_ID) == false) { continue; } if (this._selectedProdIDSet.Contains(item.PRODUCT_ID) == false) { continue; } StepTarget target = null; DateTime date = DateTime.MinValue; if (timeUnit == Constants.DAY) { date = item.TARGET_DATE.StartTimeOfDayT(); } if (timeUnit == Constants.SHIFT) { date = item.TARGET_DATE.ShiftStartTimeOfDayT(); } if (timeUnit == Constants.HOUR) { date = new DateTime(item.TARGET_DATE.Year, item.TARGET_DATE.Month, item.TARGET_DATE.Day, item.TARGET_DATE.Hour, 00, 00); } var key = Tuple.Create(item.LINE_ID, item.PRODUCT_ID, item.PROCESS_ID, item.STEP_ID, date); if (stepTargetMappings.TryGetValue(key, out target)) { target.OUT_QTY += item.OUT_QTY; } else { stepTargetMappings[key] = item; } } for (DateTime dateTime = startTime.StartTimeOfDayT(); dateTime <= endTime;) { foreach (var item in stepTargets) { if (startTime > item.TARGET_DATE) { continue; } if (endTime < item.TARGET_DATE) { continue; } if (this._selectedLineIDSet.Contains(item.LINE_ID) == false) { continue; } if (this._selectedDesignIDSet.Contains(item.DESIGN_ID) == false) { continue; } if (this._selectedProdIDSet.Contains(item.PRODUCT_ID) == false) { continue; } var key = Tuple.Create(item.LINE_ID, item.PRODUCT_ID, item.PROCESS_ID, item.STEP_ID, dateTime); StepTarget find = null; if (stepTargetMappings.TryGetValue(key, out find) == false) { StepTarget dummyTarget = new StepTarget(); dummyTarget.LINE_ID = item.LINE_ID; dummyTarget.PRODUCT_ID = item.PRODUCT_ID; dummyTarget.PROCESS_ID = item.PROCESS_ID; dummyTarget.STEP_ID = item.STEP_ID; dummyTarget.OUT_QTY = 0; stepTargetMappings[key] = dummyTarget; } } if (timeUnit == Constants.DAY) { dateTime = dateTime.AddDays(1); } if (timeUnit == Constants.SHIFT) { dateTime = dateTime.AddHours(8); } if (timeUnit == Constants.HOUR) { dateTime = dateTime.AddHours(1); } } return(stepTargetMappings); }