Exemplo n.º 1
0
        public List <FabLot> GetWipList(WipType wipType)
        {
            if (wipType == WipType.Total)
            {
                List <FabLot> list = new List <FabLot>();

                List <FabLot> wait = GetWipList(WipType.Wait, false);
                List <FabLot> run  = GetWipList(WipType.Run, false);

                if (wait != null)
                {
                    list.AddRange(wait);
                }

                if (run != null)
                {
                    list.AddRange(run);
                }


                return(list);
            }
            else
            {
                return(GetWipList(wipType, false));
            }
        }
Exemplo n.º 2
0
        public int GetWips(WipType wipType, string productVersion)
        {
            List <FabLot> list = GetWipList(wipType);

            if (list == null)
            {
                return(0);
            }

            int wipQty = 0;

            foreach (FabLot lot in list)
            {
                if (LcdHelper.IsEmptyID(productVersion))
                {
                    wipQty += lot.UnitQty;
                }
                else if (lot.OrigProductVersion == productVersion)
                {
                    wipQty += lot.UnitQty;
                }
            }

            return(wipQty);
        }
Exemplo n.º 3
0
 public LotLocation(FabLot lot, EventType type)
 {
     this.Lot       = lot;
     this.Location  = lot.CurrentFabStep;
     this.EventType = type;
     this.WipType   = SetWipType();
 }
Exemplo n.º 4
0
        public void Remove(WipType type, FabLot lot)
        {
            List <FabLot> list = GetWipList(type);

            if (list != null)
            {
                list.Remove(lot);
            }
        }
Exemplo n.º 5
0
        public List <FabLot> GetStepWipList(FabStep step, WipType wipType)
        {
            WipVar wipVar;

            if (_stepWips.TryGetValue(step, out wipVar))
            {
                return(wipVar.GetWipList(wipType));
            }

            return(new List <FabLot>());
        }
Exemplo n.º 6
0
        private WipType SetWipType()
        {
            WipType type = WipType.Wait;

            if (this.EventType == EventType.TrackIn)
            {
                type = WipType.Run;
            }


            return(type);
        }
Exemplo n.º 7
0
        public void RemoveWip(WipType type, FabLot lot, FabStep step)
        {
            WipVar wipVar;

            _stepWips.TryGetValue(step, out wipVar);

            if (wipVar == null)
            {
                return;
            }

            wipVar.Remove(type, lot);
        }
Exemplo n.º 8
0
        public List <FabLot> GetWipList(WipType wipType, bool create)
        {
            List <FabLot> list;

            WipList.TryGetValue(wipType, out list);

            if (create && list == null)
            {
                WipList.Add(wipType, list = new List <FabLot>());
            }

            return(list);
        }
Exemplo n.º 9
0
        public decimal ArriveWithin(WipType type)
        {
            if (type == WipType.Run)
            {
                return(_qtyRun);
            }

            if (type == WipType.Wait)
            {
                return(_qtyWait);
            }

            return(_qtyRun + _qtyWait);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Step의 수량 구하는 함수
        /// </summary>
        public int GetStepWips(FabStep step, WipType wipType, string productVersion = null)
        {
            if (productVersion == null)
            {
                productVersion = Constants.NULL_ID;
            }

            WipVar wipVar;

            if (_stepWips.TryGetValue(step, out wipVar))
            {
                return(wipVar.GetWips(wipType, productVersion));
            }

            return(0);
        }
Exemplo n.º 11
0
        //TODO : jung, Master에 있어야함.
        public List <FabLot> GetStepWipList(List <JobState> jobList, FabStep step, WipType wipType, string ProductVer)
        {
            List <FabLot> result = new List <FabLot>();

            if (jobList == null || jobList.Count == 0)
            {
                return(result);
            }

            foreach (var item in jobList)
            {
                result.AddRange(item.GetStepWipList(step, wipType, ProductVer));
            }

            return(result);
        }
Exemplo n.º 12
0
        //TODO : jung, Master에 있어야 함
        private int GetStepWips(List <JobState> jobList, FabStep step, WipType wipType, string productVersion)
        {
            if (jobList == null || jobList.Count == 0)
            {
                return(0);
            }

            int wips = 0;

            foreach (JobState jobState in jobList)
            {
                wips += jobState.GetStepWips(step, wipType, productVersion);
            }

            return(wips);
        }
Exemplo n.º 13
0
        internal List <FabLot> GetPrevStepWipList(FabStep currentStep, WipType wipType, string productVersion)
        {
            List <FabLot> list      = new List <FabLot>();
            var           prevSteps = currentStep.GetPrevSteps(this.ProductID);

            foreach (FabStep prev in prevSteps)
            {
                if (currentStep.NeedVerCheck == false || prev.NeedVerCheck == false)
                {
                    productVersion = Constants.NULL_ID;
                }

                list.AddRange(GetStepWipList(prev, wipType, productVersion));
            }

            return(list);
        }
Exemplo n.º 14
0
        public decimal ArriveWithin(FabStep step, WipType type)
        {
            decimal arriveInQty = 0;

            foreach (WipStep ws in this.WipStepList)
            {
                if (ws.TargetStep != step)
                {
                    arriveInQty += ws.LastPt2D.Y;
                    continue;
                }

                return(arriveInQty + ws.ArriveWithin(type));
            }

            return(LastPt2D.Y);
        }
Exemplo n.º 15
0
        public static int GetStepWipQty(FabStdStep stdStep, WipType type)
        {
            int qty = 0;

            foreach (var item in InFlowMaster.JobStateDic.Values)
            {
                foreach (var step in item.StepWips.Keys)
                {
                    if (step.StdStep != stdStep)
                    {
                        continue;
                    }

                    qty += item.StepWips[step].GetWips(type, Constants.NULL_ID);
                }
            }

            return(qty);
        }
Exemplo n.º 16
0
        public List <FabLot> GetStepWipList(FabStep step, WipType wipType, string productVer)
        {
            List <FabLot> list   = GetStepWipList(step, wipType);
            List <FabLot> result = new List <FabLot>();

            if (list == null)
            {
                return(result);
            }

            foreach (var lot in list)
            {
                if (LcdHelper.IsEmptyID(productVer))
                {
                    result.Add(lot);
                }
                else if (lot.OrigProductVersion == productVer)
                {
                    result.Add(lot);
                }
            }

            return(result);
        }
Exemplo n.º 17
0
        public static int GetStepWipQtyforLayerBalance(List <FabStdStep> steps)
        {
            int qty = 0;

            int stepcnt = steps.Count;

            for (int i = 0; i < stepcnt; i++)
            {
                WipType type = WipType.Total;

                if (i == 0)
                {
                    type = WipType.Run;
                }
                else if (i == stepcnt - 1)
                {
                    type = WipType.Wait;
                }

                qty += GetStepWipQty(steps[i], type);
            }

            return(qty);
        }
Exemplo n.º 18
0
        public Dictionary <FabStep, WipType> GetStepPositions(decimal qty)
        {
            Dictionary <FabStep, WipType> stepPositions = new Dictionary <FabStep, WipType>();

            foreach (WipStep ws in this.WipStepList)
            {
                WipType wipType = WipType.Total;
                if (TargetStep == ws.TargetStep)
                {
                    wipType = WipType.Wait;
                }

                if (ws.LastPt2D.Y >= qty)
                {
                    wipType = ws.GetWipPosition(qty);
                    stepPositions.Add(ws.TargetStep, wipType);
                    return(stepPositions);
                }

                stepPositions.Add(ws.TargetStep, wipType);
            }

            return(stepPositions);
        }