public static void InsertUploadData(UploadEbBoxInfo data) { string sql = string.Format("INSERT INTO UploadData(Guid,Data,IsUpload,CreateTime) VALUES('{0}','{1}',0,'{2}')", data.Guid, JsonConvert.SerializeObject(data), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); int result = SqliteDBHelp.ExecuteSql(sql); if (result <= 0) { LogHelper.WriteLine(JsonConvert.SerializeObject(data)); } }
/// <summary> /// 取出队列中第一个上传任务,进行上传,上传完成后删除这条 /// </summary> public void Upload() { lock (_lockObject) { if (isbusy) { return; } else { isbusy = true; } if (CurrentUploadQueue.Count > 0) { // 取出任务上传 object o = CurrentUploadQueue.Pop(); if (o.GetType() == typeof(UploadEbBoxInfo)) { UploadEbBoxInfo box = o as UploadEbBoxInfo; bool isUpload = SAPDataService.UploadEbBoxInfo(box.LGNUM, box.EQUIP_HLA, box.HU, box.ChangeTime, box.InventoryResult, box.ErrorMsg, box.SubUser, box.TagDetailList); if (isUpload) { SqliteDataService.DeleteUploaded(box.Guid); //删除已上传成功的数据 } else { box.RetryTimes++; if (box.RetryTimes < 3) //最多重试3次 { CurrentUploadQueue.Push(o); } else { SqliteDataService.DeleteUploaded(box.Guid); //删除超过3次上传失败的数据 LogHelper.WriteLine(JsonConvert.SerializeObject(box)); //并记录日志,防止将来还需要使用 } } } else if (o.GetType() == typeof(EbBoxCheckRecordInfo)) { EbBoxCheckRecordInfo record = o as EbBoxCheckRecordInfo; LocalDataService.InsertEbCheckRecord(record, HLACommonLib.Model.ENUM.CheckType.电商收货复核); } else if (o.GetType() == typeof(EbBoxErrorRecordInfo)) { EbBoxErrorRecordInfo record = o as EbBoxErrorRecordInfo; LocalDataService.InsertEbBoxErrorRecord(record, HLACommonLib.Model.ENUM.CheckType.电商收货复核); } } isbusy = false; } }