| | |
| | | { |
| | | throw new Exception($"{palletNo}托盘上存在箱码信息,无法在数量拣货进行操作!"); |
| | | } |
| | | //出库单明细 |
| | | var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0"); |
| | | if (noticeDetail == null) |
| | | |
| | | BllExportAllot allot = null; |
| | | if (!string.IsNullOrWhiteSpace(soDetailId)) |
| | | { |
| | | throw new Exception($"未查询到对应出库单明细信息,请核实!"); |
| | | //出库单明细 |
| | | var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0"); |
| | | if (noticeDetail == null) |
| | | { |
| | | throw new Exception($"未查询到对应出库单明细信息,请核实!"); |
| | | } |
| | | //出库单总单 |
| | | var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo); |
| | | if (notice == null) |
| | | { |
| | | throw new Exception($"未查询到对应出库单总单信息,请核实!"); |
| | | } |
| | | //分配信息 |
| | | allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && (a.Status == "2" || a.Status == "3")); |
| | | if (allot == null) |
| | | { |
| | | throw new Exception($"未查询到对应分配信息,请核实!"); |
| | | } |
| | | } |
| | | //出库单总单 |
| | | var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo); |
| | | if (notice == null) |
| | | { |
| | | throw new Exception($"未查询到对应出库单总单信息,请核实!"); |
| | | } |
| | | //分配信息 |
| | | var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && (a.Status == "2" || a.Status == "3")); |
| | | if (allot == null) |
| | | { |
| | | throw new Exception($"未查询到对应分配信息,请核实!"); |
| | | } |
| | | |
| | | //库存明细 |
| | | var detail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo); |
| | | if (detail == null) |
| | |
| | | { |
| | | SkuNo = detail.SkuNo, |
| | | BoxNo = detail.SkuNo, |
| | | Qty = (int)allot.Qty, |
| | | PickedQty = (int)allot.CompleteQty, |
| | | Qty = allot == null ? (int)(detail.Qty-detail.LockQty) : (int)allot.Qty, |
| | | PickedQty = allot == null ? 0 : (int)allot.CompleteQty, |
| | | }; |
| | | |
| | | pdaInfo.Add(info); |
| | |
| | | |
| | | var comList = new List<BllCompleteDetail>(); |
| | | //判断是否存在拣货明细 |
| | | isComplete = 0;// 所有无箱码或一级箱码拣货时,拣货明细应重新插入数据(体现多次拣货流程记录) |
| | | if (isComplete == 0) |
| | | { |
| | | //添加拣货明细 |
| | |
| | | |
| | | Db.Updateable(complete).ExecuteCommand(); |
| | | } |
| | | |
| | | |
| | | |
| | | //修改出库分配信息 |
| | | allot.CompleteQty += int.Parse(PickQty); |
| | |
| | | { |
| | | throw new Exception("新托盘码不能为空"); |
| | | } |
| | | if (palletNo == palletNoNew)//原托盘与新托盘一致 |
| | | { |
| | | if (!string.IsNullOrEmpty(boxNo)) |
| | | { |
| | | throw new Exception("原托盘与新托盘一致,请选择整托出库"); |
| | | } |
| | | } |
| | | |
| | | //出库单 |
| | | var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo); |
| | |
| | | var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew); |
| | | if (pinStockDetail != null) |
| | | { |
| | | if (pinStockDetail.SONo != notice.SONo) |
| | | if (palletNo != palletNoNew)//非整托拣货 |
| | | { |
| | | throw new Exception("拼托托盘上只能放同一个出库单下的物料!"); |
| | | } |
| | | if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) |
| | | { |
| | | isNew = true; |
| | | if (pinStockDetail.SONo != notice.SONo) |
| | | { |
| | | throw new Exception("拼托托盘上只能放同一个出库单下的物料!"); |
| | | } |
| | | if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) |
| | | { |
| | | isNew = true; |
| | | } |
| | | } |
| | | sdId = pinStockDetail.Id; |
| | | } |
| | |
| | | CreateUser = userId |
| | | }; |
| | | comList.Add(completeDetail); |
| | | |
| | | |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | item.StockDetailId = sdId; |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | } |
| | | item.Status = "5";//箱支状态,0:未组托 1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货 |
| | | //修改库存箱码明细 |
| | | item.StockDetailId = sdId; |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | |
| | | pickQty += item.Qty; |
| | |
| | | allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; |
| | | allot.UpdateTime = DateTime.Now; |
| | | Db.Updateable(allot).ExecuteCommand(); |
| | | //删除原托盘库存明细 |
| | | Db.Deleteable(stockDetail).ExecuteCommand(); |
| | | |
| | | //改变托盘状态为:未使用 |
| | | var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); |
| | | if (pallet == null) |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | throw new Exception("未在托盘表中查询到托盘信息"); |
| | | //删除原托盘库存明细 |
| | | Db.Deleteable(stockDetail).ExecuteCommand(); |
| | | |
| | | //改变原托盘状态为:未使用 |
| | | var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); |
| | | if (pallet == null) |
| | | { |
| | | throw new Exception("未在托盘表中查询到托盘信息"); |
| | | } |
| | | pallet.Status = "0"; |
| | | Db.Updateable(pallet).ExecuteCommand(); |
| | | } |
| | | pallet.Status = "0"; |
| | | Db.Updateable(pallet).ExecuteCommand(); |
| | | else |
| | | { |
| | | stockDetail.SONo = soNo; |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | } |
| | | |
| | | //修改出库单明细拣货数量 |
| | | noticeDetail.CompleteQty += pickQty; |
| | | Db.Updateable(noticeDetail).ExecuteCommand(); |
| | |
| | | item.StockDetailId = sdId; |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | item.Status = "5";//箱支状态,0:未组托 1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货 |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | |
| | | pickQty += item.Qty; |
| | |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | item.BoxNo = item.BoxNo3;//将支码赋给箱码 |
| | | item.BitBoxMark = "1"; |
| | | item.BitBoxMark = "1";//零箱标记 |
| | | item.Status = "5";//箱支状态,0:未组托 1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货 |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | |
| | | pickQty += item.Qty; |
| | |
| | | item.StockDetailId = sdId; |
| | | item.BindNo = null;//托盘绑定号 |
| | | item.PalletNo = palletNoNew; |
| | | item.Status = "5";//箱支状态,0:未组托 1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货 |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | } |
| | | else |
| | |
| | | } |
| | | else |
| | | { |
| | | //修改拼托托盘库存明细 |
| | | pinStockDetail.Qty += pickQty; |
| | | pinStockDetail.LockQty += pickQty; |
| | | Db.Updateable(pinStockDetail).ExecuteCommand(); |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | //修改拼托托盘库存明细 |
| | | pinStockDetail.Qty += pickQty; |
| | | pinStockDetail.LockQty += pickQty; |
| | | Db.Updateable(pinStockDetail).ExecuteCommand(); |
| | | } |
| | | } |
| | | |
| | | //添加操作日志记录 |
| | |
| | | { |
| | | throw new Exception("未查询到该托盘分配的库存信息!"); |
| | | } |
| | | if (palletNo == palletNoNew)//原托盘与新托盘一致 |
| | | { |
| | | if (int.Parse(PickQty) != stockDetail.Qty) |
| | | { |
| | | throw new Exception("原托盘与新托盘一致,需要把托盘上所有数量拣货"); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 拼托信息 |
| | |
| | | var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew); |
| | | if (pinStockDetail != null) |
| | | { |
| | | if (pinStockDetail.SONo != notice.SONo) |
| | | if (palletNo != palletNoNew)//非整托拣货 |
| | | { |
| | | throw new Exception("拼托托盘上只能放同一个出库单下的物料!"); |
| | | } |
| | | if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) |
| | | { |
| | | isNew = true; |
| | | if (pinStockDetail.SONo != notice.SONo) |
| | | { |
| | | throw new Exception("拼托托盘上只能放同一个出库单下的物料!"); |
| | | } |
| | | if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) |
| | | { |
| | | isNew = true; |
| | | } |
| | | } |
| | | } |
| | | else |
| | |
| | | } |
| | | else |
| | | { |
| | | //修改拼托托盘库存明细 |
| | | pinStockDetail.Qty += int.Parse(PickQty); |
| | | pinStockDetail.LockQty += int.Parse(PickQty); |
| | | Db.Updateable(pinStockDetail).ExecuteCommand(); |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | //修改拼托托盘库存明细 |
| | | pinStockDetail.Qty += int.Parse(PickQty); |
| | | pinStockDetail.LockQty += int.Parse(PickQty); |
| | | Db.Updateable(pinStockDetail).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | pinStockDetail.SONo = soNo; |
| | | Db.Updateable(pinStockDetail).ExecuteCommand(); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | |
| | | |
| | | var comList = new List<BllCompleteDetail>(); |
| | | //判断是否存在拣货明细 |
| | | isComplete = 0;//所有无箱码或一级箱码拣货时,拣货明细应重新插入数据(体现多次拣货流程记录) |
| | | if (isComplete == 0) |
| | | { |
| | | //添加拣货明细 |
| | |
| | | |
| | | int isDel = 0; |
| | | |
| | | //删除或修改库存明细 |
| | | stockDetail.BitPalletMark = "1";//修改为零托标识 |
| | | stockDetail.Qty -= int.Parse(PickQty); |
| | | stockDetail.LockQty -= int.Parse(PickQty); |
| | | if (stockDetail.Qty == stockDetail.LockQty) |
| | | if (palletNo != palletNoNew) |
| | | { |
| | | stockDetail.Status = "2"; |
| | | } |
| | | else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) |
| | | { |
| | | stockDetail.Status = "1"; |
| | | } |
| | | else |
| | | { |
| | | stockDetail.Status = "0"; |
| | | } |
| | | if (stockDetail.Qty <= 0) |
| | | { |
| | | Db.Deleteable(stockDetail).ExecuteCommand(); |
| | | //删除或修改库存明细 |
| | | stockDetail.BitPalletMark = "1";//修改为零托标识 |
| | | stockDetail.Qty -= int.Parse(PickQty); |
| | | stockDetail.LockQty -= int.Parse(PickQty); |
| | | if (stockDetail.Qty == stockDetail.LockQty) |
| | | { |
| | | stockDetail.Status = "2"; |
| | | } |
| | | else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) |
| | | { |
| | | stockDetail.Status = "1"; |
| | | } |
| | | else |
| | | { |
| | | stockDetail.Status = "0"; |
| | | } |
| | | if (stockDetail.Qty <= 0) |
| | | { |
| | | Db.Deleteable(stockDetail).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | isDel = 1; |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | isDel = 1; |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | } |
| | | |
| | | //判断托盘上物料是否拣货完毕 |
| | | if (isDel == 0) |
| | | { |