public void TrayConfirm(string cellID) { try { string restr = ""; //if (ViewDataManager.STOCKADJUSTVIEWDATA.PalletGoodsData.Count == 0) //{ // this.View.ShowMessage("信息提示", "请添加配盘物料!"); // return; //} List <View_Plan_StockListModel> oldStockList = bllViewPlanStockList.GetModelListByCellID(cellID); View_CellModel cell = bllViewCell.GetModelByChildCellID(cellID); if (cell == null) { this.View.ShowMessage("信息提示", "库存货位错误!"); return; } if (cell.Cell_Child_Flag != "1") { this.View.ShowMessage("信息提示", "被禁用的货位不允许调整库存!"); // this.WmsFrame.WriteLog("库存调整", "", "提示", "被禁用的货位不允许调整库存!"); return; } if (cell.Cell_Child_Status == EnumGSTaskStatus.锁定.ToString()) { this.View.ShowMessage("信息提示", "被锁定的货位不允许调整库存!请等待任务执行完成再调整!"); return; } if (ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Count == 0)//清空库存 { if (this.View.AskMessage("信息提示", "您确定要清空此货位库存么?") != 0) { return; } string operteDetail = cell.WareHouse_Name + ":[" + cell.Cell_Name + "]库存手动清空!"; TaskHandleMethod.AddCellOperRecord(cellID, EnumGSOperateType.手动修改状态, operteDetail, ref restr); TaskHandleMethod.DeleteStockByCellChildID(cellID); if (AddRecord(cellID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, ref restr) == false) { this.View.ShowMessage("信息提示", "库存状态、操作记录更新失败!"); return; } return; } List <string> distinctTray = new List <string>(); foreach (PalletGoodsList tray in ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData) { if (distinctTray.Contains(tray.托盘条码) == false) { distinctTray.Add(tray.托盘条码); } } if (distinctTray.Count > 1) { this.View.ShowMessage("信息提示", "一个货位只允许有一个托盘!"); return; } foreach (string tray in distinctTray) { List <StockModel> stockListModel = bllStock.GetModelListByTrayCode(tray); foreach (StockModel stockModel in stockListModel) { if (stockModel != null && stockModel.Cell_Child_ID != cellID) { this.View.ShowMessage("信息提示", "托盘条码" + tray + "已经在库存中,请确认托盘条码!"); ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Clear(); return; } } } TaskHandleMethod.DeleteStockByCellChildID(cellID);//先清空库存在往里添加 foreach (string tray in distinctTray) { StockModel stock = new StockModel(); stock.Stock_ID = Guid.NewGuid().ToString(); stock.Cell_Child_ID = cell.Cell_Chlid_ID; stock.Stock_Tray_Barcode = tray; bllStock.Add(stock); for (int i = 0; i < ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Count; i++) { PalletGoodsList trayGoodsModel = ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData[i]; if (trayGoodsModel.托盘条码 != tray) { continue; } Stock_ListModel stockList = new Stock_ListModel(); stockList.Stock_List_ID = Guid.NewGuid().ToString(); stockList.Stock_ID = stock.Stock_ID; GoodsModel goods = bllGoods.GetModelByCode(trayGoodsModel.物料编码); if (goods == null) { continue; } stockList.Goods_ID = goods.Goods_ID; if (oldStockList != null && oldStockList.Count > 0)//计划编号从原来库存里获取 { stockList.Plan_List_ID = oldStockList[0].Plan_List_ID; if (oldStockList[0].Plan_List_ID != "-1") { if (UpdatePlanNum(oldStockList[0].Plan_List_ID, goods.Goods_ID, trayGoodsModel.数量.ToString(), ref restr) == false) { this.WmsFrame.WriteLog("按计划配盘", "", "提示", restr); } } } else//如果没有库存默认为无计划 { stockList.Plan_List_ID = "-1"; } stockList.Stock_List_Box_Barcode = trayGoodsModel.托盘条码; stockList.Stock_List_Entry_Time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); stockList.Stock_List_Quantity = trayGoodsModel.数量.ToString(); bllStockList.Add(stockList); } } if (AddRecord(cellID, EnumCellStatus.满位, EnumGSTaskStatus.完成, ref restr) == false) { this.View.ShowMessage("信息提示", "库存状态、操作记录更新失败!"); return; } string operteStockDetail = cell.WareHouse_Name + ":[" + cell.Cell_Name + "]库存手动调整成功!!"; TaskHandleMethod.AddCellOperRecord(cellID, EnumGSOperateType.手动修改状态, operteStockDetail, ref restr); ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Clear();//配盘完成后清除数据 this.View.ShowMessage("信息提示", "库存调整成功!"); } catch (Exception ex) { this.View.ShowMessage("信息提示", "库存调整失败!" + ex.Message); } }