diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs index 881ad64b..fa48bda3 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs @@ -28,6 +28,10 @@ namespace Tnb.WarehouseMgr.Entities.Dto /// 任务执行条码表 /// public List distaskCodes { get; set; } + /// + /// 载具 + /// + public List carryIds { get; set; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index eaebd2ea..a89d76d1 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -459,7 +459,7 @@ namespace Tnb.WarehouseMgr foreach (var dt in disTasks) { var disTaskCodes = await _db.Queryable().Where(it => it.bill_id == dt.id).ToListAsync(); - var upInput = new WareHouseUpInput { bizTypeId = dt.biz_type, requireId = dt.require_id, distaskCodes = disTaskCodes }; + var upInput = new WareHouseUpInput { bizTypeId = dt.biz_type, requireId = dt.require_id, distaskCodes = disTaskCodes , carryIds = disTasks.Select(x=>x.carry_id).ToList()}; upInput.loginType = !_userManager.LoginType.IsNullOrEmpty() ? "app" : "web"; if (dt.is_sign == 1) //区分出入库操作 { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs index eab88ceb..fc1ee934 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs @@ -152,10 +152,10 @@ namespace Tnb.WarehouseMgr //更新明细表 WmsEmptyOutstockD wmsEmptyOutstockD = new (); wmsEmptyOutstockD.id = SnowflakeIdHelper.NextId(); - wmsEmptyOutstockD.bill_id = input.data[nameof(WmsEmptyOutstockH.bill_code)]?.ToString()!; + wmsEmptyOutstockD.bill_id = preTaskUpInput.RquireId; wmsEmptyOutstockD.biz_type = WmsWareHouseConst.BIZTYPE_WMSEPTYOUTSTK_ID; wmsEmptyOutstockD.location_id = ePoint.location_id; - wmsEmptyOutstockD.status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID; + wmsEmptyOutstockD.status = WmsWareHouseConst.BILLSTATUS_ON_ID; wmsEmptyOutstockD.carry_id = carrys[i].id; wmsEmptyOutstockD.carry_code = carrys[i].carry_code; wmsEmptyOutstockD.create_id = _userManager.UserId; @@ -186,7 +186,14 @@ namespace Tnb.WarehouseMgr public async override Task ModifyAsync(WareHouseUpInput input) { if (input == null) throw new ArgumentNullException(nameof(input)); - var isOk = await _db.Updateable().SetColumns(it => new WmsEmptyInstock { status = input.bizTypeId }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); + //根据载具更新明细表状态 + var isOk = await _db.Updateable().SetColumns(it => new WmsEmptyOutstockD { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.bill_id == input.requireId && input.carryIds.Contains(it.carry_id)).ExecuteCommandHasChangeAsync(); + + var emptyCarrys = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync(); + // 判断所有明细是否都完成 + if (emptyCarrys.All(x=> x.status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID)) { + await _db.Updateable().SetColumns(it=> new WmsEmptyOutstockH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); + } if (!isOk) throw Oops.Oh(ErrorCode.COM1001); } }