Example #1
0
        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));
            }
        }
Example #2
0
        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));
            }
        }
Example #3
0
        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));
            }
        }