예제 #1
0
        public void Upload(CUploadData ud)
        {
            string re  = "";
            string msg = "";

            uploadSAP(ud.Data as CCancelUpload, out re, out msg);
        }
예제 #2
0
        /// <summary>
        /// 取出队列中第一个上传任务,进行上传,上传完成后删除这条
        /// </summary>
        public void Upload()
        {
            CUploadData task = null;

            if (CurrentUploadQueue.Count > 0)
            {
                lock (_lockObject)
                {
                    // 取出任务上传
                    task = CurrentUploadQueue.Dequeue() as CUploadData;
                }
            }

            if (task != null)
            {
                //upload
                SapResult re = SAPDataService.UploadJianHuoData(task.Data as CJianHuoUpload);
                if (re.SUCCESS)
                {
                    SqliteDataService.delUploadFromSqlite(task.Guid);
                }
                else
                {
                    SqliteDataService.updateMsgToSqlite(task.Guid, re.MSG);
                    OnUploaded?.Invoke(task.Data as CJianHuoUpload, re);
                }
            }
        }
예제 #3
0
        private void savingDataThreadFunc()
        {
            while (true)
            {
                try
                {
                    if (mCancel)
                    {
                        return;
                    }

                    CUploadData ud = getQueueData();

                    if (ud != null)
                    {
                        YKBoxInfo upData = ud.Data as YKBoxInfo;
                        if (upData != null)
                        {
                            //upload
                            string uploadRe = "";
                            string sapMsg   = "";

                            SapResult result = SAPDataService.UploadYKBoxInfo(SysConfig.LGNUM, upData);
                            uploadRe = result.STATUS;
                            sapMsg   = result.MSG;

                            if (uploadRe == "E")
                            {
                                SqliteDataService.updateMsgToSqlite(ud.Guid, sapMsg);
                                playSoundWarn();
                            }
                            else
                            {
                                SqliteDataService.delUploadFromSqlite(ud.Guid);
                            }

                            upData.SapRemark = result.MSG;
                            upData.SapStatus = result.STATUS;

                            //save
                            YKBoxService.SaveBox(upData);

                            if (upData.Status == "S" && uploadRe == "S")
                            {
                                updateBoxList(upData);
                                UpdateTotalInfo();
                            }

                            updateUploadCount();
                            updateExpButton();
                        }
                    }
                    Thread.Sleep(500);
                }
                catch (Exception)
                {
                    //LogHelper.WriteLine(ex.Message + "\r\n" + ex.StackTrace.ToString());
                }
            }
        }
예제 #4
0
        public void saveData(CDianShangBox box)
        {
            if (box == null)
            {
                return;
            }
            try
            {
                CUploadData data = saveToSqlite(box);
                //uplad to sap
                string sapRe  = "";
                string sapMsg = "";
                SAPDataService.uploadDianShangBox(box, ref sapRe, ref sapMsg);
                box.sapRe  = sapRe;
                box.sapMsg = sapMsg;

                if (sapRe == SUCCESS)
                {
                    //save to local
                    LocalDataService.saveDianShangBox(box);

                    SqliteDataService.delUploadFromSqlite(data.Guid);
                }
                else
                {
                    SqliteDataService.updateMsgToSqlite(data.Guid, sapMsg);
                }
            }
            catch (Exception ex)
            {
                Log4netHelper.LogError(ex);
            }
        }
예제 #5
0
        public void uploadSAP(CCancelUpload uploadData, out string sapRe, out string sapMsg)
        {
            sapRe  = "";
            sapMsg = "";

            CUploadData ud = new CUploadData();

            ud.Guid       = Guid.NewGuid().ToString();
            ud.Data       = uploadData;
            ud.IsUpload   = 0;
            ud.CreateTime = DateTime.Now;
            SqliteDataService.saveToSqlite(ud);

            //upload
            SAPDataService.UploadCancelData(uploadData, ref sapRe, ref sapMsg);

            if (sapRe != "S")
            {
                SqliteDataService.updateMsgToSqlite(ud.Guid, sapMsg);
                playSoundWarn();
            }
            else
            {
                SqliteDataService.delUploadFromSqlite(ud.Guid);
            }
        }
예제 #6
0
        public void Upload(CUploadData ud)
        {
            CDianShangBox box = ud.Data as CDianShangBox;

            saveAndUpdate(box);
            addgrid(box);
        }
예제 #7
0
        public static void saveToSqlite(CUploadData d)
        {
            string sql    = string.Format("INSERT INTO UploadData(Guid,Data,IsUpload,CreateTime) VALUES('{0}','{1}',0,'{2}')", d.Guid, JsonConvert.SerializeObject(d.Data), d.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));
            int    result = SqliteDBHelp.ExecuteSql(sql);

            if (result <= 0)
            {
                LogHelper.WriteLine(JsonConvert.SerializeObject(d.Data));
            }
        }
예제 #8
0
        public CUploadData saveToSqlite(CDianShangBox data)
        {
            CUploadData cu = new CUploadData();

            cu.Guid       = Guid.NewGuid().ToString();
            cu.IsUpload   = 0;
            cu.Data       = data;
            cu.CreateTime = DateTime.Now;
            SqliteDataService.saveToSqlite(cu);
            return(cu);
        }
예제 #9
0
        private void btnReupload_Click(object sender, EventArgs e)
        {
            List <DataGridViewRow> rows = GetCheckedRows();

            if (rows != null && rows.Count > 0)
            {
                foreach (DataGridViewRow row in rows)
                {
                    CUploadData box = row.Tag as CUploadData;
                    SqliteDataService.delUploadFromSqlite(box.Guid);
                    mParent.addToSavingQueue(box.Data as YKBoxInfo);
                }
                MetroMessageBox.Show(this, "成功加入上传队列", "提示");
                initData();
            }
        }
예제 #10
0
        public void addToSavingQueue(YKBoxInfo uploadData)
        {
            CUploadData ud = new CUploadData();

            ud.Guid       = Guid.NewGuid().ToString();
            ud.Data       = uploadData;
            ud.IsUpload   = 0;
            ud.CreateTime = DateTime.Now;
            SqliteDataService.saveToSqlite(ud);

            lock (savingDataLockObject)
            {
                savingData.Enqueue(ud);
            }

            updateUploadCount();
        }
예제 #11
0
        private void btnReturn_Click(object sender, EventArgs e)
        {
            if (grid.SelectedRows.Count > 0)
            {
                if (MetroMessageBox.Show(this, "确认要清除记录吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.OK)
                {
                    foreach (DataGridViewRow row in grid.SelectedRows)
                    {
                        CUploadData box = row.Tag as CUploadData;
                        SqliteDataService.delUploadFromSqlite(box.Guid);
                    }

                    MetroMessageBox.Show(this, "成功清除", "提示");
                    initData();
                }
            }
        }
예제 #12
0
        CUploadData getQueueData()
        {
            CUploadData re = null;

            try
            {
                lock (savingDataLockObject)
                {
                    if (savingData.Count > 0)
                    {
                        return(savingData.Dequeue());
                    }
                }
            }
            catch (Exception) { }
            return(re);
        }
예제 #13
0
        private void btnReupload_Click(object sender, EventArgs e)
        {
            List <DataGridViewRow> rows = GetCheckedRows();

            if (rows != null && rows.Count > 0)
            {
                foreach (DataGridViewRow row in rows)
                {
                    CUploadData data = row.Tag as CUploadData;
                    SqliteDataService.delUploadFromSqlite(data.Guid);
                    CJJBox box = data.Data as CJJBox;
                    mParent.saveAndUpdate(box);
                    mParent.addgrid(box);
                }
                initData();
            }
        }
예제 #14
0
        public void updateSAP(YKBoxInfo uploadData)
        {
            CUploadData ud = new CUploadData();

            ud.Guid       = Guid.NewGuid().ToString();
            ud.Data       = uploadData;
            ud.IsUpload   = 0;
            ud.CreateTime = DateTime.Now;
            SqliteDataService.saveToSqlite(ud);

            YKBoxInfo upData = ud.Data as YKBoxInfo;

            if (upData == null)
            {
                return;
            }

            string uploadRe = "";
            string sapMsg   = "";

            SapResult result = SAPDataService.UploadYKBoxInfo(SysConfig.LGNUM, upData);

            uploadRe = result.STATUS;
            sapMsg   = result.MSG;

            if (uploadRe == "E")
            {
                SqliteDataService.updateMsgToSqlite(ud.Guid, sapMsg);
            }
            else
            {
                SqliteDataService.delUploadFromSqlite(ud.Guid);
            }

            upData.SapRemark = result.MSG;
            upData.SapStatus = result.STATUS;

            //save
            YKBoxService.SaveBox(upData);

            if (upData.Status == "S" && uploadRe == "S")
            {
                updateBoxList(upData);
                UpdateTotalInfo();
            }
        }
예제 #15
0
        private void logicCheck(ref CheckResult result)
        {
            try
            {
                Dictionary <string, CJianHuoContrastRe> re = contrastEpc();
                bool conOK = isContrastReOK(re);
                if (!conOK)
                {
                    result.InventoryResult = false;
                    result.UpdateMessage("异常");
                }
                else
                {
                    result.UpdateMessage(Consts.Default.RIGHT);
                }
                // add grid
                addGrid(re);
                //print
                if (conOK)
                {
                    PrintHelper.PrintRightTag(getPrintRightData());
                }
                else
                {
                    PrintHelper.PrintErrorTag(getPrintErrorData());
                }
                //save upload
                LocalDataService.SaveJianHuoInfo(mCurBoxNo, mCurJieHuoDan.PICK_LIST, re.Values.ToList());

                CJianHuoUpload uploadData = getUploadData(re);

                CUploadData cu = new CUploadData();
                cu.Guid       = Guid.NewGuid().ToString();
                cu.IsUpload   = 0;
                cu.Data       = uploadData;
                cu.CreateTime = DateTime.Now;
                SqliteDataService.saveToSqlite(cu);

                UploadServer.GetInstance().AddToQueue(cu);
            }
            catch (Exception e)
            {
                Log4netHelper.LogError(e);
            }
        }
예제 #16
0
 private void btnReupload_Click(object sender, EventArgs e)
 {
     if (grid.SelectedRows.Count > 0)
     {
         Thread t = new Thread(new ThreadStart(() =>
         {
             ShowLoading("正在上传...");
             foreach (DataGridViewRow row in grid.SelectedRows)
             {
                 CUploadData box = row.Tag as CUploadData;
                 SqliteDataService.delUploadFromSqlite(box.Guid);
                 mUploadMethod.Upload(box);
             }
             initData();
             HideLoading();
         }));
         t.IsBackground = true;
         t.Start();
     }
 }
예제 #17
0
        public static List <CUploadData> GetAllUploadFromSqlite <T>()
        {
            List <CUploadData> result = new List <CUploadData>();

            string    sql = string.Format("SELECT Guid,Data,IsUpload,CreateTime,MSG FROM UploadData order by CreateTime");
            DataTable dt  = SqliteDBHelp.GetTable(sql);

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    CUploadData ud = new CUploadData();
                    ud.Guid       = row["Guid"].ToString();
                    ud.Data       = JsonConvert.DeserializeObject <T>(row["Data"].ToString());
                    ud.IsUpload   = uint.Parse(row["IsUpload"].ToString());
                    ud.CreateTime = DateTime.Parse(row["CreateTime"].ToString());
                    ud.MSG        = row["MSG"].ToString();
                    result.Add(ud);
                }
                return(result);
            }
            return(result);
        }