| | |
| | | } |
| | | } |
| | | |
| | | var item = new BllExportNoticeDetail() |
| | | { |
| | | SONo = billNo, |
| | | SkuNo = sku.SkuNo, |
| | | SkuName = sku.SkuName, |
| | | Standard = sku.Standard, |
| | | LotNo = d.LotNo, |
| | | LotText = "", |
| | | Qty = d.Qty, |
| | | AllotQty = 0, |
| | | FactQty = 0, |
| | | CompleteQty = 0, |
| | | PackagNo = sku.PackagNo, |
| | | Price = sku.Price, |
| | | Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty, |
| | | IsBale = "", |
| | | IsBelt = "", |
| | | SupplierLot = stocks.First().SupplierLot, |
| | | IsWave = "0", |
| | | WaveNo = "", |
| | | IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo)? "0":"1", |
| | | |
| | | CreateUser = 0, |
| | | }; |
| | | list.Add(item); |
| | | foreach (var s in dic) |
| | | { |
| | | var st = stockList.First(m => m.Id == s.Key); |
| | | var st = stockList.First(a => a.Id == s.Key); |
| | | var item = new BllExportNoticeDetail() |
| | | { |
| | | SONo = billNo, |
| | | SkuNo = sku.SkuNo, |
| | | SkuName = sku.SkuName, |
| | | Standard = sku.Standard, |
| | | LotNo = st.LotNo, |
| | | LotText = st.LotText, |
| | | Qty = s.Value, |
| | | AllotQty = 0, |
| | | FactQty = 0, |
| | | CompleteQty = 0, |
| | | PackagNo = sku.PackagNo, |
| | | Price = sku.Price, |
| | | Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty, |
| | | IsBale = "", |
| | | IsBelt = "", |
| | | SupplierLot = stocks.First().SupplierLot, |
| | | IsWave = "0", |
| | | WaveNo = "", |
| | | IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo) ? "0" : "1", |
| | | |
| | | CreateUser = 0, |
| | | }; |
| | | list.Add(item); |
| | | |
| | | st.LockQty += s.Value;//锁定数量 |
| | | var i = Db.Updateable(st).UpdateColumns(it => new { it.LockQty }) |
| | | .ExecuteCommand(); |
| | |
| | | SkuName = it.SkuName, |
| | | LotNo = it.LotNo, |
| | | Standard = it.Standard, |
| | | Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty |
| | | //Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty, |
| | | Qty = it.Qty - it.LockQty - it.FrozenQty, |
| | | |
| | | }).ToList(); |
| | | |
| | |
| | | OutMode = "", //目标地址 |
| | | Order = 1 |
| | | }); |
| | | taskNoStr = exTask.TaskNo; |
| | | } |
| | | else if (locate.Depth == "02") //深度为2 |
| | | { |
| | |
| | | IsSuccess = 0, //是否下发成功 0失败 1成功 |
| | | |
| | | StartLocat = stockNew.LocatNo,//起始位置 |
| | | EndLocat = "",//目标位置 |
| | | EndLocat = toLocation,//目标位置 |
| | | PalletNo = stockNew.PalletNo,//托盘码 |
| | | IsSend = 1,//是否可再次下发 |
| | | IsCancel = 1,//是否可取消 |
| | |
| | | StartRoadway = slotBefore.RoadwayNo, //起始巷道 |
| | | PalletNo = stockNew.PalletNo,//托盘号 |
| | | StartLocate = stockNew.LocatNo, // 起始位置 |
| | | EndLocate = "", // 目标位置 |
| | | EndLocate = toLocation, // 目标位置 |
| | | EndRoadway = "", // 目标巷道 |
| | | TaskNo = exYkTask1.TaskNo, // 任务号 |
| | | TaskType = "1",// 任务类型 (出库) |
| | |
| | | IsSuccess = 0, //是否下发成功 0失败 1成功 |
| | | |
| | | StartLocat = locate.LocatNo,//起始位置 |
| | | EndLocat = "",//目标位置 |
| | | EndLocat = toLocation,//目标位置 |
| | | PalletNo = item.PalletNo,//托盘码 |
| | | IsSend = 1,//是否可再次下发 |
| | | IsCancel = 1,//是否可取消 |
| | |
| | | Msg = locate.LocatNo + "的出库任务" |
| | | }; |
| | | Db.Insertable(exTask1).ExecuteCommand(); |
| | | |
| | | logTaskList.Add(exTask1); |
| | | outDto2.Add(new OutCommandDto() |
| | | { |
| | | StartRoadway = locate.RoadwayNo, //起始巷道 |
| | | PalletNo = item.PalletNo,//托盘号 |
| | | StartLocate = locate.LocatNo, // 起始位置 |
| | | EndLocate = "", // 目标位置 |
| | | EndLocate = toLocation, // 目标位置 |
| | | EndRoadway = locate.RoadwayNo, //目标巷道 |
| | | TaskNo = exTask1.TaskNo, // 任务号 |
| | | TaskType = "1",// 任务类型 (出库) |
| | |
| | | flagList.Add(1); |
| | | } |
| | | } |
| | | |
| | | outDto1.AddRange(moveDto); |
| | | outDto1.AddRange(outDto2); |
| | | //添加操作日志记录 |
| | | var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", soNo, "出库", $"点击出库按钮出库单号为:{soNo}的出库单", userId); |
| | | Db.CommitTran(); |
| | |
| | | { |
| | | throw new Exception("未查询到任务信息"); |
| | | } |
| | | //获取对应库位信息 |
| | | var startlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat); |
| | | if (startlocat == null) |
| | | { |
| | | throw new Exception("未查询到储位信息"); |
| | | } |
| | | startlocat.Status = "0";//修改分配信息状态 |
| | | //获取储位信息 |
| | | var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat); |
| | | //获取移库任d务对应目标储位信息 |
| | | SysStorageLocat endlocat = new SysStorageLocat(); |
| | | if (task.Type == "2") |
| | | { |
| | | endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.EndLocat); |
| | | if (endlocat == null) |
| | | { |
| | | throw new Exception("未查询到目标储位信息"); |
| | | } |
| | | } |
| | | if (locat == null) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception("未查询到储位信息,请核实!"); |
| | | } |
| | | locat.Status = "1"; //有物品 |
| | | Db.Updateable(locat).ExecuteCommand(); |
| | | if (endlocat != null) |
| | | { |
| | | endlocat.Status = "0"; //空储位 0 |
| | | Db.Updateable(endlocat).ExecuteCommand(); |
| | | } |
| | | |
| | | //修改任务 |
| | | task.IsSuccess = 1; |
| | | task.IsSend = 0; |
| | |
| | | |
| | | noticeDetail.FactQty -= item.Qty; //修改出库单明细的下架数量 |
| | | Db.Updateable(noticeDetail).ExecuteCommand(); |
| | | |
| | | //获取储位信息 |
| | | var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat); |
| | | //获取移库任务对应目标储位信息 |
| | | SysStorageLocat endlocat = new SysStorageLocat(); |
| | | if (task.Type == "2") |
| | | { |
| | | endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W03" && a.LocatNo == task.EndLocat); |
| | | if (endlocat == null) |
| | | { |
| | | throw new Exception("未查询到目标储位信息"); |
| | | } |
| | | } |
| | | if (locat == null) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception("未查询到储位信息,请核实!"); |
| | | } |
| | | locat.Status = "1"; //有物品 |
| | | Db.Updateable(locat).ExecuteCommand(); |
| | | if (endlocat != null) |
| | | { |
| | | endlocat.Status = "0"; //空储位 0 |
| | | Db.Updateable(endlocat).ExecuteCommand(); |
| | | } |
| | | |
| | | if (noticeDetail.FactQty == 0) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo) |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0" && string.IsNullOrWhiteSpace(m.LotNo)).ToList(); // |
| | | } |
| | | |
| | | if (stockDetail.Count < 1) |