private void InitReworkLotNo() { string status = this.rdoNotConfirmed.Checked ? ReworkFacade.ReworkLot_Status_NEW : ReworkFacade.ReworkLot_Status_DEAL; ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); object[] tempReworkLotNo = reworkFacade.GetTempReworkLotNo(status); if (tempReworkLotNo == null) { return; } foreach (TempRework tempRework in tempReworkLotNo) { if (status == ReworkFacade.ReworkLot_Status_DEAL) { dtReworkLot.Rows.Add(new object[] { tempRework.LotNO, tempRework.TotalCount.ToString() + "/" + tempRework.TotalCount.ToString(), tempRework.ItemCode, tempRework.MaterialDescription, tempRework.MaintainUser, tempRework.MaintainDate, tempRework.MaintainTime }); } else { dtReworkLot.Rows.Add(new object[] { tempRework.LotNO, tempRework.UnConfirmedCount.ToString() + "/" + tempRework.TotalCount.ToString(), tempRework.ItemCode, tempRework.MaterialDescription, tempRework.MaintainUser, tempRework.MaintainDate, tempRework.MaintainTime }); } } this.dtReworkLot.AcceptChanges(); }
private void AddRes2ReworkSheet(string resCode, string reworkCodeListString) { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); if (_facade == null) { _facade = new BaseModelFacadeFactory(base.DataProvider).Create(); } if (reworkCodeListString.Trim().Length > 0) { string[] reworkCodeList = reworkCodeListString.Trim().ToUpper().Split(','); if (reworkCodeList == null) { reworkCodeList = new string[0]; } foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); if (reworkSheet != null) { Resource2ReworkSheet res2ReworkSheet = _facade.CreateNewResource2ReworkSheet(); res2ReworkSheet.ResourceCode = resCode; res2ReworkSheet.ItemCode = reworkSheet.ItemCode; res2ReworkSheet.LotNo = reworkSheet.LotList; res2ReworkSheet.ReworkCode = reworkSheet.ReworkCode; res2ReworkSheet.MaintainUser = this.GetUserCode(); _facade.AddResource2ReworkSheet(res2ReworkSheet); } } } }
protected override int GetRowCount() { if (facade == null) { facade = new ReworkFacade(base.DataProvider); } return(this.facade.GetReworkRangeQueryCount( FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtReworkSheetCode.Text)))); }
protected override object[] LoadDataSource(int inclusive, int exclusive) { if (facade == null) { facade = new ReworkFacade(base.DataProvider); } return(this.facade.GetReworkRangeQuery( FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtReworkSheetCode.Text)), inclusive, exclusive)); }
private string GetRouteCodeFromReworkCodeList(string reworkCodeListString) { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); string returnValue = string.Empty; //此处需要保证各个ReworkCode抓取出的NewRouteCode都相同,否则返回空字符串 if (reworkCodeListString.Trim().Length > 0) { string[] reworkCodeList = reworkCodeListString.Trim().ToUpper().Split(','); if (reworkCodeList == null) { reworkCodeList = new string[0]; } foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); if (reworkSheet == null || reworkSheet.NewRouteCode == null || reworkSheet.NewRouteCode.Trim().Length <= 0) { returnValue = string.Empty; break; } else if (returnValue.Trim().Length > 0 && string.Compare(returnValue.Trim(), reworkSheet.NewRouteCode.Trim(), true) != 0) { returnValue = string.Empty; break; } else { returnValue = reworkSheet.NewRouteCode.Trim().ToUpper(); } } } return(returnValue); }
private void InitReworkRcard() { dtReworkRcard.Rows.Clear(); this.txtTotalNumber.Value = "0"; this.txtNotSelectnNumber.Value = "0"; this.txtInput.Value = ""; int totalCount = 0; int unconfirmCount = 0; string status = ""; ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); object[] tempReworkRcard = reworkFacade.QueryReworkRcard(clickLotNo); if (tempReworkRcard != null && tempReworkRcard.Length > 0) { foreach (ReworkRcard reworkRcard in tempReworkRcard) { if (string.Compare(reworkRcard.Status, ReworkFacade.ReworkLot_Status_NEW, true) == 0) { unconfirmCount++; status = "待确认"; } else { status = "已确认"; } dtReworkRcard.Rows.Add(new object[] { reworkRcard.PalletCode, reworkRcard.RCard, status }); totalCount++; } } this.dtReworkRcard.AcceptChanges(); this.txtNotSelectnNumber.Value = unconfirmCount.ToString(); this.txtTotalNumber.Value = totalCount.ToString(); }
/// <summary> /// /// </summary> /// <param name="actionEventArgs"> </param> params (0,lotno) /// <returns></returns> public Messages Execute(ActionEventArgs actionEventArgs) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); OQCRejectEventArgs oqcRejectEventArgs = actionEventArgs as OQCRejectEventArgs; try { ActionOnLineHelper dataCollect = new ActionOnLineHelper(this.DataProvider); ActionOQCHelper oqcHelper = new ActionOQCHelper(this.DataProvider); OQCFacade oqcFacade = new OQCFacade(this.DataProvider); ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); TSFacade tsFacade = new TSFacade(this.DataProvider); //check oqcStatus #region CheckOQCLotStatus // object objOQClot = oqcFacade.GetOQCLot(oqcRejectEventArgs.OQCLotNO,OQCFacade.Lot_Sequence_Default); // if(objOQClot == null) // { // throw new Exception("$Error_OQCLotNotExisted"); // } // if( ((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_Initial) // { // throw new Exception("$Error_OQCLotNO_Cannot_Initial"); // } // if( ((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_NoExame) // { // throw new Exception("$Error_OQCLotNO_Cannot_NoExame"); // } // if( (((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_Reject)||((((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_Pass) )) // { // throw new Exception("$Error_OQCLotNO_HasComplete"); // } #endregion if (!oqcRejectEventArgs.IsForceReject) { //必须要有NG而且在送修状态的板子 if (tsFacade.HaveNewStatusCardInOQCLot(oqcRejectEventArgs.OQCLotNO, String.Empty)) { throw new Exception("$Error_OQCLotNo_HasNoTS"); } } object objLot = null; if (oqcRejectEventArgs.Lot == null) { objLot = oqcFacade.GetExamingOQCLot(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default); } else { objLot = oqcRejectEventArgs.Lot; } //update each running card reject #region 取得每个板子进行批退,填充reject,Reject2ErrorCode信息 //reject object[] RCards = null; if (oqcRejectEventArgs.CardOfLot != null) { RCards = oqcRejectEventArgs.CardOfLot; } else { RCards = oqcHelper.QueryCardOfLot(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default); } if (!oqcRejectEventArgs.IsForceReject) { int iNGCount = 0; for (int j = 0; j < RCards.Length; j++) { if (((Simulation)RCards[j]).ProductStatus == ProductStatus.NG) { iNGCount = 1; break; } } int funcNGCount = 0; funcNGCount = oqcFacade.QueryFuncTesCount(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString(), ProductStatus.NG); if (iNGCount == 0 && funcNGCount == 0) { throw new Exception("$CS_LOT_NOT_EXIST_NG"); } } #region reject errorCodes object[] objs = oqcFacade.ExtraQueryOQCLotCard2ErrorCode(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString()); Reject2ErrorCode reject2ErrorCode = reworkFacade.CreateNewReject2ErrorCode(); //Reject2ErrorCode if (objs != null) { for (int i = 0; i < objs.Length; i++) { bool needInsert = false; foreach (Simulation sim in RCards) { if (sim.RunningCard == ((OQCLotCard2ErrorCode)objs[i]).RunningCard && sim.RunningCardSequence == ((OQCLotCard2ErrorCode)objs[i]).RunningCardSequence) { needInsert = true; } } if (needInsert) { reject2ErrorCode.ErrorCode = ((OQCLotCard2ErrorCode)objs[i]).ErrorCode; reject2ErrorCode.ErrorCodeGroup = ((OQCLotCard2ErrorCode)objs[i]).ErrorCodeGroup; reject2ErrorCode.MaintainUser = actionEventArgs.UserCode; reject2ErrorCode.RunningCard = ((OQCLotCard2ErrorCode)objs[i]).RunningCard; reject2ErrorCode.RunningCardSequence = ((OQCLotCard2ErrorCode)objs[i]).RunningCardSequence + 1; reject2ErrorCode.MOCode = ((OQCLotCard2ErrorCode)objs[i]).MOCode; reject2ErrorCode.LotNo = ((OQCRejectEventArgs)actionEventArgs).OQCLotNO; reject2ErrorCode.MOSeq = ((OQCLotCard2ErrorCode)objs[i]).MOSeq; // Added by Icyer 2007/07/03 if (reworkFacade.GetReject2ErrorCode(reject2ErrorCode.ErrorCode, reject2ErrorCode.RunningCard, reject2ErrorCode.RunningCardSequence, reject2ErrorCode.ErrorCodeGroup) == null) { reworkFacade.AddReject2ErrorCode(reject2ErrorCode); } } } } #endregion #endregion #region OQCLotCheckList object objLotCheckList = oqcFacade.GetOQCLOTCheckList(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default); if (objLotCheckList != null) { OQCLOTCheckList oqcLotCheckList = objLotCheckList as OQCLOTCheckList; oqcLotCheckList.Result = OQCLotStatus.OQCLotStatus_Reject; oqcFacade.UpdateOQCLOTCheckList(oqcLotCheckList); } #endregion //把整个lot中的ID全变成reject #region 整个lot中的ID全变成reject object[] objsInTS = oqcFacade.GetOQCLot2CardInTS(string.Empty, string.Empty, string.Empty, string.Empty, oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString()); if (objsInTS == null) { oqcFacade.UpdateOQCLot2CardByOQCResult(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString(), string.Empty, string.Empty, ProductStatus.Reject, true); } else { string tmpString = string.Empty; for (int i = 0; i < objsInTS.Length; i++) { tmpString += ": " + ((OQCLot2Card)objsInTS[i]).RunningCard; } throw new Exception(String.Format("$Error_RunningCardInTS: {0}", tmpString)); } #endregion messages.AddMessages(SetReworkInformation(messages, RCards, oqcRejectEventArgs, dataCollect, reworkFacade)); #region updateOQCLot DBDateTime dbDateTime; dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider); OQCLot oqcLot = objLot as OQCLot; oqcLot.LOTStatus = OQCLotStatus.OQCLotStatus_Reject; oqcLot.DealDate = dbDateTime.DBDate; oqcLot.DealTime = dbDateTime.DBTime; oqcLot.DealUser = actionEventArgs.UserCode; oqcLot.Memo = oqcRejectEventArgs.Memo; oqcFacade.UpdateOQCLotStatus(oqcLot); #endregion if (oqcRejectEventArgs.IsAutoGenerateReworkSheet) { //ReworkSheet reworkSheet = reworkFacade.GetMaxReworkSheet(dbDateTime.DBDate); //reworkSheet.ReworkCode = reworkSheet.ReworkCode.Substring(0, 9) + Convert.ToString(int.Parse(reworkSheet.ReworkCode.Substring(9, 3)) + 1).PadLeft(3, '0'); ReworkSheet reworkSheet = new ReworkSheet(); reworkSheet.ReworkCode = oqcLot.LOTNO; reworkSheet.CreateDate = dbDateTime.DBDate; reworkSheet.CreateTime = dbDateTime.DBTime; reworkSheet.CreateUser = actionEventArgs.UserCode; reworkSheet.Department = ""; reworkSheet.EAttribute1 = ""; reworkSheet.ItemCode = (RCards[0] as Simulation).ItemCode; reworkSheet.LotList = oqcRejectEventArgs.OQCLotNO; reworkSheet.MaintainDate = dbDateTime.DBDate; reworkSheet.MaintainTime = dbDateTime.DBTime; reworkSheet.MaintainUser = actionEventArgs.UserCode; reworkSheet.MOCode = ""; reworkSheet.NeedCheck = "N"; reworkSheet.NewMOCode = ""; reworkSheet.NewOPBOMCode = ""; reworkSheet.NewOPBOMVersion = ""; reworkSheet.NewOPCode = ""; reworkSheet.NewRouteCode = ""; reworkSheet.ReasonAnalyse = ""; reworkSheet.ReworkContent = ""; reworkSheet.ReworkDate = 0; reworkSheet.ReworkHC = 0; reworkSheet.ReworkMaxQty = 0; reworkSheet.ReworkQty = RCards.Length; reworkSheet.ReworkRealQty = 0; reworkSheet.ReworkReason = oqcRejectEventArgs.Memo; reworkSheet.ReworkSourceCode = " "; reworkSheet.ReworkTime = 0; reworkSheet.ReworkType = ReworkType.REWORKTYPE_ONLINE; reworkSheet.Soluation = ""; reworkSheet.Status = ReworkStatus.REWORKSTATUS_RELEASE; reworkSheet.AutoLot = oqcRejectEventArgs.IsCreateNewLot ? "Y" : ""; reworkFacade.AddReworkSheetWithOutTrans(reworkSheet); } //add by roger.xue 2008/10/27 if (oqcRejectEventArgs.IsUnFrozen) { oqcFacade.UpdateUnFrozenOnLot(oqcRejectEventArgs.OQCLotNO, oqcRejectEventArgs.UnFrozenReason, dbDateTime.DBDate, dbDateTime.DBTime, oqcRejectEventArgs.UserCode, OQCFacade.Lot_Sequence_Default); oqcFacade.UnFreezeFrozen(oqcRejectEventArgs.OQCLotNO, oqcRejectEventArgs.UnFrozenReason, dbDateTime.DBDate, dbDateTime.DBTime, oqcRejectEventArgs.UserCode, OQCFacade.Lot_Sequence_Default); } //end add AlertFacade alertFacade = new AlertFacade(this.DataProvider); alertFacade.AlertOQCReject(oqcLot.ItemCode, oqcLot.SSCode, oqcLot.LOTNO, oqcLot.Memo); } catch (Exception e) { messages.Add(new Message(e)); } dataCollectDebug.WhenFunctionOut(messages); return(messages); }
private Messages SetReworkInformation(Messages messages, object[] Simulations, OQCRejectEventArgs actionEventArgs, ActionOnLineHelper dataCollect, ReworkFacade reworkFacade) { Messages newMessages = new Messages(); BenQGuru.eMES.TS.TSFacade tsFacade = new BenQGuru.eMES.TS.TSFacade(this.DataProvider); DataCollectFacade dcf = new DataCollectFacade(this._domainDataProvider); //ProductInfo preProduct =null; int i = 0; ActionCheckStatus actionCheckStatus = new ActionCheckStatus(); if (Resource == null) { BenQGuru.eMES.BaseSetting.BaseModelFacade dataModel = new BenQGuru.eMES.BaseSetting.BaseModelFacade(this.DataProvider); Resource = (Domain.BaseSetting.Resource)dataModel.GetResource(actionEventArgs.ResourceCode); } while (i < Simulations.Length) { try { #region 保存WIP ProductInfo productionInf = dataCollect.GetIDInfoBySimulation((Simulation)Simulations[i]); if (actionEventArgs.listActionCheckStatus.ContainsKey(productionInf.LastSimulation.MOCode)) { actionCheckStatus = (ActionCheckStatus)actionEventArgs.listActionCheckStatus[productionInf.LastSimulation.MOCode]; actionCheckStatus.ProductInfo = productionInf; actionCheckStatus.ProductInfo.Resource = Resource; // lastSimulation = productionInf.LastSimulation; actionCheckStatus.ActionList = new ArrayList(); } else { //actionCheckStatus.NeedUpdateSimulation = false; //actionCheckStatus.NeedFillReport = true; actionEventArgs.listActionCheckStatus.Add(productionInf.LastSimulation.MOCode, actionCheckStatus); } OQCRejectEventArgs oqcRejectEventArgs = new OQCRejectEventArgs( ActionType.DataCollectAction_OQCReject, ((Simulation)Simulations[i]).RunningCard, actionEventArgs.UserCode, actionEventArgs.ResourceCode, actionEventArgs.OQCLotNO, productionInf); newMessages.AddMessages(dataCollect.CheckID(oqcRejectEventArgs, actionCheckStatus)); // if (preProduct != null) // { // if (dataCollect.CompareSimulationCheck(preProduct.LastSimulation,oqcRejectEventArgs.ProductInfo.LastSimulation)) // { // dataCollect.CopyProduct(preProduct,oqcRejectEventArgs.ProductInfo); // dcf.WriteSimulationCheckOnlineOP(oqcRejectEventArgs.RunningCard,oqcRejectEventArgs.ActionType,oqcRejectEventArgs.ResourceCode, // oqcRejectEventArgs.UserCode,oqcRejectEventArgs.ProductInfo); // needCheck=false; // } // } // if (needCheck) // newMessages.AddMessages(dataCollect.CheckID(oqcRejectEventArgs)); if (!newMessages.IsSuccess()) { return(newMessages); } #region TS //Laws Lu,需要修改 曾经走过TS处理,没有考虑多次TS的情况,MOCode和Sequence也应该作为关键参数, BenQGuru.eMES.Domain.TS.TS ts = (BenQGuru.eMES.Domain.TS.TS)tsFacade.GetCardLastTSRecord(oqcRejectEventArgs.RunningCard); if (ActionType.DataCollectAction_OQCReject == oqcRejectEventArgs.ActionType && ts != null && ts.FromInputType == TS.TSFacade.TSSource_OnWIP ) { //Laws Lu,2006/07/07 修复在OQC前工序NG回流后,SN后仍然留在PK站 dcf.AdjustRouteOPOnline(oqcRejectEventArgs.RunningCard , ActionType.DataCollectAction_OQCReject , oqcRejectEventArgs.ResourceCode , oqcRejectEventArgs.UserCode , oqcRejectEventArgs.ProductInfo); //oqcRejectEventArgs.ProductInfo.NowSimulation.OPCode = op.OPCode; dcf.WriteSimulation( oqcRejectEventArgs.RunningCard , ActionType.DataCollectAction_OQCReject , oqcRejectEventArgs.ResourceCode , oqcRejectEventArgs.UserCode , oqcRejectEventArgs.ProductInfo); } #endregion //Laws Lu,2006/07/07 fix op if (oqcRejectEventArgs.ProductInfo.CurrentItemRoute2OP != null) { oqcRejectEventArgs.ProductInfo.NowSimulation.OPCode = oqcRejectEventArgs.ProductInfo.CurrentItemRoute2OP.OPCode; } else { object objNextOP = (new BaseModelFacade(DataProvider)).GetNextOperationOfRoute(oqcRejectEventArgs.ProductInfo.LastSimulation.RouteCode, oqcRejectEventArgs.ProductInfo.LastSimulation.OPCode); if (objNextOP != null) { oqcRejectEventArgs.ProductInfo.NowSimulation.OPCode = (objNextOP as Operation).OPCode; } } oqcRejectEventArgs.ProductInfo.NowSimulation.ProductStatus = ProductStatus.Reject; if (actionCheckStatus.NeedUpdateSimulation == true) { //把资源暂时替换成onwip需要正确资源 string resCode = oqcRejectEventArgs.ResourceCode; oqcRejectEventArgs.ResourceCode = actionEventArgs.rightResource; newMessages.AddMessages(dataCollect.Execute(oqcRejectEventArgs)); //转换回原来的资源 oqcRejectEventArgs.ResourceCode = resCode; } #endregion if (newMessages.IsSuccess()) { if (oqcRejectEventArgs.ProductInfo.NowSimulation == null) { throw new Exception("$System_Error"); } #region reject Reject reject = reworkFacade.CreateNewReject(); reject.ItemCode = oqcRejectEventArgs.ProductInfo.NowSimulation.ItemCode; reject.LOTNO = oqcRejectEventArgs.OQCLotNO; reject.MaintainUser = oqcRejectEventArgs.UserCode; reject.MOCode = oqcRejectEventArgs.ProductInfo.NowSimulation.MOCode; reject.ModelCode = oqcRejectEventArgs.ProductInfo.NowSimulation.ModelCode; reject.OPCode = oqcRejectEventArgs.ProductInfo.NowSimulation.OPCode; reject.RejectDate = oqcRejectEventArgs.ProductInfo.NowSimulation.MaintainDate; reject.RejectStatus = RejectStatus.Reject; reject.RejectTime = oqcRejectEventArgs.ProductInfo.NowSimulation.MaintainTime; reject.RejectUser = oqcRejectEventArgs.UserCode; reject.ResourceCode = oqcRejectEventArgs.ResourceCode; reject.RouteCode = oqcRejectEventArgs.ProductInfo.NowSimulation.RouteCode; reject.RunningCard = oqcRejectEventArgs.RunningCard; reject.RunningCardSequence = oqcRejectEventArgs.ProductInfo.NowSimulation.RunningCardSequence; reject.SegmentCode = oqcRejectEventArgs.ProductInfo.NowSimulationReport.SegmentCode; reject.SourceCard = oqcRejectEventArgs.ProductInfo.NowSimulation.SourceCard; reject.SourceCardSequence = oqcRejectEventArgs.ProductInfo.NowSimulation.SourceCardSequence; reject.StepSequenceCode = oqcRejectEventArgs.ProductInfo.NowSimulationReport.StepSequenceCode; reject.TranslateCard = oqcRejectEventArgs.ProductInfo.NowSimulation.TranslateCard; reject.TranslateCardSequence = oqcRejectEventArgs.ProductInfo.NowSimulation.TranslateCardSequence; reject.MOSeq = oqcRejectEventArgs.ProductInfo.NowSimulation.MOSeq; // Added by Icyer 2007/07/02 reworkFacade.AddReject(reject); #endregion } //Laws Lu,2005/08/25,新增 //样本如果有若干个已经经过“送修确认”转为“待修”状态(或者在维修中),那么批退不可以继续 //TSFacade tsFacade = new TSFacade(this._domainDataProvider); //Laws Lu,2005/08/25,新增 删除TS中的记录 //Laws Lu,2005/08/31,修改 只有FQC工序送修才能够被删除 if (oqcRejectEventArgs.ActionType == ActionType.DataCollectAction_OQCReject && ts != null && ts.FromInputType == TS.TSFacade.TSSource_OnWIP && ts.TSStatus == BenQGuru.eMES.Web.Helper.TSStatus.TSStatus_New) { if (ts.FromRouteCode == oqcRejectEventArgs.ProductInfo.LastSimulation.RouteCode && ts.FromOPCode == oqcRejectEventArgs.ProductInfo.LastSimulation.OPCode && ts.MOCode == oqcRejectEventArgs.ProductInfo.LastSimulation.MOCode && ts.RunningCardSequence == oqcRejectEventArgs.ProductInfo.LastSimulation.RunningCardSequence && ts.RunningCard == oqcRejectEventArgs.ProductInfo.LastSimulation.RunningCard) { tsFacade.DeleteCardInTS( oqcRejectEventArgs.ProductInfo.LastSimulation.MOCode , oqcRejectEventArgs.ProductInfo.LastSimulation.RunningCard , oqcRejectEventArgs.ProductInfo.LastSimulation.RunningCardSequence.ToString()); } } } catch (Exception ex) { newMessages.Add(new Message(ex)); } //preProduct=oqcRejectEventArgs.ProductInfo; i = i + 1; } //Laws Lu,2006/03/20 填写资源报表 //Laws Lu,2006/03/21 支持混单 Hashtable htOutput = new Hashtable(); foreach (Simulation sim in Simulations) { Simulation tmpSim = null; foreach (Simulation x in htOutput.Keys) { if (sim.MOCode == x.MOCode) { tmpSim = x; break; } } if (tmpSim != null) { htOutput[tmpSim] = Convert.ToInt32(htOutput[tmpSim]) + 1; } else { htOutput.Add(sim, 1); } } foreach (Simulation sim in htOutput.Keys) { ProductInfo product = null; Messages msgs = dataCollect.GetIDInfo(sim.RunningCard); if (msgs.IsSuccess()) { product = msgs.GetData().Values[0] as ProductInfo; } DBDateTime dbDateTime; dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider); // dcf.AdjustRouteOPOnline( // product.LastSimulation.RunningCard, // actionEventArgs.ActionType, // actionEventArgs.ResourceCode, // actionEventArgs.UserCode, // product); product.NowSimulation.MaintainUser = actionEventArgs.UserCode; product.NowSimulation.MaintainDate = dbDateTime.DBDate; product.NowSimulation.MaintainTime = dbDateTime.DBTime; product.NowSimulation.LastAction = actionEventArgs.ActionType; product.NowSimulation.ProductStatus = ProductStatus.GOOD; product.NowSimulation.ResourceCode = Resource.ResourceCode; (new DataCollectFacade(DataProvider)).WriteSimulation( product.LastSimulation.RunningCard , ActionType.DataCollectAction_OQCPass , actionEventArgs.ResourceCode , actionEventArgs.UserCode , product); product.NowSimulation.RouteCode = product.LastSimulation.RouteCode; product.NowSimulation.OPCode = product.LastSimulation.OPCode;; product.NowSimulationReport = dataCollect.FillSimulationReport(product); //dataCollect.FillOnWip(pro); //newMessages.AddMessages((new ReportHelper(DataProvider)).SetReportResQuanMaster( // DataProvider // , actionEventArgs.ActionType // , product // , 0 // , Convert.ToInt32(htOutput[sim]) // , Convert.ToInt32(htOutput[sim]))); } return(newMessages); }
protected override bool ValidateInput() { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); PageCheckManager manager = new PageCheckManager(); manager.Add(new LengthCheck(this.lblResourceCodeEdit, this.txtResourceCodeEdit, 40, true)); manager.Add(new LengthCheck(this.lblResourceDescriptionEdit, this.txtResourceDescriptionEdit, 100, false)); manager.Add(new LengthCheck(this.lblOrgIDEdit, this.DropDownListOrg, 8, true)); if (!manager.Check()) { WebInfoPublish.Publish(this, manager.CheckMessage, this.languageComponent1); return(false); } if (this.txtReworkRoute.Text.Trim().Length != 0) { object route = (new BaseModelFacade(this.DataProvider)).GetRoute(this.txtReworkRoute.Text.Trim().ToUpper()); if (route == null) { WebInfoPublish.Publish(this, "$Error_RouteNotExist", this.languageComponent1); return(false); } object route2OP = (new BaseModelFacade(this.DataProvider)).GetOperationByRouteCode(this.txtReworkRoute.Text.Trim().ToUpper()); if (route2OP == null) { WebInfoPublish.Publish(this, "$Error_RouteHasNoOperations", this.languageComponent1); return(false); } } if (this.txtReworkMo.Text.Trim().Length > 0) { string[] reworkCodeList = this.txtReworkMo.Text.Trim().ToUpper().Split(','); if (reworkCodeList == null) { reworkCodeList = new string[0]; } //返工需求单必须都存在 string errorMessage = string.Empty; foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); if (reworkSheet == null) { errorMessage += "$Error_ReworkSheet_NotExist" + " : " + reworkCode + "\n"; } } if (errorMessage.Trim().Length > 0) { WebInfoPublish.Publish(this, errorMessage, this.languageComponent1); return(false); } //保证相同产品的多张返工需求单,只能有一张没有判退批(及LotNo不能重复) List <string> itemCodeAndLotNoList = new List <string>(); foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); string itemCodeAndLotNo = reworkSheet.ItemCode + "\t" + (reworkSheet.LotList == null ? string.Empty : reworkSheet.LotList); if (itemCodeAndLotNoList.Contains(itemCodeAndLotNo)) { WebInfoPublish.Publish(this, "$Error_Res2ReworkSheetPK", this.languageComponent1); return(false); } else { itemCodeAndLotNoList.Add(itemCodeAndLotNo); } } //保证所选择的ReworkSheet的Route一致,并且存在 string routeCode = GetRouteCodeFromReworkCodeList(this.txtReworkMo.Text.Trim().ToUpper()); if (routeCode.Trim().Length <= 0) { //返工需求单的返工途程不存在或者不一致 WebInfoPublish.Publish(this, "$Error_ReworkSheetsNewRouteNotSame", this.languageComponent1); return(false); } else { object route = (new BaseModelFacade(this.DataProvider)).GetRoute(routeCode); if (route == null) { WebInfoPublish.Publish(this, "$Error_RouteNotExist", this.languageComponent1); return(false); } object route2OP = (new BaseModelFacade(this.DataProvider)).GetOperationByRouteCode(routeCode); if (route2OP == null) { WebInfoPublish.Publish(this, "$Error_RouteHasNoOperations", this.languageComponent1); return(false); } } } return(true); }
public Status(ReworkFacade reworkFacade, ReworkSheet reworkSheet) { this._reworkFacade = reworkFacade; this._reworkSheet = reworkSheet; }
public void SetUp() { persistBroker = new OLEDBPersistBroker("Provider=OraOLEDB.Oracle.1;Password=emes;Persist Security Info=True;User ID=emes;Data Source=sqcdemo"); reworkFacade = new ReworkFacade(); itemFacade = new ItemFacade(); }
private void txtInput_TxtboxKeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\r') { if (this.clickLotNo == string.Empty) { return; } string inputValue = FormatHelper.CleanString(FormatHelper.PKCapitalFormat(this.txtInput.Value)); if (inputValue == string.Empty) { return; } string rcardList = ""; if (rdoBoxNo.Checked) { DataCollectFacade dcf = new DataCollectFacade(this.DataProvider); object[] sims = dcf.GetSimulationFromCarton(FormatHelper.PKCapitalFormat(FormatHelper.CleanString(inputValue))); if (sims == null || sims.Length == 0) { ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$Error_CartonNotUsed")); this.txtInput.TextFocus(false, true); return; } foreach (Simulation sim in sims) { rcardList += sim.RunningCard + ","; } if (rcardList.Length > 0) { rcardList = rcardList.Substring(0, rcardList.Length - 1); } } else { //获取产品的最原始的序列号 DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider); string sourceRCard = dataCollectFacade.GetSourceCard(inputValue.Trim().ToUpper(), string.Empty); rcardList = sourceRCard; } ((SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = false; ((SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection(); DataProvider.BeginTransaction(); try { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); ReworkRcard reworkRcard; object obj; for (int i = 0; i < rcardList.Split(',').Length; i++) { obj = reworkFacade.GetReworkRcard(clickLotNo, rcardList.Split(',')[i]); if (obj == null) { // Not exist throw new Exception("$CS_SN_NOT_EXIST_LOT"); } reworkRcard = obj as ReworkRcard; if (string.Compare(reworkRcard.Status, ReworkFacade.ReworkLot_Status_DEAL, true) == 0) { // Duplicate throw new Exception("$CS_RcardHasBeenConfirmed"); } reworkRcard.Status = ReworkFacade.ReworkLot_Status_DEAL; reworkFacade.UpdateReworkRcard(reworkRcard); } bool needReloadLot = false; int needConfirmCount = reworkFacade.QueryReworkRcardNotConfirmCount(clickLotNo); if (needConfirmCount == 0) { object objReworkLotNo = reworkFacade.GetReworkLotNo(clickLotNo); ReworkLotNo reworkLotNo = objReworkLotNo as ReworkLotNo; reworkLotNo.Status = ReworkFacade.ReworkLot_Status_DEAL; reworkFacade.UpdateReworkLotNo(reworkLotNo); needReloadLot = true; } DataProvider.CommitTransaction(); if (needReloadLot) { this.InitUIControl(); InitReworkLotNo(); this.SelectDefaultRow(); } else { this.InitReworkRcard(); // Update Qty foreach (DataRow row in this.dtReworkLot.Rows) { if (string.Compare(row["LotNo"].ToString(), clickLotNo, true) == 0) { row["ConfirmedOrNot"] = needConfirmCount.ToString() + "/" + row["ConfirmedOrNot"].ToString().Split('/')[1]; break; } } this.dtReworkLot.AcceptChanges(); this.txtInput.TextFocus(false, true); } } catch (Exception ex) { DataProvider.RollbackTransaction(); ApplicationRun.GetInfoForm().Add(ex.Message); this.txtInput.TextFocus(false, true); } finally { ((SQLDomainDataProvider)DataProvider).PersistBroker.CloseConnection(); ((SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = true; } } }
/// <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) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); try { if (((TSActionEventArgs)actionEventArgs).OPCode == string.Empty) { throw new Exception("$CS_Sys_OutLine_LostOPParam"); } string opCode = ((TSActionEventArgs)actionEventArgs).OPCode; messages.AddMessages(this.CheckIDIn(actionEventArgs)); if (messages.IsSuccess()) { ActionOnLineHelper dataCollect = new ActionOnLineHelper(this.DataProvider); //补充SIMULATION 不良信息 if (actionEventArgs.ActionType == ActionType.DataCollectAction_OutLineReject) { actionEventArgs.ProductInfo.NowSimulation.ProductStatus = ProductStatus.Reject; actionEventArgs.ProductInfo.NowSimulation.NGTimes = actionEventArgs.ProductInfo.NowSimulation.NGTimes + 1; //2006/01/10,新增 OQCNG后将产品脱离批 actionEventArgs.ProductInfo.NowSimulation.LOTNO = String.Empty; } messages.AddMessages(dataCollect.Execute(actionEventArgs)); if (messages.IsSuccess()) { //填写Reject报表 TODO ReworkFacade rework = new ReworkFacade(this.DataProvider); Reject reject = rework.CreateNewReject(); reject.ItemCode = actionEventArgs.ProductInfo.NowSimulationReport.ItemCode; reject.MaintainDate = actionEventArgs.ProductInfo.NowSimulationReport.MaintainDate; reject.MaintainTime = actionEventArgs.ProductInfo.NowSimulationReport.MaintainTime; reject.MaintainUser = actionEventArgs.ProductInfo.NowSimulationReport.MaintainUser; reject.MOCode = actionEventArgs.ProductInfo.NowSimulationReport.MOCode; reject.ModelCode = actionEventArgs.ProductInfo.NowSimulationReport.ModelCode; reject.OPCode = actionEventArgs.ProductInfo.NowSimulationReport.OPCode; reject.RejectDate = actionEventArgs.ProductInfo.NowSimulationReport.MaintainDate; reject.RejectStatus = RejectStatus.Reject; reject.RejectTime = actionEventArgs.ProductInfo.NowSimulationReport.MaintainTime; reject.RejectUser = actionEventArgs.ProductInfo.NowSimulationReport.MaintainUser; reject.ResourceCode = actionEventArgs.ProductInfo.NowSimulationReport.ResourceCode; reject.RouteCode = ((ExtendSimulation)actionEventArgs.ProductInfo.LastSimulation).NextRouteCode; reject.RunningCard = actionEventArgs.ProductInfo.NowSimulationReport.RunningCard; reject.RunningCardSequence = actionEventArgs.ProductInfo.NowSimulationReport.RunningCardSequence; reject.SegmentCode = actionEventArgs.ProductInfo.NowSimulationReport.SegmentCode; reject.SourceCard = actionEventArgs.ProductInfo.NowSimulationReport.SourceCard; reject.SourceCardSequence = actionEventArgs.ProductInfo.NowSimulationReport.SourceCardSequence; reject.StepSequenceCode = actionEventArgs.ProductInfo.NowSimulationReport.StepSequenceCode; reject.TranslateCard = actionEventArgs.ProductInfo.NowSimulationReport.TranslateCard; reject.TranslateCardSequence = actionEventArgs.ProductInfo.NowSimulationReport.TranslateCardSequence; //reject.LOTNO ="~"; reject.OPId = "~"; reject.EAttribute1 = ((TSActionEventArgs)actionEventArgs).Memo; reject.MOSeq = actionEventArgs.ProductInfo.NowSimulation.MOSeq; // Added by Icyer 2007/07/02 rework.AddReject(reject); //reject errorcode TODO //填写测试报表 TODO object[] obj = ((TSActionEventArgs)actionEventArgs).ErrorCodes; if (obj != null) { Reject2ErrorCode reject2ErrorCode = rework.CreateNewReject2ErrorCode(); for (int i = 0; i < obj.Length; i++) { reject2ErrorCode.ErrorCode = ((ErrorCodeGroup2ErrorCode)obj[i]).ErrorCode; reject2ErrorCode.ErrorCodeGroup = ((ErrorCodeGroup2ErrorCode)obj[i]).ErrorCodeGroup; reject2ErrorCode.MaintainDate = reject.MaintainDate; reject2ErrorCode.MaintainTime = reject.MaintainTime; reject2ErrorCode.MaintainUser = reject.MaintainUser; reject2ErrorCode.MOCode = reject.MOCode; reject2ErrorCode.RunningCard = reject.RunningCard; reject2ErrorCode.RunningCardSequence = reject.RunningCardSequence; reject2ErrorCode.LotNo = reject.LOTNO; //reject2ErrorCode.LotSeq = reject.l reject2ErrorCode.MOSeq = reject.MOSeq; // Added by Icyer 2007/07/03 rework.AddReject2ErrorCode(reject2ErrorCode); } } //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)); //messages.AddMessages(reportCollect.ReportLineECOQuanMaster(this.DataProvider,actionEventArgs.ActionType,actionEventArgs.ProductInfo,((TSActionEventArgs)actionEventArgs).ErrorCodes)); // } // if (messages.IsSuccess()) // { // actionEventArgs.ProductInfo.ECG2ErrCodes = ActionTS.ParseECG2Errs(((OutLineActionEventArgs)actionEventArgs).ErrorCodes,actionEventArgs.ActionType); // // //填写测试报表 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)); // // if (actionEventArgs.ActionType == ActionType.DataCollectAction_OutLineReject) // { // messages.AddMessages( dataCollect.CollectErrorInformation(this.DataProvider, actionEventArgs.ActionType, // actionEventArgs.ProductInfo, // ((OutLineActionEventArgs)actionEventArgs).ErrorCodes, null, // ((OutLineActionEventArgs)actionEventArgs).Memo)); // messages.AddMessages(reportCollect.ReportLineECOQuanMaster(this.DataProvider,actionEventArgs.ActionType,actionEventArgs.ProductInfo,((OutLineActionEventArgs)actionEventArgs).ErrorCodes)); // } // // } // } } } catch (Exception e) { messages.Add(new Message(e)); } dataCollectDebug.WhenFunctionOut(messages); return(messages); }
public WaitingStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet) { this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_WAITING; }
public NewStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet) { this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_NEW; }
/// <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) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); try { //检查ErrorCode,ErrorGroup是否正确 TODO //如果CS能确保ErrorCode,ErrorGroup是正确的,此处逻辑可以去掉 ActionOnLineHelper dataCollect = new ActionOnLineHelper(this.DataProvider); //填写SIMULATION 检查工单、ID、途程、操作 messages.AddMessages(this.CheckIDIn(actionEventArgs)); if (messages.IsSuccess()) { messages.AddMessages(dataCollect.Execute(actionEventArgs)); if (messages.IsSuccess()) { //填写Reject报表 TODO ReworkFacade rework = new ReworkFacade(this.DataProvider); Reject reject = rework.CreateNewReject(); reject.ItemCode = actionEventArgs.ProductInfo.NowSimulationReport.ItemCode; reject.MaintainDate = actionEventArgs.ProductInfo.NowSimulationReport.MaintainDate; reject.MaintainTime = actionEventArgs.ProductInfo.NowSimulationReport.MaintainTime; reject.MaintainUser = actionEventArgs.ProductInfo.NowSimulationReport.MaintainUser; reject.MOCode = actionEventArgs.ProductInfo.NowSimulationReport.MOCode; reject.ModelCode = actionEventArgs.ProductInfo.NowSimulationReport.ModelCode; reject.OPCode = actionEventArgs.ProductInfo.NowSimulationReport.OPCode; reject.RejectDate = actionEventArgs.ProductInfo.NowSimulationReport.MaintainDate; reject.RejectStatus = RejectStatus.Reject; reject.RejectTime = actionEventArgs.ProductInfo.NowSimulationReport.MaintainTime; reject.RejectUser = actionEventArgs.ProductInfo.NowSimulationReport.MaintainUser; reject.ResourceCode = actionEventArgs.ProductInfo.NowSimulationReport.ResourceCode; reject.RouteCode = actionEventArgs.ProductInfo.NowSimulationReport.RouteCode; reject.RunningCard = actionEventArgs.ProductInfo.NowSimulationReport.RunningCard; reject.RunningCardSequence = actionEventArgs.ProductInfo.NowSimulationReport.RunningCardSequence; reject.SegmentCode = actionEventArgs.ProductInfo.NowSimulationReport.SegmentCode; reject.SourceCard = actionEventArgs.ProductInfo.NowSimulationReport.SourceCard; reject.SourceCardSequence = actionEventArgs.ProductInfo.NowSimulationReport.SourceCardSequence; reject.StepSequenceCode = actionEventArgs.ProductInfo.NowSimulationReport.StepSequenceCode; reject.TranslateCard = actionEventArgs.ProductInfo.NowSimulationReport.TranslateCard; reject.TranslateCardSequence = actionEventArgs.ProductInfo.NowSimulationReport.TranslateCardSequence; //reject.LOTNO ="~"; reject.OPId = "~"; reject.EAttribute1 = ((TSActionEventArgs)actionEventArgs).Memo; reject.MOSeq = actionEventArgs.ProductInfo.NowSimulationReport.MOSeq; // Added by Icyer 2007/07/02 rework.AddReject(reject); //reject errorcode TODO //填写测试报表 TODO object[] obj = ((TSActionEventArgs)actionEventArgs).ErrorCodes; if (obj != null) { Reject2ErrorCode reject2ErrorCode = rework.CreateNewReject2ErrorCode(); for (int i = 0; i < obj.Length; i++) { reject2ErrorCode.ErrorCode = ((ErrorCodeGroup2ErrorCode)obj[i]).ErrorCode; reject2ErrorCode.ErrorCodeGroup = ((ErrorCodeGroup2ErrorCode)obj[i]).ErrorCodeGroup; reject2ErrorCode.MaintainDate = reject.MaintainDate; reject2ErrorCode.MaintainTime = reject.MaintainTime; reject2ErrorCode.MaintainUser = reject.MaintainUser; reject2ErrorCode.MOCode = reject.MOCode; reject2ErrorCode.RunningCard = reject.RunningCard; reject2ErrorCode.RunningCardSequence = reject.RunningCardSequence; reject2ErrorCode.MOSeq = reject.MOSeq; // Added by Icyer 2007/07/03 rework.AddReject2ErrorCode(reject2ErrorCode); } } } //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)); //messages.AddMessages(reportCollect.ReportLineECOQuanMaster(this.DataProvider,actionEventArgs.ActionType,actionEventArgs.ProductInfo,((TSActionEventArgs)actionEventArgs).ErrorCodes)); } } catch (Exception e) { messages.Add(new Message(e)); } dataCollectDebug.WhenFunctionOut(messages); return(messages); }
public Messages GenerateLot(ActionEventArgs actionEventArgs) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); try { string itemCode = actionEventArgs.ProductInfo.NowSimulation.ItemCode; string rCard = actionEventArgs.ProductInfo.NowSimulation.RunningCard; string moCode = actionEventArgs.ProductInfo.NowSimulation.MOCode; ItemFacade itemFacade = new ItemFacade(this.DataProvider); BaseModelFacade baseModelFacade = new BaseModelFacade(this.DataProvider); OQCFacade oqcFacade = new OQCFacade(this.DataProvider); object item = itemFacade.GetItem(itemCode, GlobalVariables.CurrentOrganizations.First().OrganizationID); if (item == null) { messages.Add(new Message(MessageType.Error, "$Error_ItemCode_NotExist $Domain_ItemCode=" + itemCode)); return(messages); } //if (((Item)item).CheckItemOP == null || ((Item)item).CheckItemOP.Trim().Length == 0) //{ // messages.Add(new Message(MessageType.Error, "$Error_NoItemGenerateLotOPCode $Domain_ItemCode=" + itemCode)); // return messages; //} DBDateTime currentDBDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider); OQCLot lot; // Resource auto generate lotno for ReworkSheet Resource res = actionEventArgs.ProductInfo.Resource; if (res == null) { res = (Resource)baseModelFacade.GetResource(actionEventArgs.ResourceCode); actionEventArgs.ProductInfo.Resource = res; } ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); ReworkRange reworkRange = null; OQCLot currentLot = (OQCLot)oqcFacade.GetLatestOQCLot(actionEventArgs.RunningCard); if (currentLot != null && currentLot.LOTStatus == OQCLotStatus.OQCLotStatus_Reject) { reworkRange = (ReworkRange)reworkFacade.GetLatestReworkRange(actionEventArgs.RunningCard); } //产生新批的情况有两种 //情况一:返工Res(Res.ReworkRouteCode不为空),RCard有当前的返工需求单,且此返工需求单要求自动产生新批(ReworkSheet.AutoLot等于Y) //情况二:其他情况,当前工序为Item的产生批工序(当前工序等于Item.CheckItemOP) // if (res != null && res.ReworkRouteCode != null && res.ReworkRouteCode.Trim().Length > 0 && reworkRange != null && reworkRange.ReworkCode != null && reworkRange.ReworkCode.Trim().Length > 0) { object reworkSheet = reworkFacade.GetReworkSheet(reworkRange.ReworkCode); ReworkSheet rs = reworkSheet as ReworkSheet; if (rs.AutoLot != null && string.Compare(rs.AutoLot, "Y", true) == 0 && rs.LotList != null && rs.LotList.Trim().Length > 0) { //Get rework lot by oldlotno (reworkcode=oldlotno=lotlist) object rLot = oqcFacade.GetOQCLotByOldLotNo(rs.LotList); if (rLot == null) { lot = this.CreateNewLot(actionEventArgs, (Item)item, currentDBDateTime, true, rs.LotList); } else { lot = rLot as OQCLot; } } else { return(messages); } } else { if (string.Compare(((Item)item).CheckItemOP, actionEventArgs.ProductInfo.NowSimulation.OPCode, true) != 0) { return(messages); } // GetLot2Card By RCard+LotStatus if (oqcFacade.IsCardUsedByAnyLot(rCard, moCode, itemCode)) { return(messages); } else { lot = this.CreateNewLot(actionEventArgs, (Item)item, currentDBDateTime, false, ""); } } object oldLot2Card = oqcFacade.GetOQCLot2Card(actionEventArgs.ProductInfo.NowSimulation.RunningCard, actionEventArgs.ProductInfo.NowSimulation.MOCode, lot.LOTNO, lot.LotSequence); if (oldLot2Card != null) { //messages.Add(new Message(MessageType.Error, "$Error_IDHasExistedInOtherOQCLotNO $CS_LotNo=" + lot.LOTNO)); return(messages); } actionEventArgs.ProductInfo.NowSimulation.LOTNO = lot.LOTNO; actionEventArgs.ProductInfo.NowSimulationReport.LOTNO = lot.LOTNO; DataCollectFacade dataCollect = new DataCollectFacade(this.DataProvider); dataCollect.UpdateSimulation(actionEventArgs.ProductInfo.NowSimulation); dataCollect.UpdateSimulationReport(actionEventArgs.ProductInfo.NowSimulationReport); OQCLot2Card oqcLot2Card = oqcFacade.CreateNewOQCLot2Card(); oqcLot2Card.ItemCode = actionEventArgs.ProductInfo.NowSimulation.ItemCode; oqcLot2Card.CollectType = "pcs"; oqcLot2Card.LOTNO = lot.LOTNO; oqcLot2Card.LotSequence = OQCFacade.Lot_Sequence_Default; oqcLot2Card.MaintainUser = actionEventArgs.UserCode; oqcLot2Card.MaintainDate = currentDBDateTime.DBDate; oqcLot2Card.MaintainTime = currentDBDateTime.DBTime; oqcLot2Card.MOCode = actionEventArgs.ProductInfo.NowSimulation.MOCode; oqcLot2Card.ModelCode = actionEventArgs.ProductInfo.NowSimulation.ModelCode; oqcLot2Card.OPCode = actionEventArgs.ProductInfo.NowSimulation.OPCode; oqcLot2Card.ResourceCode = actionEventArgs.ProductInfo.NowSimulation.ResourceCode; oqcLot2Card.RouteCode = actionEventArgs.ProductInfo.NowSimulation.RouteCode; oqcLot2Card.RunningCard = actionEventArgs.ProductInfo.NowSimulation.RunningCard; oqcLot2Card.RunningCardSequence = actionEventArgs.ProductInfo.NowSimulation.RunningCardSequence; oqcLot2Card.SegmnetCode = actionEventArgs.ProductInfo.NowSimulationReport.SegmentCode; oqcLot2Card.ShiftCode = actionEventArgs.ProductInfo.NowSimulationReport.ShiftCode; oqcLot2Card.ShiftTypeCode = actionEventArgs.ProductInfo.NowSimulationReport.ShiftTypeCode; oqcLot2Card.Status = actionEventArgs.ProductInfo.NowSimulationReport.Status; oqcLot2Card.StepSequenceCode = actionEventArgs.ProductInfo.NowSimulationReport.StepSequenceCode; oqcLot2Card.TimePeriodCode = actionEventArgs.ProductInfo.NowSimulationReport.TimePeriodCode; //oqcLot2Card.EAttribute1 = actionEventArgs.ProductInfo.NowSimulation.CartonCode; oqcLot2Card.EAttribute1 = ""; //现在这里只能是空,后面Carton包装时候会更新为CartonCode oqcLot2Card.MOSeq = actionEventArgs.ProductInfo.NowSimulation.MOSeq; oqcFacade.AddOQCLot2Card(oqcLot2Card); // Added By Hi1/Venus.Feng on 20081027 for Hisense Version : Add Frozen by lot logic if (lot.FrozenStatus == FrozenStatus.STATUS_FRONZEN) { Frozen frozen = new Frozen(); frozen.RCard = actionEventArgs.ProductInfo.NowSimulation.RunningCard; frozen.EAttribute1 = ""; frozen.FrozenBy = lot.FrozenBy; frozen.FrozenDate = lot.FrozenDate; frozen.FrozenReason = lot.FrozenReason; int seq = 0; object[] oldFrozenRCard = oqcFacade.QueryFrozen(frozen.RCard, frozen.RCard, string.Empty, string.Empty, string.Empty, string.Empty, -1, -1, -1, -1, int.MinValue, int.MaxValue); if (oldFrozenRCard != null) { foreach (Frozen f in oldFrozenRCard) { seq = Math.Max(seq, f.FrozenSequence); } } frozen.FrozenSequence = seq + 1; frozen.FrozenStatus = FrozenStatus.STATUS_FRONZEN; frozen.FrozenTime = lot.FrozenTime; frozen.ItemCode = actionEventArgs.ProductInfo.NowSimulation.ItemCode; frozen.LotNo = lot.LOTNO; frozen.LotSequence = Convert.ToInt32(lot.LotSequence); frozen.MaintainDate = currentDBDateTime.DBDate; frozen.MaintainTime = currentDBDateTime.DBTime; frozen.MaintainUser = actionEventArgs.UserCode; frozen.MOCode = actionEventArgs.ProductInfo.NowSimulation.MOCode; frozen.ModelCode = actionEventArgs.ProductInfo.NowSimulation.ModelCode; frozen.UnfrozenBy = ""; frozen.UnfrozenDate = 0; frozen.UnfrozenReason = ""; frozen.UnfrozenTime = 0; oqcFacade.AddFrozen(frozen); } // End Added //Update tbloqclot.lotsize++ lot.LotSize = 1; oqcFacade.UpdateOQCLotSize(lot); } catch (Exception ex) { messages.Add(new Message(ex)); } dataCollectDebug.WhenFunctionOut(messages); return(messages); }
public ReleaseStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet) { this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_RELEASE; }