public Messages Execute(ActionEventArgs actionEventArgs) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); Messages msgAutoGoMO = new Messages(); // Added by Icyer 2007/03/09 try { // Added by Icyer 2007/03/09 // 检测自动归属工单 ActionGoToMO actionGoToMO = new ActionGoToMO(this.DataProvider); msgAutoGoMO = actionGoToMO.AutoGoMO(actionEventArgs); // Added end // Added by Icyer 2006/12/03 // 自动做Undo messages.AddMessages((new ActionUndoNG(this.DataProvider)).UndoNG(actionEventArgs)); // Added end ActionOnLineHelper dataCollect = new ActionOnLineHelper(this.DataProvider); //填写SIMULATION 检查工单、ID、途程、操作 messages.AddMessages(dataCollect.CheckID(actionEventArgs)); if (messages.IsSuccess()) { //Laws Lu,2005/08/15,新增 完工逻辑,在其他Check都通过的情况下,所有的RunningCard应该是GOOD状态 //暂时不考虑线外工序 DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider); if (actionEventArgs.ProductInfo.NowSimulation.RouteCode != "" && dataCollectFacade.OPIsMORouteLastOP( actionEventArgs.ProductInfo.NowSimulation.MOCode , actionEventArgs.ProductInfo.NowSimulation.RouteCode , actionEventArgs.ProductInfo.NowSimulation.OPCode)) { actionEventArgs.ProductInfo.NowSimulation.IsComplete = "1"; actionEventArgs.ProductInfo.NowSimulation.EAttribute1 = "GOOD"; //完工自动入库 dataCollectFacade.AutoInventory(actionEventArgs.ProductInfo.NowSimulation, actionEventArgs.UserCode); } //End Laws Lu messages.AddMessages(dataCollect.Execute(actionEventArgs)); if (messages.IsSuccess()) { // 自动产生送检批 messages.AddMessages(this.GenerateLot(actionEventArgs)); //if (messages.IsSuccess()) //{ // //填写测试报表 TODO // ReportHelper reportCollect = new ReportHelper(this.DataProvider); // messages.AddMessages(reportCollect.ReportLineQuanMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo)); // messages.AddMessages(reportCollect.ReportResQuanMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo)); //} } } } catch (Exception e) { messages.Add(new Message(e)); } dataCollectDebug.WhenFunctionOut(messages); //return messages; if (msgAutoGoMO.Count() < 1 || (msgAutoGoMO.IsSuccess() == true && messages.IsSuccess() == false)) { return(messages); } else { msgAutoGoMO.IgnoreError(); msgAutoGoMO.AddMessages(messages); return(msgAutoGoMO); } }
/// <summary> /// 不良品采集 /// </summary> /// <param name="domainDataProvider"></param> /// <param name="iD"></param> /// <param name="actionType"></param> /// <param name="resourceCode"></param> /// <param name="userCode"></param> /// <param name="product"></param> /// <param name="datas1"></param> /// <param name="datas2"></param> /// <returns></returns> public Messages Execute(ActionEventArgs actionEventArgs, ActionCheckStatus actionCheckStatus) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); Messages msgAutoGoMO = new Messages(); // Added by Icyer 2007/03/09 try { // Added by Icyer 2007/03/09 // 检测自动归属工单 ActionGoToMO actionGoToMO = new ActionGoToMO(this.DataProvider); msgAutoGoMO = actionGoToMO.AutoGoMO(actionEventArgs); // Added end //检查ErrorCode,ErrorGroup是否正确 TODO //如果CS能确保ErrorCode,ErrorGroup是正确的,此处逻辑可以去掉 // Added by Icyer 2006/12/03 // 自动做Undo messages.AddMessages((new ActionUndoNG(this.DataProvider)).UndoNG(actionEventArgs)); // Added end ActionOnLineHelper dataCollect = new ActionOnLineHelper(this.DataProvider); //填写SIMULATION 检查工单、ID、途程、操作 messages.AddMessages(dataCollect.CheckID(actionEventArgs, actionCheckStatus)); if (messages.IsSuccess()) { //补充SIMULATION 不良信息 actionEventArgs.ProductInfo.NowSimulation.ProductStatus = ProductStatus.NG; actionEventArgs.ProductInfo.NowSimulation.NGTimes = actionEventArgs.ProductInfo.NowSimulation.NGTimes + 1; if (actionEventArgs.CurrentMO != null) { actionEventArgs.ProductInfo.NowSimulation.RMABillCode = actionEventArgs.CurrentMO.RMABillCode; } else { MO mo = (new MOFacade(DataProvider)).GetMO(actionEventArgs.ProductInfo.NowSimulation.MOCode) as MO; actionEventArgs.CurrentMO = mo; actionEventArgs.ProductInfo.NowSimulation.RMABillCode = mo.RMABillCode; } if (actionCheckStatus.NeedUpdateSimulation) { messages.AddMessages(dataCollect.Execute(actionEventArgs)); } else { messages.AddMessages(dataCollect.Execute(actionEventArgs, actionCheckStatus)); } if (messages.IsSuccess()) { if (actionCheckStatus.NeedFillReport == true) { //Laws Lu,2005/12/19,新增 获取ErrorGroup2ErrorCode if (actionEventArgs.ActionType == ActionType.DataCollectAction_NG) { actionEventArgs.ProductInfo.ECG2ErrCodes = ParseECG2Errs(((TSActionEventArgs)actionEventArgs).ErrorCodes, actionEventArgs.ActionType); } else { actionEventArgs.ProductInfo.ECG2ErrCodes = ParseECG2Errs(((TSActionEventArgs)actionEventArgs).ErrorInfor, actionEventArgs.ActionType); } //ReportHelper reportCollect = new ReportHelper(this.DataProvider); //messages.AddMessages(reportCollect.ReportLineQuanMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo)); //messages.AddMessages(reportCollect.ReportResQuanMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo)); //if (actionEventArgs.ActionType == ActionType.DataCollectAction_NG) // messages.AddMessages(reportCollect.ReportResECMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo, ((TSActionEventArgs)actionEventArgs).ErrorCodes)); //else // messages.AddMessages(reportCollect.ReportResECMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo, ((TSActionEventArgs)actionEventArgs).ErrorInfor)); //// if (actionEventArgs.ActionType==ActionType.DataCollectAction_NG) //// messages.AddMessages(reportCollect.ReportResECMaster(this.DataProvider,actionEventArgs.ActionType,actionEventArgs.ProductInfo,((TSActionEventArgs)actionEventArgs).ErrorCodes)); //// else //// messages.AddMessages(reportCollect.ReportResECMaster(this.DataProvider,actionEventArgs.ActionType,actionEventArgs.ProductInfo,((TSActionEventArgs)actionEventArgs).ErrorInfor)); //if (actionEventArgs.ActionType == ActionType.DataCollectAction_NG) // messages.AddMessages(reportCollect.ReportLineECOQuanMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo, ((TSActionEventArgs)actionEventArgs).ErrorCodes)); //else // messages.AddMessages(reportCollect.ReportLineECOQuanMaster(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo, ((TSActionEventArgs)actionEventArgs).ErrorInfor)); } //填写测试报表 TODO if (actionEventArgs.ActionType == ActionType.DataCollectAction_SMTNG) { messages.AddMessages(dataCollect.CollectErrorInfor(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo, ((TSActionEventArgs)actionEventArgs).ErrorInfor, ((TSActionEventArgs)actionEventArgs).Memo)); } else { messages.AddMessages(dataCollect.CollectErrorInformation(this.DataProvider, actionEventArgs.ActionType, actionEventArgs.ProductInfo, ((TSActionEventArgs)actionEventArgs).ErrorCodes, null, ((TSActionEventArgs)actionEventArgs).Memo)); } // Added By Hi1/Venus.Feng on 20080711 for Hisense Version : Auto Set RCard Reflow Route and OP by ErrorCode if (messages.IsSuccess() == true) { messages.AddMessages(this.SetRCardReflowByErrorCode(actionEventArgs)); } } if (messages.IsSuccess()) { DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider); dataCollectFacade.TryToDeleteRCardFromLot(actionEventArgs.RunningCard); } } } catch (Exception e) { messages.Add(new Message(e)); } dataCollectDebug.WhenFunctionOut(messages); //return messages; if (msgAutoGoMO.Count() < 1 || (msgAutoGoMO.IsSuccess() == true && messages.IsSuccess() == false)) { return(messages); } else { msgAutoGoMO.IgnoreError(); msgAutoGoMO.AddMessages(messages); return(msgAutoGoMO); } }