private int GeTrSnCnt(string locid) { try { List <string> listTrSn = DBFunc.SearchTrSnFromRInventoryDetailByLocId(locid); return(listTrSn.Count); } catch (Exception ex) { Log.Error(ex.Message); Trace.WriteLine("Debug: " + ex.Message); return(-1); } }
private void ExecuteInput(string str) { try { int splitnum = 0; //分盘数量 int result = 0; bool saveTrSnFlag = false; List <string> listTrSn = new List <string>(); //本地检查并保存五合一条码 if (str.Contains("&")) { if (!CheckMaterialTrSn(str)) { ShowHint("当前输入的五合一条码不满足规则:" + str, Color.Red); return; } listTrSn.Add(str.Split('&')[0]); } else { listTrSn.Add(str); } //远程检查条码类型 if (!CheckBarcode(listTrSn[0].ToUpper(), ref result)) { return; } if (result == 1) //储位 { if (!str.Equals(MyData._lastArrive.locid)) { _allOutCnt = 0; ShowHint("储位号错误,请扫描正确的储位号!", Color.Red); return; } UpdateCnt(MyData.GetStockNo(), MyData._lastArrive.locid); //扫完储位后刷新数量 _lastScanLocId = str; if (MyData._lastArrive.allout.Equals("1")) { if (_allOutCnt == 0) { _allOutCnt++; ShowMessage("再扫一次储位号全盘出料"); ShowQty(); //扫过一次储位后跳到数量 } else { _allOutCnt = 0; try { //保存所有的trSn listTrSn = DBFunc.SearchTrSnFromRInventoryDetailByLocId(_lastScanLocId); if (listTrSn == null || listTrSn.Count == 0) { ShowHint("整盘出库失败,找不到该储位对应的TrSn", Color.Red); return; } } catch (Exception ex) { ShowHint("SearchTrSnFromRInventoryDetailByLocId exception:" + ex.Message, Color.Red); return; } //全盘出料 if (!PartialPickMaterialAllOut(_lastScanLocId, ref result)) { return; } saveTrSnFlag = true; } } else { //高亮数量 ShowQty(); //不是全盘出料时, 扫描储位后转为闪烁数量 ShowMessage("请扫描物料条码"); } } else if (result == 3) //物料编号 { _allOutCnt = 0; if (!_lastScanLocId.Equals(MyData._lastArrive.locid)) { ShowHint("请先扫描储位号!", Color.Red); return; } _allOutCnt = 0; //一盘一盘扫 if (!PartialPickMaterial(_lastScanLocId, listTrSn[0].ToUpper(), ref splitnum, ref result)) { return; } saveTrSnFlag = true; } else { _allOutCnt = 0; } //取料成功 if (saveTrSnFlag) { //如果要分盘 if (result == 3 && listTrSn.Count == 1) { if (splitnum > 0) { string newTrSn = refWebtR_Tr_Sn.Instance.Get_tr_sn_current(1); //获取一个新的trSn if (!CompleteReelSplit(listTrSn[0].ToUpper(), newTrSn, splitnum, ref result)) { return; } SplitTrSn(listTrSn[0].ToUpper(), newTrSn, splitnum); //要推送的trSn是新生成的trSn listTrSn.Clear(); listTrSn.Add(newTrSn); } } //更新货架信息 StartFindShelf(); //保存TrSn SaveTrSn(listTrSn, MyData.GetStockNo(), MyData.GetStockNoType()); UpdateCnt(MyData.GetStockNo(), _lastScanLocId); //全部出库完毕,则过账 if (result == 1) /*料出库成功,且所有站点物料全部出库,自动过账*/ { findFlag = true; //不再刷新 PushTrSnByStockNo(MyData.GetStockNo(), MyData.GetStockNoType()); //SapPick(MyData.GetStockNo(), MyData.GetStockNoType(); ShowHint("出库过账功能暂时关闭!", Color.Lime); } } } catch (Exception ex) { Log.Error("ExecuteInput:" + ex.Message); UpdateCnt(MyData.GetStockNo(), _lastScanLocId); //更新货架信息 StartFindShelf(); } }