Beispiel #1
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            //上传销售数据
            var selectDate = this.dtpDate.Value;

            AppContext.Log.Info("开始手动上传{0}数据", selectDate.ToString());
            var orders = _saleService.QueryUploadSaleOrders(selectDate);

            if (orders.Count == 0)
            {
                MessageBox.Show("今天暂时没有可上传的销售数据", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            //班次数据
            var works = _workScheduleService.GetWorkList(selectDate, ContextService.StoreId, ContextService.PosId);

            try
            {
                int totalTasks = orders.Count + works.Count + 1;
                //上传销售数据
                for (var i = 0; i < orders.Count; i++)
                {
                    var model = orders[i];
                    Thread.Sleep(5);
                    _syncService.Send(model);
                    int persent = (int)Math.Round((decimal)(i + 1) / totalTasks * 100, 0);
                    this.backgroundWorker1.ReportProgress(persent);
                }
                //上传班次数据
                for (var j = 0; j < works.Count; j++)
                {
                    var workModel = works[j];
                    _syncService.Send(workModel);
                    int persent = (int)Math.Round((decimal)(orders.Count + 1) / totalTasks * 100, 0);
                    this.backgroundWorker1.ReportProgress(persent);
                }
                //上传汇总数据,报告最后一个任务
                _syncService.UploadSaleSync(this.dtpDate.Value);
                // int LastPersent = (int)Math.Round((decimal)(totalTasks) / totalTasks * 100, 0);
                this.backgroundWorker1.ReportProgress(100);
                AppContext.Log.Info("结束手动上传{0}数据", selectDate.ToString());
            }
            catch (Exception ex)
            {
                AppContext.Log.Error(ex);
            }
        }