예제 #1
0
파일: FBurn.cs 프로젝트: windygu/.net-wms
        private void CheckAndRunOnWip()
        {
            if (txtRunningCard.Value.Trim() == string.Empty)
            {
                if (!this.txtGOMO.Checked)
                {
                    txtMO.Value               = String.Empty;
                    txtItem.Value             = String.Empty;
                    labelItemDescription.Text = "";
                }

                ApplicationRun.GetInfoForm().AddEx("$CS_Please_Input_RunningCard");

                //将焦点移到产品序列号输入框
                txtRunningCard.TextFocus(false, true);
                return;
            }
            else
            {
                DBDateTime        dbDateTime        = FormatHelper.GetNowDBDateTime(this.DataProvider);
                BurnFacade        burnFacade        = new BurnFacade(this.DataProvider);
                DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider);
                string            sourceCard        = dataCollectFacade.GetSourceCard(this.txtRunningCard.Value.Trim().ToUpper(), string.Empty);

                if (this.txtGOMO.Checked && this.txtGOMO.Value.Trim().Length == 0)
                {
                    ApplicationRun.GetInfoForm().AddEx("$CS_CMPleaseInputMO");
                    this.txtGOMO.Checked = true;
                    this.txtGOMO.TextFocus(false, true);
                    return;
                }

                if (this.txtGOMO.Checked && this.txtGOMO.InnerTextBox.Enabled)
                {
                    ApplicationRun.GetInfoForm().AddEx("$CS_PleasePressEnterOnGOMO");
                    this.txtGOMO.Checked = true;
                    this.txtGOMO.TextFocus(false, true);
                    return;
                }
                // End Added
                //Add by sandy on 20140528
                if (rdoBurnIn.Checked && rdoNG.Checked)
                {
                    UserControl.Message message = new UserControl.Message(MessageType.Error, "$CS_BurnIn_Can_Not_NG");
                    ApplicationRun.GetInfoForm().AddEx(this._FunctionName, this.txtRunningCard.Caption + ": " + this.txtRunningCard.Value, message, true);
                    txtRunningCard.TextFocus(false, true);
                    return;
                }
                //end
                if (txtRunningCard.Value.Trim().ToUpper() == ng_collect)
                {
                    rdoNG.Checked      = true;
                    rdoBurnOut.Checked = true;
                    txtRunningCard.TextFocus(false, true);
                    return;
                }

                //Jarvis 20130125 支持GOOD指令
                if (txtRunningCard.Value.Trim().ToUpper() == good_collect)
                {
                    rdoGood.Checked = true;
                    txtRunningCard.TextFocus(false, true);
                    return;
                }
                //Add by sandy on 20140528
                if (txtRunningCard.Value.Trim().ToUpper() == ActionType.DataCollectAction_BurnIn)
                {
                    rdoGood.Checked   = true;
                    rdoBurnIn.Checked = true;
                    txtRunningCard.TextFocus(false, true);
                    return;
                }

                if (txtRunningCard.Value.Trim().ToUpper() == ActionType.DataCollectAction_BurnOutGood)
                {
                    rdoGood.Checked    = true;
                    rdoBurnOut.Checked = true;
                    txtRunningCard.TextFocus(false, true);
                    return;
                }

                if (txtRunningCard.Value.Trim().ToUpper() == ActionType.DataCollectAction_BurnOutNG)
                {
                    rdoNG.Checked      = true;
                    rdoBurnOut.Checked = true;
                    txtRunningCard.TextFocus(false, true);
                    return;
                }

                //End

                //add by hiro.chen 08/11/18 TocheckIsDown
                Messages msg = new Messages();
                msg.AddMessages(dataCollectFacade.CheckISDown(sourceCard.Trim().ToUpper()));
                if (!msg.IsSuccess())
                {
                    ApplicationRun.GetInfoForm().AddEx(this._FunctionName, this.txtRunningCard.Caption + ":" + this.txtRunningCard.Value, msg, true);
                    txtRunningCard.TextFocus(false, true);
                    return;
                }
                //end

                //报废不能返工
                msg.AddMessages(dataCollectFacade.CheckReworkRcardIsScarp(sourceCard.Trim().ToUpper(), ApplicationService.Current().ResourceCode));
                if (!msg.IsSuccess())
                {
                    ApplicationRun.GetInfoForm().AddEx(this._FunctionName, this.txtRunningCard.Caption + ":" + this.txtRunningCard.Value, msg, true);
                    txtRunningCard.TextFocus(false, true);
                    return;
                }
                //end

                //Laws Lu,2005/10/19,新增	缓解性能问题
                //Laws Lu,2006/12/25 修改	减少Open/Close的次数
                ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = false;
                ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection();

                //Laws Lu,2005/08/16,修改	把msg换成globeMSG
                globeMSG = CheckProduct();

                // Added by Icyer 2005/10/28
                if (Resource == null)
                {
                    BenQGuru.eMES.BaseSetting.BaseModelFacade dataModel = new BenQGuru.eMES.BaseSetting.BaseModelFacade(this.DataProvider);
                    Resource = (Domain.BaseSetting.Resource)dataModel.GetResource(ApplicationService.Current().ResourceCode);
                }
                actionCheckStatus             = new ActionCheckStatus();
                actionCheckStatus.ProductInfo = product;

                if (actionCheckStatus.ProductInfo != null)
                {
                    actionCheckStatus.ProductInfo.Resource = Resource;
                }

                string strMoCode = String.Empty;
                if (product != null && product.LastSimulation != null)
                {
                    strMoCode = product.LastSimulation.MOCode;
                }

                if (strMoCode != String.Empty)
                {
                    if (listActionCheckStatus.ContainsKey(strMoCode))
                    {
                        actionCheckStatus             = (ActionCheckStatus)listActionCheckStatus[strMoCode];
                        actionCheckStatus.ProductInfo = product;
                        actionCheckStatus.ActionList  = new ArrayList();
                    }
                    else
                    {
                        listActionCheckStatus.Add(strMoCode, actionCheckStatus);
                    }
                }
                //Amoi,Laws Lu,2005/08/02,修改

                if (txtGOMO.Checked == true)
                {
                    globeMSG.AddMessages(RunGOMO(actionCheckStatus));

                    if (!globeMSG.IsSuccess())
                    {
                        listActionCheckStatus.Clear();
                    }
                }
                else
                {
                    if (product != null && product.LastSimulation != null)
                    {
                        this.txtMO.Value               = product.LastSimulation.MOCode;
                        this.txtItem.Value             = product.LastSimulation.ItemCode;
                        this.labelItemDescription.Text = this.GetItemDescription(product.LastSimulation.ItemCode, GlobalVariables.CurrentOrganizations.First().OrganizationID);
                    }
                    else
                    {
                        this.txtMO.Value               = "";
                        this.txtItem.Value             = "";
                        this.labelItemDescription.Text = "";
                    }
                }
                //EndAmoi

                //老化进和老化出工序不能同时勾选
                BaseModelFacade baseModelFacade = new BaseModelFacade(this.DataProvider);
                ItemFacade      itemFacade      = new ItemFacade(this.DataProvider);
                object          objOP           = baseModelFacade.GetOperationByResource(ApplicationService.Current().ResourceCode);
                if (product != null && product.LastSimulation != null && objOP != null)
                {
                    object objOp = itemFacade.GetItemRoute2Operation(this.txtItem.Value, product.LastSimulation.RouteCode,
                                                                     ((Operation2Resource)objOP).OPCode);
                    if (objOp != null)
                    {
                        opControl = ((ItemRoute2OP)objOp).OPControl;
                        if (opControl[(int)OperationList.BurnIn] == isSelected && opControl[(int)OperationList.BurnOut] == isSelected)
                        {
                            globeMSG.Add(new UserControl.Message(MessageType.Error, "$CS_BurnInOut_Can_Not_Choose_Together"));
                        }
                    }
                }
                //老化未达到预计时间且不是强制老化时不可做老化出良品采集
                if (!isForce && globeMSG.IsSuccess() && rdoBurnOut.Checked && rdoGood.Checked && product.LastSimulation != null)
                {
                    object  objBurnWip = burnFacade.GetBurnWip(sourceCard.Trim().ToUpper(), product.LastSimulation.MOCode);
                    BurnWip burnWip    = objBurnWip as BurnWip;
                    if (objBurnWip != null && burnWip.Status == BurnType.BurnIn)
                    {
                        DateTime dtForecast = FormatHelper.ToDateTime(burnWip.ForecastOutDate, burnWip.ForecastOutTime);
                        if (dbDateTime.DateTime < dtForecast)
                        {
                            globeMSG.Add(new UserControl.Message(MessageType.Error, "$CS_Burn_Time_Not_Enough"));
                        }
                    }
                }

                if (globeMSG.IsSuccess())
                {
                    this.RunOnWip();
                }
            }
            //刷新grid
            this.BindGrid();
            //Laws Lu,2005/10/19,新增	缓解性能问题
            //Laws Lu,2006/12/25 修改	减少Open/Close的次数
            ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.CloseConnection();
            ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = true;

            //将焦点移到产品序列号输入框
            ApplicationRun.GetInfoForm().AddEx(this._FunctionName, this.txtRunningCard.Caption + ": " + this.txtRunningCard.Value, globeMSG, true);

            //Application.DoEvents();
            txtRunningCard.TextFocus(false, true);

            globeMSG.ClearMessages();
        }