public void addgrid(CDianShangBox box) { try { List <string> mats = box.tags.Select(i => i.MATNR).Distinct().ToList(); Invoke(new Action(() => { foreach (var item in mats) { int c = box.tags.Count(i => i.MATNR == item && !i.IsAddEpc); CDianShangQty qty = new CDianShangQty(); if (box.qty.Exists(i => i.mat == item)) { qty = box.qty.FirstOrDefault(i => i.mat == item); } TagDetailInfo ti = box.tags.First(i => i.MATNR == item && !i.IsAddEpc); grid.Rows.Insert(0, box.hu, ti.ZSATNR, ti.ZCOLSN, ti.ZSIZTX, c, qty.hasQty, qty.allQty, box.inventoryMsg + " " + "SAP:" + box.sapMsg); if (box.inventoryRe == "E" || box.sapRe == FAILURE) { grid.Rows[0].DefaultCellStyle.BackColor = Color.OrangeRed; } } })); } catch (Exception) { } }
CheckResult check(string hu, out List <CDianShangQty> qtys) { CheckResult re = CheckData(); qtys = new List <CDianShangQty>(); if (button3_start.Enabled) { re.UpdateMessage("请点击开始按钮"); re.InventoryResult = false; } if (string.IsNullOrEmpty(hu)) { re.UpdateMessage(WEI_SAO_DAO_XIANGHU); re.InventoryResult = false; return(re); } //是否已经扫描过了 if (mCurDanBoxList.Exists(i => i.hu == hu && i.inventoryRe == "S" && i.sapRe == SUCCESS)) { if (boxSame(hu)) { re.UpdateMessage(HAS_SAOMIAO_CHONGTOU); re.InventoryResult = false; } else { re.UpdateMessage(HAS_SAOMIAO_YICHANG); re.InventoryResult = false; } } //epc 是否扫描过了 string sameEpcHu = ""; if (sameEpc(out sameEpcHu)) { re.UpdateMessage(string.Format("商品已扫描 {0}", sameEpcHu)); re.InventoryResult = false; } List <string> notInDoc = checkInDoc(); if (notInDoc.Count > 0) { string msg = ""; foreach (var v in notInDoc) { msg += v; msg += " "; } re.UpdateMessage(msg + " 不在本单"); re.InventoryResult = false; } /* * Dictionary<string, int> moreBar = checkTagQty(); * if(moreBar.Count>0) * { * string msg = ""; * foreach(var v in moreBar) * { * msg += string.Format(v.Key + "超量" + v.Value); * msg += " "; * } * re.UpdateMessage(msg); * re.InventoryResult = false; * }*/ List <string> matList = tagDetailList.Select(i => i.MATNR).Distinct().ToList(); foreach (var v in matList) { int curQty = 0; foreach (var box in mCurDanBoxList) { if (box.inventoryRe == "S" && box.sapRe == SUCCESS) { curQty += box.tags.Count(j => j.MATNR == v && !j.IsAddEpc); } } CDianShangQty dsq = new CDianShangQty(); dsq.mat = v; dsq.curQty = tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc); dsq.hasQty = curQty; if (mJiaoJieDan.dsData.Exists(i => i.barcd == v)) { dsq.allQty = mJiaoJieDan.dsData.FirstOrDefault(i => i.barcd == v).qty; } qtys.Add(dsq); } foreach (var v in qtys) { if (v.allQty > 0 && v.curQty + v.hasQty > v.allQty) { re.UpdateMessage("超量"); re.InventoryResult = false; break; } } return(re); }