| | |
| | | throw Oops.Bah("该托盘上没有可拣货的箱子"); |
| | | } |
| | | var boxQty = await boxInfo.GroupBy(m => m.PalletNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync(); |
| | | if (boxQty[0] > needQty) |
| | | { |
| | | throw Oops.Bah("拣货数量不能大于箱内剩余待拣数量"); |
| | | } |
| | | //if (boxQty[0] > needQty) |
| | | //{ |
| | | // throw Oops.Bah("拣货数量不能大于箱内剩余待拣数量"); |
| | | //} |
| | | |
| | | var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync(); |
| | | var comList = new List<BllCompleteDetail>(); |
| | |
| | | throw Oops.Bah("该托盘与箱码没有绑定关系"); |
| | | } |
| | | var boxQty = await boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync(); |
| | | if (boxQty[0] > needQty) |
| | | { |
| | | throw Oops.Bah("拣货数量不能大于箱内剩余待拣数量"); |
| | | } |
| | | //if (boxQty[0] > needQty) |
| | | //{ |
| | | // throw Oops.Bah("拣货数量不能大于箱内剩余待拣数量"); |
| | | //} |
| | | |
| | | foreach (var item in boxInfos) |
| | | { |
| | |
| | | //获取当前时间 |
| | | DateTime serverTime = Db.GetDate(); |
| | | //获取库存明细是否小于等于该垛数 |
| | | |
| | | var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.SkuNo == "100099" && s.Status == "0" && !string.IsNullOrWhiteSpace(s.WareHouseNo)).ToListAsync(); |
| | | |
| | | var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.SkuNo == "100099" && s.Status == "0" && s.WareHouseNo == "W02").ToListAsync(); |
| | | if (stockDetail.Count > 0) |
| | | { |
| | | //判断是否大于需要垛数 |
| | |
| | | throw Oops.Bah("需要垛数大于库存垛数,请重新输入!"); |
| | | } |
| | | } |
| | | stockDetail = new AllotSku().GetDataListOrder(stockDetail); |
| | | //stockDetail = new AllotSku().GetDataListOrder(stockDetail); |
| | | //获取库存总表信息 |
| | | var stock = await Db.Queryable<DataStock>().FirstAsync(s => s.IsDel == "0" && s.SkuNo == "100099"); |
| | | //验证库存总表是否为空 |
| | |
| | | { |
| | | throw Oops.Bah("库存信息不存在,请核查!"); |
| | | } |
| | | |
| | | //目标储位信息 |
| | | var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.OutMode); |
| | | if (endLocat == null) |
| | | { |
| | | throw Oops.Bah("库存信息不存在,请核查!"); |
| | | } |
| | | //if (endLocat.Status != "0") |
| | | //{ |
| | | // throw Oops.Bah("目标储位不是空储位,请核查!"); |
| | | //} |
| | | int i = 0; |
| | | |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | |
| | | //遍历库存信息 |
| | | foreach (var s in stockDetail) |
| | | { |
| | | //获取储位信息 |
| | | var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && (l.WareHouseNo == "W01"||l.WareHouseNo == "W02")); |
| | | var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W02"); |
| | | |
| | | if (locat == null) |
| | | { |
| | |
| | | locat.Status = "3"; //3 出库中 |
| | | locat.UpdateTime = serverTime; //修改时间 |
| | | locat.UpdateUser = userId; //修改人 |
| | | //修改储位信息 |
| | | //修改储位信息 |
| | | await Db.Updateable(locat).ExecuteCommandAsync(); |
| | | |
| | | //增加库存锁定数量 |
| | |
| | | Status = "1", |
| | | LogisticsId = 0, |
| | | IsAdvance = "0", |
| | | OutMode = model.OutMode,//出库口 |
| | | OutMode = model.OutMode,//出库目标储位 |
| | | |
| | | CreateUser = userId, |
| | | CreateTime = DateTime.Now |
| | |
| | | EndRoadway = endroad, |
| | | |
| | | Order = 999, |
| | | Type = locat.WareHouseNo == "W01"?PLCTypeEnum.ShuttleCar : PLCTypeEnum.AGV |
| | | Type = PLCTypeEnum.AGV,//locat.WareHouseNo == "W01"?PLCTypeEnum.ShuttleCar : PLCTypeEnum.AGV |
| | | }); |
| | | await Db.Insertable(exTask).ExecuteCommandAsync(); |
| | | |