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));
            }
        }
Exemple #2
0
        /// <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;
            }
        }