Пример #1
0
        private void EnqueueUploadData(UploadBoxInfo data)
        {
            SqliteUploadDataInfo ud = new SqliteUploadDataInfo();

            ud.Guid       = Guid.NewGuid().ToString();
            ud.Data       = data;
            ud.IsUpload   = 0;
            ud.CreateTime = DateTime.Now;
            PackingBoxSqliteService.InsertUploadData(ud);
            UploadServer.GetInstance().CurrentUploadQueue.Push(ud);
        }
Пример #2
0
        /// <summary>
        /// 取出队列中第一个上传任务,进行上传,上传完成后删除这条
        /// </summary>
        public void Upload()
        {
            lock (_lockObject)
            {
                if (isbusy)
                {
                    return;
                }
                else
                {
                    isbusy = true;
                }
                try
                {
                    if (CurrentUploadQueue.Count > 0)
                    {
                        // 取出任务上传
                        object o = CurrentUploadQueue.Pop();
                        if (o.GetType() == typeof(SqliteUploadDataInfo))
                        {
                            UploadBoxInfo box    = (o as SqliteUploadDataInfo).Data;
                            SapResult     result = new SapResult();
                            //if (box.Box.RESULT == "S")
                            //{
                            result = SAPDataService.UploadPackingBox(box.LGNUM, box.Box.HU, box.EQUIP_HLA, box.Box.RESULT, box.Box.MSG, box.Box.MX, box.LOUCENG, box.SUBUSER, box.Box.Details);

                            //(box.LGNUM, box.Box.HU, box.EQUIP_HLA, box.LOUCENG, box.SUBUSER, box.Box.Details);
                            box.Box.PACKMSG    = result.MSG;
                            box.Box.PACKRESULT = result.STATUS;
                            //if (!result.SUCCESS) box.Box.RESULT = "SE";
                            //if (!result.SUCCESS && OnUploadError != null) OnUploadError();
                            //}
                            if (result.STATUS == "E")
                            {
                                box.Box.Details.Clear();
                            }
                            bool xdSaveResult = PackingBoxService.SaveBox(box.Box);
                            SqliteDataService.DeleteUploaded((o as SqliteUploadDataInfo).Guid);
                            if (OnUploaded != null)
                            {
                                OnUploaded(box.Box);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
                }

                isbusy = false;
            }
        }
Пример #3
0
        private void uploadAgainButton_Click(object sender, EventArgs e)
        {
            List <PBBoxInfo> rowBoxList = new List <PBBoxInfo>();

            List <DataGridViewRow> rows = GetCheckedRows();

            if (rows != null && rows.Count > 0)
            {
                foreach (DataGridViewRow row in rows)
                {
                    PBBoxInfo box = row.Tag as PBBoxInfo;
                    if (box != null)
                    {
                        if (!rowBoxList.Exists(r => r.HU == box.HU))
                        {
                            rowBoxList.Add(box);
                        }
                    }
                }
            }

            foreach (PBBoxInfo data in rowBoxList)
            {
                UploadBoxInfo box = new UploadBoxInfo();
                box.EQUIP_HLA = SysConfig.DeviceInfo.EQUIP_HLA;
                box.LGNUM     = SysConfig.LGNUM;
                box.LOUCENG   = SysConfig.DeviceInfo.LOUCENG;
                box.SUBUSER   = SysConfig.CurrentLoginUser.UserId;
                box.Box       = data;

                SqliteUploadDataInfo ud = new SqliteUploadDataInfo();
                ud.Guid       = Guid.NewGuid().ToString();
                ud.Data       = box;
                ud.IsUpload   = 0;
                ud.CreateTime = DateTime.Now;
                PackingBoxSqliteService.InsertUploadData(ud);
                UploadServer.GetInstance().CurrentUploadQueue.Push(ud);
            }

            if (rowBoxList.Count > 0)
            {
                MetroMessageBox.Show(this, "成功加入上传列表", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Close();
            }
        }
Пример #4
0
        public override void StopInventory()
        {
            if (isInventory)
            {
                Invoke(new Action(() => {
                    lblWorkStatus.Text = "停止扫描";
                }));
                isInventory = false;
                reader.StopInventory();
                HLACommonView.Model.CheckResult result = CheckData();
                UploadBoxInfo box = GetUploadBox(result);

                if (result.InventoryResult)
                {
                    if (box.Box.Details != null && box.Box.Details.Count > 0)
                    {
                        PrintHelper.PrintRightTag(box.Box.LH,
                                                  box.Box.Details.First().ZSATNR,
                                                  box.Box.Details.First().ZCOLSN,
                                                  box.Box.Details.First().ZSIZTX,
                                                  box.Box.QTY, box.Box.HU,
                                                  SysConfig.PrinterName, box.Box.LIFNR);
                    }
                    if (!result.IsRecheck)
                    {
                        if (currentBoxList == null)
                        {
                            currentBoxList = new List <PBBoxInfo>();
                        }
                        currentBoxList.RemoveAll(i => i.HU == box.Box.HU);
                        currentBoxList.Add(box.Box);
                    }
                }
                else
                {
                    PrintHelper.PrintErrorTag(result.Message, lblHu.Text, tagDetailList, SysConfig.PrinterName);
                }
                AddBoxDetailGrid(box.Box);
                if (!result.IsRecheck)
                {
                    EnqueueUploadData(box);
                }
            }
        }
Пример #5
0
        private UploadBoxInfo GetUploadBox(HLACommonView.Model.CheckResult result)
        {
            UploadBoxInfo box = new UploadBoxInfo();

            box.EQUIP_HLA   = SysConfig.DeviceInfo.EQUIP_HLA;
            box.LGNUM       = SysConfig.LGNUM;
            box.LOUCENG     = SysConfig.DeviceInfo.LOUCENG;
            box.SUBUSER     = SysConfig.CurrentLoginUser.UserId;
            box.Box         = new PBBoxInfo();
            box.Box.EQUIP   = SysConfig.DeviceInfo.EQUIP_HLA;
            box.Box.HU      = lblHu.Text;
            box.Box.LH      = cboLh.Text;
            box.Box.QTY     = mainEpcNumber;
            box.Box.RESULT  = result.InventoryResult ? "S" : "E";
            box.Box.MSG     = result.Message;
            box.Box.MX      = IsFull ? "X" : "";
            box.Box.LIFNR   = lifnr;
            box.Box.Details = new List <PBBoxDetailInfo>();
            if (tagDetailList != null)
            {
                foreach (TagDetailInfo tag in tagDetailList)
                {
                    PBBoxDetailInfo item = new PBBoxDetailInfo();
                    item.BARCD  = tag.BARCD;
                    item.EPC    = tag.EPC;
                    item.HU     = lblHu.Text;
                    item.MATNR  = tag.MATNR;
                    item.ZCOLSN = tag.ZCOLSN;
                    item.ZSATNR = tag.ZSATNR;
                    item.ZSIZTX = tag.ZSIZTX;
                    item.IsAdd  = tag.IsAddEpc ? 1 : 0;
                    box.Box.Details.Add(item);
                }
            }

            return(box);
        }