/// <summary> /// 获取DCode /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { string line = this.Line; string lineAs = ""; if (line != null && line.Length > 0) { lineAs = line.Substring(0, 1); } else { lineAs = " "; } DateTime dt = DateTime.Now; string year = string.Empty; string month = string.Empty; year = dt.Year.ToString().Substring(dt.Year.ToString().Length - 1, 1); switch (dt.Month.ToString()) { case "10": month = "A"; break; case "11": month = "B"; break; case "12": month = "C"; break; default: month = dt.Month.ToString().Substring(dt.Month.ToString().Length - 1, 1); break; } string preSeqStr = year + lineAs + month; string likecont = preSeqStr + "{0}"; NumControl numCtrl = null; INumControlRepository numCtrlRepository = RepositoryFactory.GetInstance().GetRepository<INumControlRepository, NumControl>(); string type = "PizzaID"; try { SqlTransactionManager.Begin(); lock (_syncRoot_GetSeq) { bool insOrUpd = true; //string maxMo = numCtrlRepository.GetMaxNumber(type, likecont); string seq = string.Empty; string maxSeqStr = string.Empty; string maxNumStr = string.Empty; bool ChongQingIs = false; //流水码的取得 //numCtrl = numCtrlRepository.GetMaxNumberObj(type, likecont); numCtrl = numCtrlRepository.GetMaxValue(type, preSeqStr); //檢查有沒有lock index, 沒有lock index, 改變查詢條件 if (numCtrl == null) { //lock NoType='PizzaID' //string maxData = numCtrlRepository.GetMaxNumber(type, "{0}"); //numCtrl = numCtrlRepository.GetMaxNumberObj(type, likecont); NumControl data = numCtrlRepository.GetMaxValue(type, "Lock"); numCtrl = numCtrlRepository.GetMaxValue(type, preSeqStr); } //if (string.IsNullOrEmpty(maxMo)) if (numCtrl == null) { seq = "200000"; insOrUpd = true; IPartRepository partRepository = RepositoryFactory.GetInstance().GetRepository<IPartRepository, IPart>(); ArrayList retList = new ArrayList(); IList<string> valueList = new List<string>(); valueList = partRepository.GetValueFromSysSettingByName("Site"); if (valueList.Count == 0) { } else { if (valueList[0] == "ICC") { ChongQingIs = true; } } if (ChongQingIs == true) { seq = "500000"; } } else { string maxMo = numCtrl.Value; seq = maxMo.Substring(maxMo.Length - 6, 6); insOrUpd = false; // if (seq.ToUpper() == "499999") // { /*List<string> errpara = new List<string>(); throw new FisException("CHK162", errpara);*/ // } //IList<NumControl> numCtrlLst = numCtrlRepository.GetNumControlByNoTypeAndValue(type, maxMo); //int numCtrlId = numCtrlLst[0].ID; //numCtrl = numCtrlRepository.Find(numCtrlId); } if (insOrUpd) { maxNumStr = seq; } else { if (seq.ToUpper() == "499999") { maxNumStr = "200000"; } else if (seq.ToUpper() == "999999") { maxNumStr = "500000"; } else { int num = Convert.ToInt32(seq); num += 1; maxNumStr = num.ToString(); int len = maxNumStr.Length; for (var i = 0; i < 6 - len; i++) { maxNumStr = "0" + maxNumStr; } } } maxSeqStr = preSeqStr + maxNumStr; CurrentSession.AddValue(Session.SessionKeys.PizzaID, maxSeqStr); if (insOrUpd) { //numCtrlRepository.Add(new NumControl(0, type, string.Empty, maxSeqStr, this.Customer), CurrentSession.UnitOfWork); //numCtrlRepository.InsertNumControl(new NumControl(0, type, string.Empty, maxSeqStr, this.Customer)); numCtrlRepository.InsertNumControl(new NumControl(0, type, preSeqStr, maxSeqStr, this.Customer)); } else { numCtrl.Value = maxSeqStr; //numCtrl.NOType = "PizzaID"; //numCtrl.NOName = ""; //numCtrl.Customer = this.Customer; numCtrlRepository.SaveMaxNumber(numCtrl, false); //numCtrlRepository.SaveMaxNumber(numCtrl, false, preSeqStr + "{0}"); //numCtrlRepository.Update(numCtrl, CurrentSession.UnitOfWork); } //CurrentSession.AddValue(Session.SessionKeys.PrintLogName, Station); //CurrentSession.AddValue(Session.SessionKeys.PrintLogBegNo, maxSeqStr); //CurrentSession.AddValue(Session.SessionKeys.PrintLogEndNo, maxSeqStr); //CurrentSession.AddValue(Session.SessionKeys.PrintLogDescr, ""); } string pizzaIDList = (string)CurrentSession.GetValue(Session.SessionKeys.PizzaID); Pizza NewPizza = new Pizza(); NewPizza.PizzaID = pizzaIDList; NewPizza.MMIID = ""; string model =(string) CurrentSession.GetValue(Session.SessionKeys.ModelName); if (!string.IsNullOrEmpty(model)) { NewPizza.Model=model; } IProduct currentProduct = (IProduct)CurrentSession.GetValue(Session.SessionKeys.Product); if (currentProduct != null) { currentProduct.PizzaID = pizzaIDList; CurrentSession.AddValue(Session.SessionKeys.Product, currentProduct); } CurrentSession.AddValue(Session.SessionKeys.Pizza, NewPizza); Pizza CurrentPizza = (Pizza)CurrentSession.GetValue(Session.SessionKeys.Pizza); PizzaStatus currentPizzaStatus = new PizzaStatus(); currentPizzaStatus.Editor = this.Editor; if (null == this.Line) { currentPizzaStatus.LineID = ""; } else { currentPizzaStatus.LineID = this.Line; } PizzaLog pizzaLog=new PizzaLog(); pizzaLog.Cdt = DateTime.Now; pizzaLog.Station = this.Station; pizzaLog.Line = this.Line; pizzaLog.Editor = this.Editor; pizzaLog.Model = model; pizzaLog.PizzaID = CurrentPizza.PizzaID; CurrentPizza.AddPizzaLog(pizzaLog); currentPizzaStatus.PizzaID = CurrentPizza.PizzaID; pizzaLog.Descr = ""; //currentPizzaStatus.StationID = "00"; currentPizzaStatus.StationID = this.Station; CurrentPizza.MMIID = ""; CurrentPizza.Status = currentPizzaStatus; IPizzaRepository currentPizzaRepository = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository, Pizza>(); currentPizzaRepository.Add(CurrentPizza, CurrentSession.UnitOfWork); SqlTransactionManager.Commit(); } catch (Exception e) { SqlTransactionManager.Rollback(); throw e; } finally { SqlTransactionManager.Dispose(); SqlTransactionManager.End(); } return base.DoExecute(executionContext); }
public void AddPizzaLog(PizzaLog log) { if (log == null) return; lock (_syncObj_parts) { object naught = this.PizzaLogs; log.Tracker = _tracker.Merge(log.Tracker); this._logs.Add(log); this._tracker.MarkAsAdded(log); this._tracker.MarkAsModified(this); } }
private void UpdatePizza(ref IList<string> updatePizzas, string station, string changeCartonSN) { IPizzaRepository pizzaRepository = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository, Pizza>(); foreach (string PizzaID in updatePizzas) { Pizza pizza = pizzaRepository.Find(PizzaID); if (pizza == null) { throw new NullReferenceException("Pizza in session is null"); //continue; } if (null != changeCartonSN) pizza.CartonSN = changeCartonSN; if (null != pizza.Status) pizza.Status.StationID = station; string line = string.IsNullOrEmpty(this.Line) ? pizza.Status.LineID : this.Line; var PizzaLog = new PizzaLog { Model = pizza.Model, Editor = Editor, Line = line, Station = Station, Descr = "", PizzaID = pizza.PizzaID, Cdt = DateTime.Now }; pizza.AddPizzaLog(PizzaLog); pizzaRepository.Update(pizza, CurrentSession.UnitOfWork); } }
/// <summary> /// Unpack Offline Pizza /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { List<string> errpara = new List<string>(); IProductRepository prodRep = RepositoryFactory.GetInstance().GetRepository<IProductRepository, IProduct>(); IPizzaRepository pizzaRepository = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository, Pizza>(); string pizzaId = this.Key; Pizza p = pizzaRepository.Find(pizzaId); if (null == p) { var ex = new FisException("CHK100", new string[] { pizzaId }); throw ex; } if ((null == p.Status) || !("PKJOK".Equals(p.Status.StationID) || "PKJROK".Equals(p.Status.StationID))) { var ex = new FisException("CHK1046", new string[] { }); throw ex; } IProduct prod = prodRep.GetProductByPizzaID(pizzaId); if ((null != prod) || (!string.IsNullOrEmpty(p.CartonSN))) { var ex = new FisException("CHK1047", new string[] { }); throw ex; } pizzaRepository.BackUpPizzaStatusDefered(CurrentSession.UnitOfWork, pizzaId, CurrentSession.Editor); pizzaRepository.BackUpPizzaPartDefered(CurrentSession.UnitOfWork, pizzaId, CurrentSession.Editor); PizzaPart delpizza = new PizzaPart(); delpizza.PizzaID = pizzaId; pizzaRepository.DeletePizzaPartDefered(CurrentSession.UnitOfWork, delpizza); p.Status.StationID = this.Station; string line = string.IsNullOrEmpty(this.Line) ? p.Status.LineID : this.Line; var PizzaLog = new PizzaLog { Model = p.Model, Editor = Editor, Line = line, Station = Station, Descr = "", PizzaID = p.PizzaID, Cdt = DateTime.Now }; p.AddPizzaLog(PizzaLog); pizzaRepository.Update(p, CurrentSession.UnitOfWork);
private void UpdatePizza(Pizza pizza, string station, string changeCartonSN) { IPizzaRepository pizzaRepository = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository, Pizza>(); if (null != changeCartonSN) pizza.CartonSN = changeCartonSN; if (null != pizza.Status) pizza.Status.StationID = station; string line = string.IsNullOrEmpty(this.Line) ? pizza.Status.LineID : this.Line; var PizzaLog = new PizzaLog { Model = pizza.Model, Editor = Editor, Line = line, Station = Station, Descr = "", PizzaID = pizza.PizzaID, Cdt = DateTime.Now }; pizza.AddPizzaLog(PizzaLog); pizzaRepository.Update(pizza, CurrentSession.UnitOfWork); }
/// <summary> /// Wrint Pizza Log /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { if (Editor.Trim() == "") logger.Error("Editor from activity is empty!"); string line = default(string); var PizzaRepository = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository,Pizza>(); if (IsSingle) { Pizza pizza = CurrentSession.GetValue(Session.SessionKeys.Pizza) as Pizza; if (pizza == null) { throw new NullReferenceException("Pizza in session is null"); } line = string.IsNullOrEmpty(this.Line) ? pizza.Status.LineID : this.Line; var PizzaLog = new PizzaLog { Model = pizza.Model, Editor = Editor, Line = line, Station = Station, Descr="", PizzaID=pizza.PizzaID, Cdt = DateTime.Now }; pizza.AddPizzaLog(PizzaLog); PizzaRepository.Update(pizza, CurrentSession.UnitOfWork); } else { var pizzaNoList = CurrentSession.GetValue(Session.SessionKeys.PizzaNoList) as List<string>; if (pizzaNoList == null) { throw new NullReferenceException("PizzaNoList in session is null"); } foreach (var pizzaNo in pizzaNoList) { Pizza pizzaObj=PizzaRepository.Find(pizzaNo); line = string.IsNullOrEmpty(this.Line) ? pizzaObj.Status.LineID : this.Line; var PizzaLog = new PizzaLog { Model = pizzaObj.Model, Editor = Editor, Line = line, Station = Station, Descr = "", PizzaID = pizzaObj.PizzaID, Cdt = DateTime.Now }; pizzaObj.AddPizzaLog(PizzaLog); PizzaRepository.Update(pizzaObj, CurrentSession.UnitOfWork); } } return base.DoExecute(executionContext); }
/// <summary> /// Update Pizza Status and Log /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { var PizzaRepository = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository, Pizza>(); var pizzaNoList = CurrentSession.GetValue(Session.SessionKeys.PizzaNoList) as List<string>; if (pizzaNoList == null) { throw new NullReferenceException("PizzaNoList in session is null"); } foreach (var pizzaNo in pizzaNoList) { Pizza pizzaObj = PizzaRepository.Find(pizzaNo); if (!string.IsNullOrEmpty(CartonSNName)) { string cartonSN = CurrentSession.GetValue(CartonSNName) as string; if (!string.IsNullOrEmpty(cartonSN)) { pizzaObj.CartonSN = cartonSN; } } pizzaObj.Status.StationID = Station; pizzaObj.Status.Editor = Editor; pizzaObj.Status.Udt = DateTime.Now; var PizzaLog = new PizzaLog { Model = pizzaObj.Model, Editor = Editor, Line = Line, Station = Station, Descr = "", PizzaID = pizzaObj.PizzaID, Cdt = DateTime.Now }; pizzaObj.AddPizzaLog(PizzaLog); PizzaRepository.Update(pizzaObj, CurrentSession.UnitOfWork); } return base.DoExecute(executionContext); }