public static MicronBEAssyBatch CreateBatch(MicronBEAssyBELot lot) { try { AssyMcpProduct aoProd = lot.Product.GetAssyOutProduct(); if (aoProd == null) { return(null); } string aoProdID = aoProd.ProductID; Tuple <string, string> key = Tuple.Create(aoProdID, lot.LineID); MicronBEAssyBatch batch; if (InputMart.Instance.MicronBEAssyBatch.TryGetValue(key, out batch) == false) { batch = new MicronBEAssyBatch(); batch.AoProdID = aoProdID; batch.LineID = lot.LineID; SimulationHelper.SetSteps(batch, lot.Product); InputMart.Instance.MicronBEAssyBatch.Add(key, batch); } return(batch); } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); return(default(MicronBEAssyBatch)); } }
public static void SetSteps(MicronBEAssyBatch batch, Product product) { try { if (product.IsMcp()) { AssyMcpProduct mcpProduct = null; if (product is AssyMcpPart) { mcpProduct = (product as AssyMcpPart).FinalProduct as AssyMcpProduct; } else { mcpProduct = product as AssyMcpProduct; } foreach (AssyMcpPart mcpPart in mcpProduct.AllParts) { //if (mcpPart.IsMain == false) // continue; MicronBEAssyProcess proc = mcpPart.Process as MicronBEAssyProcess; int seq = mcpPart.CompSeq; //if (proc.ProcessType == ProcessType.COW) //{ // if (mcpPart.IsMidPart == false && mcpPart.IsBase)//COW 1차는 Merge 후 2차 DA에서 진행하기 때문에 없다고 판단해야함. // { // continue; // } //} AddSteps(batch, proc, seq); } AddSteps(batch, mcpProduct.Process as MicronBEAssyProcess, mcpProduct.MaxSequence); } else { AddSteps(batch, product.Process as MicronBEAssyProcess, 1); } } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); } }
private static void AddSteps(MicronBEAssyBatch batch, MicronBEAssyProcess proc, int seq) { try { foreach (MicronBEAssyBEStep step in proc.Steps) { //if (step.StepGroup == StepGroup.NONE) // continue; string key = step.StepID; if (batch.StepList.ContainsKey(key) == false) { batch.StepList.Add(key, step); } } } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); } }