diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index d779a490..e2fa6034 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -47,13 +47,14 @@ namespace WMS.Web.Domain.Services private readonly IBoxRepositories _boxRepositories; private readonly ISingleDataService _singleDataService; private readonly IServiceScopeFactory _serviceScopeFactory; + private readonly IInStockTaskBoxService _inStockTaskService; public OutStockService(IMapper mapper, ILoginService loginService, IBasicsRepositories transactionRepositories, IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IErpService erpService, ISerialNumberService serialNumberService, IBoxInventoryService boxInventoryService, IInventoryInOutDetailsService inventoryInOutDetailsService, IBoxInventoryRepositories boxInventoryRepositories, ILogger logger, IBoxRepositories boxRepositories, - ISingleDataService singleDataService, IServiceScopeFactory serviceScopeFactory) + ISingleDataService singleDataService, IServiceScopeFactory serviceScopeFactory, IInStockTaskBoxService inStockTaskService) { _mapper = mapper; _loginService = loginService; @@ -70,6 +71,7 @@ namespace WMS.Web.Domain.Services _boxRepositories = boxRepositories; _singleDataService = singleDataService; _serviceScopeFactory = serviceScopeFactory; + _inStockTaskService = inStockTaskService; } /// /// 出库单 @@ -192,6 +194,12 @@ namespace WMS.Web.Domain.Services var res_Inventory = await _boxInventoryService.GenerateOutStockBox(entity, false); if (!res_Inventory.IsSuccess) res_Rollback = res_Inventory; } + if (res_Rollback.IsSuccess) + { + var res_InStockTask = await _inStockTaskService.UnBind(boxIds, false); + if (!res_InStockTask.IsSuccess) res_Rollback = res_InStockTask; + } + //提交事务 isSuccess = _transactionRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction); if (!res_Rollback.IsSuccess) return res_Rollback;