internal static List <IMaterial> GetOutAct(FabPegPart pp) { string shopID = pp.FabProduct.ShopID; string productID = pp.FabProduct.ProductID; return(GetOutAct(shopID, productID)); }
private void PrePareTarget_Fab(MergedPegPart mpp) { if (InputMart.Instance.GlobalParameters.ApplyCellOutPlan == false) { mpp.Items.Clear(); foreach (var mm in InputMart.Instance.FabMoMaster.Values) { if (BopHelper.IsCellShop(mm.ShopID)) { continue; } FabPegPart pp = new FabPegPart(mm, mm.Product); foreach (FabMoPlan mo in mm.MoPlanList) { FabPegTarget pt = CreateHelper.CreateFabPegTarget(pp, mo); pp.AddPegTarget(pt); if (pp.SampleMs == null) { pp.SampleMs = pt; } } mpp.Merge(pp); } } }
internal static IList <IMaterial> GetBankWip(PegPart pegPart) { FabPegPart pp = pegPart.ToFabPegPart(); FabProduct prod = pp.Current.Product; FabStep step = pp.Current.Step; string key = LcdHelper.CreateKey(step.ShopID, step.StepID); List <FabPlanWip> list; CellBankPlanWips.TryGetValue(key, out list); if (list == null) { return(null); } List <IMaterial> result = new List <IMaterial>(); foreach (var item in list) { if (item.ProductID == prod.ProductID) { result.Add(item); } } return(result); }
/// <summary> /// </summary> /// <param name="pegPart"/> /// <param name="isRun"/> /// <param name="handled"/> /// <param name="prevReturnValue"/> /// <returns/> public List <object> GET_PART_CHANGE_INFOS0(Mozart.SeePlan.Pegging.PegPart pegPart, bool isRun, ref bool handled, List <object> prevReturnValue) { if (isRun) { return(null); } FabPegPart pp = pegPart as FabPegPart; FabProduct product = pp.Product as FabProduct; FabStep step = pp.CurrentStage.Tag as FabStep; if (product.HasPrevInterBom == false) { return(null); } FabInterBom interbom; if (product.TryGetPrevInterRoute(step, out interbom) == false) { return(null); } List <object> result = new List <object>() { interbom }; return(result); }
/// <summary> /// </summary> /// <param name="pegPart"/> /// <param name="handled"/> /// <param name="prevReturnValue"/> /// <returns/> public double GET_YIELD0(Mozart.SeePlan.Pegging.PegPart pegPart, ref bool handled, double prevReturnValue) { FabPegPart pp = pegPart.ToFabPegPart(); FabStep step = pp.Current.Step; return(step.GetYield(pp.FabProduct.ProductID)); }
public static void AddCurrentPlan(this FabPegPart pp, PlanStep plan) { if (pp.Steps == null) { pp.Steps = new List <PlanStep>(); } pp.Steps.Add(plan); }
/// <summary> /// </summary> /// <param name="pegPart"/> /// <param name="isOut"/> /// <param name="handled"/> public void WRITE_TARGET0(Mozart.SeePlan.Pegging.PegPart pegPart, bool isOut, ref bool handled) { FabPegPart pp = pegPart as FabPegPart; FabStep step = pegPart.CurrentStage.Tag as FabStep; FabProduct product = pp.Product as FabProduct; foreach (FabPegTarget pt in pegPart.PegTargetList) { PegHelper.WriteStepTarget(pt, isOut, step.StepType); } }
internal static void PrePareTargetbyCell_InTarget(MergedPegPart mg) { List <PegPart> list = new List <PegPart>(mg.Items); foreach (FabPegPart pp in list) { string arrayCode = CellCodeMaster.GetArrayCode(pp.Product.ProductID); string cfCode = CellCodeMaster.GetCfCode(pp.Product.ProductID); var arrayProd = BopHelper.FindProduct(Constants.ArrayShop, arrayCode); var cfProd = BopHelper.FindProduct(Constants.CF, cfCode); if (arrayProd == null || cfProd == null) { ErrHist.WriteIf(string.Format("BuildFabOutTarget{0}", pp.Product.ProductID), ErrCategory.PEGGING, ErrLevel.ERROR, pp.Current.Step.FactoryID, pp.Current.Step.ShopID, Constants.NULL_ID, pp.Product.ProductID, Constants.NULL_ID, Constants.NULL_ID, Constants.NULL_ID, pp.Current.ShopID, "NOT FOUND PRODUCT", string.Format("Do not build TFT OutTarget") ); mg.Items.Remove(pp); continue; } FabStep arrayStep = BopHelper.GetSafeDummyStep(pp.Current.FactoryID, Constants.ArrayShop, "0000"); FabStep cfStep = BopHelper.GetSafeDummyStep(pp.Current.FactoryID, Constants.CfShop, "0000"); FabPegPart cfPP = PegMaster.CreateCellBankPegPart(pp, cfProd); cfPP.AddCurrentPlan(cfProd, cfStep); pp.AddCurrentPlan(arrayProd, arrayStep); pp.Product = arrayProd; foreach (FabPegTarget pt in pp.PegTargetList) { pt.TargetKey = PegHelper.CreateTargetKey(pt.TargetKey, arrayProd.ProductID.Substring(0, 2)); } mg.Items.Add(cfPP); } }
public Step GETLASTPEGGINGSTEP(Mozart.SeePlan.Pegging.PegPart pegPart) { if (InputMart.Instance.GlobalParameters.ApplyCellOutPlan == false) { return(null); } FabPegPart pp = pegPart.ToFabPegPart(); return(pp.Current.Step);; }
/// <summary> /// </summary> /// <param name="pegPart"/> /// <param name="partChangeInfo"/> /// <param name="isRun"/> /// <param name="handled"/> /// <param name="prevReturnValue"/> /// <returns/> public PegPart APPLY_PART_CHANGE_INFO0(PegPart pegPart, object partChangeInfo, bool isRun, ref bool handled, PegPart prevReturnValue) { FabInterBom bom = partChangeInfo as FabInterBom; FabPegPart pp = pegPart.ToFabPegPart(); pp.AddCurrentPlan(bom.Product, bom.CurrentStep); pp.Product = bom.ChangeProduct; pp.InterBom = bom; return(pp); }
public static void AddCurrentPlan(this FabPegPart pp, FabProduct prod, FabStep step) { if (prod == null || step == null) { //TODO : Write Error return; } PlanStep plan = new PlanStep(); plan.Product = prod; plan.Step = step; plan.isDummy = step.IsDummy; pp.AddCurrentPlan(plan); }
internal static Step GetPrevPeggingStep(PegPart pegPart, Step currentStep) { Step prevStep = currentStep.GetDefaultPrevStep(); FabPegPart pp = pegPart.ToFabPegPart(); if (pp.HasInterBom) { prevStep = pp.InterBom.ChangeStep; pp.InterBom = null; } pp.AddCurrentPlan(pp.FabProduct, prevStep as FabStep); return(prevStep); }
internal static Step GetLastPeggingStgep(PegPart pegPart) { FabPegPart pp = pegPart as FabPegPart; FabProduct product = pp.Product as FabProduct; Step step = product.Process.LastStep; pp.AddCurrentPlan(product, step as FabStep); //StepTarget 추가기록 foreach (FabPegTarget pt in pp.PegTargetList) { PegHelper.WriteStepTarget(pt, true, Constants.OUT, true); } return(step); }
internal static FabPegPart CreateCellBankPegPart(FabPegPart pp, FabProduct prod) { FabPegPart newPP = new FabPegPart(pp.MoMaster as FabMoMaster, prod); newPP.Steps = new List <PlanStep>(pp.Steps); foreach (FabPegTarget item in pp.PegTargetList) { FabPegTarget pt = item.Clone(newPP) as FabPegTarget; pt.TargetKey = PegHelper.CreateTargetKey(pt.TargetKey, prod.ProductID.Substring(0, 2)); newPP.AddPegTarget(pt); if (newPP.SampleMs == null) { newPP.SampleMs = pt; } } return(newPP); }
public Step GETPREVPEGGINGSTEP(PegPart pegPart, Step currentStep) { if (InputMart.Instance.GlobalParameters.ApplyCellOutPlan == false) { return(null); } FabPegPart pp = pegPart.ToFabPegPart(); if (pp.Current.StepID == "0000") { string stepID = BopHelper.IsArrayShop(pp.FabProduct.ShopID) ? "9900" : "9990"; FabStep step = BopHelper.GetSafeDummyStep(pp.Current.FactoryID, pp.Current.ShopID, stepID); pp.AddCurrentPlan(pp.FabProduct, step); return(step); } return(null); }
internal static int ComparePegPart(PegPart x, PegPart y) { FabPegPart a = x.ToFabPegPart(); FabPegPart b = y.ToFabPegPart(); int cmp = a.SampleMs.DueDate.CompareTo(b.SampleMs.DueDate); if (cmp == 0) { cmp = a.SampleMs.LineType.CompareTo(b.SampleMs.LineType); } if (cmp == 0) { cmp = a.SampleMs.Qty.CompareTo(b.SampleMs.Qty); } if (cmp == 0) { cmp = a.Product.ProductID.CompareTo(b.Product.ProductID); } return(cmp); }
internal static void WriteStepTarget(FabPegTarget pt, bool isOut, string stepType, bool isExtraAdd) { FabPegPart pp = pt.PegPart as FabPegPart; FabStep step = pp.Current.Step; FabProduct prod = pp.FabProduct; //Key : FactoryID, ShopID, ProductID, StepID, StepType, TargetShift, TargetKey string factoryID = step.FactoryID; string shopID = step.ShopID; string prodductID = prod.ProductID; string stepID = step.StepID; stepType = GetStepType(stepType); if (stepType == Constants.IN) { stepID = string.Format("{0}_{1}", shopID, Constants.IN); } else if (stepType == Constants.OUT) { stepID = string.Format("{0}_{1}", shopID, Constants.OUT); } DateTime targetShift = ShopCalendar.ShiftStartTimeOfDayT(pt.CalcDate); string targetKey = pt.TargetKey; Outputs.StepTarget row = OutputMart.Instance.StepTarget.Find(factoryID, shopID, prodductID, stepID, stepType, targetShift, targetKey); if (row != null) { if (isOut) { row.TARGET_OUT_QTY = +Convert.ToDecimal(pt.CalcQty); } else { row.TARGET_IN_QTY = +Convert.ToDecimal(pt.CalcQty); } } else { row = new Outputs.StepTarget(); row.VERSION_NO = ModelContext.Current.VersionNo; row.FACTORY_ID = step.FactoryID; row.AREA_ID = step.AreaID; row.SHOP_ID = step.ShopID; row.PRODUCT_ID = prod.ProductID; row.STEP_ID = stepID; row.TARGET_DATE = pt.CalcDate; row.TARGET_SHIFT = targetShift; row.DEMAND_ID = pt.FabMoPlan.DemandID; row.DEMAND_PRODUCT_ID = pt.FabMoPlan.PreMoPlan.ProductID; row.DEMAND_PLAN_DATE = pt.FabMoPlan.DueDate; row.DEMAND_QTY = pt.FabMoPlan.Qty; row.TARGET_KEY = pt.TargetKey; row.STEP_TYPE = stepType; row.SEQ = pt.Seq++; // GetSequence(step, stepType, isExtraAdd); if (isOut) { row.TARGET_IN_QTY = 0; row.TARGET_OUT_QTY = Convert.ToDecimal(pt.CalcQty); } else { row.TARGET_IN_QTY = Convert.ToDecimal(pt.CalcQty); row.TARGET_OUT_QTY = 0; } //InTarget용(BuildInPlan) if (isExtraAdd) { row.TARGET_IN_QTY = Convert.ToDecimal(pt.CalcQty); row.TARGET_OUT_QTY = Convert.ToDecimal(pt.CalcQty); } OutputMart.Instance.StepTarget.Add(row); } }