Example #1
0
        // 생산
        public int ProductionMachine()
        {
            try
            {
                Service          service = new Service();
                MessageEventArgs me      = new MessageEventArgs();
                string           msg     = string.Empty;

                // currentQty = 현재투입량, RequestQty = 요청수량
                for (int currentQty = 0; currentQty < RequestQty; currentQty++)
                {
                    iTotalCnt++;
                    bool IsSuccess = IsSuccessItem(); // true => 양품 false => 불량품
                    Thread.Sleep(new Random().Next(1300, 1720));

                    int itemQuality = 0;

                    if (IsSuccess)
                    {
                        itemQuality = 1;
                    }
                    else
                    {
                        currentQty--;
                    }


                    iSuccess += itemQuality;
                    iDefect   = iTotalCnt - iSuccess;

                    // 생산중( 생산실적아이디, 생산성공개수, 실패개수)
                    service.Producing(PerformanceID, itemQuality, 1 - itemQuality);

                    //생산중 - 모니터링 화면

                    // 라인아이디, 요청개수, 진행개수 ,성공개수, 실패개수
                    msg        = string.Join(",", LineID, RequestQty, iTotalCnt, iSuccess, iDefect);
                    me.Message = msg;

                    if (MsgSender != null)
                    {
                        MsgSender.Invoke(this, me);
                    }
                }

                // 생산 완료 ( 재고 감소 )
                Thread.Sleep(3000);
                service.EndProduce(PerformanceID);

                // 생산 완료 - 모니터링 화면
                // 라인아이디, 요청개수, 진행개수, 성공개수, 실패개수) -- 최종


                return(iTotalCnt);
            }
            catch (Exception ex)
            {
                Program.Log.WriteError(ex.Message, ex);
                new Service().EndProduce(PerformanceID);
                Debug.WriteLine(ex.Message);
                Debug.WriteLine(ex);
                return(iTotalCnt);
            }
        }