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); }
/// <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; } }
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(); } }
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); } } }
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); }