private void CheckImportData(DataTable importTable, int stockSysNo, out List <TrackingNumberInfo> successResult, out List <TrackingNumberInfo> failedResult) { successResult = new List <TrackingNumberInfo>(); failedResult = new List <TrackingNumberInfo>(); foreach (DataRow row in importTable.Rows) { TrackingNumberInfo entity = new TrackingNumberInfo() { OrderID = Convert.ToString(row["OrderID"]), OrderType = Convert.ToString(row["OrderType"]), InvoiceNumber = Convert.ToString(row["InvoiceNumber"]), TrackingNumber = Convert.ToString(row["TrackingNumber"]), StockSysNo = stockSysNo }; if (string.IsNullOrEmpty(entity.OrderID)) { if (string.IsNullOrEmpty(entity.OrderID) && string.IsNullOrEmpty(entity.OrderType) && string.IsNullOrEmpty(entity.InvoiceNumber) && string.IsNullOrEmpty(entity.TrackingNumber)) { continue; } failedResult.Add(entity); } else { successResult.Add(entity); } } }
public bool DisableTrackingNumber(string id) { TrackingNumberInfo model = new TrackingNumberInfo(); List <TrackingNumberDetailInfo> trackingNumberDetailInfo = new List <TrackingNumberDetailInfo>(); trackingNumberDetailInfo = _trackingNumberDetailInfoRepository.GetList(p => p.TrackingNumberID == id); model = _trackingNumberInfoRepository.Get(id); if (model != null) { if (trackingNumberDetailInfo.Count > 0) { foreach (var row in trackingNumberDetailInfo) { if (row.Status == 1) { row.Status = 3; _trackingNumberDetailInfoRepository.Modify(row); } } } model.Status = 2; _trackingNumberInfoRepository.Modify(model); _trackingNumberInfoRepository.UnitOfWork.Commit(); _trackingNumberDetailInfoRepository.UnitOfWork.Commit(); return(true); } return(false); }
public TrackingNumberInfo CreateTrackingNumber(TrackingNumberInfo entity) { CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("InsertTrackingNumber"); dataCommand.SetParameterValue(entity); var suffix = GetStockSuffix(entity.StockSysNo.Value); dataCommand.CommandText = dataCommand.CommandText .Replace("Invoice_TrackingNumber", "Invoice_TrackingNumber_" + suffix); entity.SysNo = Convert.ToInt32(dataCommand.ExecuteScalar()); return(entity); }
public void UpdateTrackingNumber(TrackingNumberInfo trackingNumberInfo) { throw new NotImplementedException(); }
public void AddTrackingNumber(TrackingNumberInfo trackingNumberInfo) { _trackingNumberInfoRepository.Add(trackingNumberInfo); _trackingNumberInfoRepository.UnitOfWork.Commit(); }
/// <summary> /// 上传跟踪号 /// Add by zhengsong /// 修复不同运输方式可能重复的问题 , /// 对跟踪号分批进行全表对比 , /// 同时加入并行运算提升性能 /// by daniel 2014-11-1 /// </summary> /// <param name="model"></param> /// <returns></returns> public List <TrackingNumberDetailInfo> UploadTrackingNumberList(TrackingNumberInfo model) { Log.Info("跟踪号" + model.TrackingNumberDetailInfos.Count); TrackingNumberInfo tn = new TrackingNumberInfo(); ConcurrentBag <TrackingNumberDetailInfo> errors = new ConcurrentBag <TrackingNumberDetailInfo>(); Log.Info("开始查找重复的跟踪号..."); var duplicateTrackNumbers = GetRepeatedTrackNumbers(model.TrackingNumberDetailInfos.ToList()); Log.Info("查找重复的跟踪号OK."); Parallel.ForEach(model.TrackingNumberDetailInfos, t => //foreach (var t in model.TrackingNumberDetailInfos) { if (duplicateTrackNumbers.Contains(t.TrackingNumber)) { errors.Add(t); } }); if (errors.Count < 1) { tn.TrackingNumberID = model.TrackingNumberID; tn.ShippingMethodID = model.ShippingMethodID; tn.ApplianceCountry = model.ApplianceCountry; tn.Status = model.Status; tn.CreatedBy = model.CreatedBy; tn.CreatedNo = model.CreatedNo; tn.LastUpdateOn = model.LastUpdateOn; tn.LastUpdatedBy = model.LastUpdatedBy; tn.ApplianceCountry = model.ApplianceCountry; ConcurrentBag <TrackingNumberDetailInfo> dataList = new ConcurrentBag <TrackingNumberDetailInfo>(); //排除有问题的跟踪号 var good = model.TrackingNumberDetailInfos.Except(errors); Log.Info("准备插入的数据..." + good.Count()); //插入的数据 Parallel.ForEach(good, row => { TrackingNumberDetailInfo detail = new TrackingNumberDetailInfo(); detail.TrackingNumber = row.TrackingNumber.ToUpperInvariant(); detail.TrackingNumberID = model.TrackingNumberID; detail.Status = (short)TrackingNumberDetailInfo.StatusEnum.NotUsed; detail.WayBillNumber = ""; dataList.Add(detail); }); Log.Info("准备的数据OK." + dataList.Count); if (dataList.Count > 0) { Log.Info("开始保存数据..."); using (var trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0))) { AddTrackingNumber(tn); _wayBillInfoRepository.BulkInsert("TrackingNumberDetailInfos", dataList.ToList()); trans.Complete(); } Log.Info("保存数据完成."); } return(dataList.ToList()); } else { return(errors.ToList()); } }
public virtual TrackingNumberInfo CreateTrackingNumber(TrackingNumberInfo entity) { return(DA.CreateTrackingNumber(entity)); }