diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 12b4600d..4abbd048 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3086,6 +3086,11 @@ 箱号ID + + + 仓库 + + 仓位ID diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs index 674bfb59..27c44d62 100644 --- a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs @@ -16,6 +16,11 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord [Required(ErrorMessage = "箱号不能为空")] public int BoxId { get; set; } /// + /// 仓库 + /// + [Required(ErrorMessage = "仓库不能为空")] + public string StockCode { get; set; } + /// /// 仓位ID /// [Required(ErrorMessage = "仓位不能为空")] diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index dc898bf0..5a233f55 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto.ChangeBoxRecord; +using WMS.Web.Core.Dto.Inventory; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.MoveBoxRecord; using WMS.Web.Core.Internal.Results; @@ -27,10 +28,11 @@ namespace WMS.Web.Domain.Services private readonly IMoveBoxRecordRepositories _moveBoxRecordRepositories; private readonly IBoxRepositories _boxRepositories; private readonly ISerialNumberService _serialNumberService; + private readonly IBoxInventoryService _boxInventoryService; public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, IChangeBoxRecordRepositories changeBoxRecordRepositories, IBasicsRepositories transactionRepositories, IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories, - ISerialNumberService serialNumberService) + ISerialNumberService serialNumberService, IBoxInventoryService boxInventoryService) { _mapper = mapper; _loginService = loginService; @@ -39,6 +41,7 @@ namespace WMS.Web.Domain.Services _moveBoxRecordRepositories = moveBoxRecordRepositories; _boxRepositories = boxRepositories; _serialNumberService = serialNumberService; + _boxInventoryService = boxInventoryService; } /// /// 改箱保存 @@ -82,6 +85,19 @@ namespace WMS.Web.Domain.Services entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dto.SrcBoxId, dto.DestBoxId); list.Add(entity); } + var inventoryList = new List(); + var inventoryDetails = dto.Details.Select(s => new BoxInventoryDetailsChangeGenerateDto() + { + MaterialId = s.MaterialId, + Qty = s.Qty, + SerialNumbers = s.SerialNumbers + }).ToList(); + BoxInventoryChangeGenerateDto inventory = new BoxInventoryChangeGenerateDto() + { + BoxId = dto.SrcBoxId, + TargetBoxId = dto.DestBoxId, + Details = inventoryDetails + }; //需要填写序列号 //需要修改库存 @@ -90,6 +106,8 @@ namespace WMS.Web.Domain.Services _transaction = _transactionRepositories.GetTransaction(); bool isRollback = false; bool isSuccess = true; + var res_Inventory = await _boxInventoryService.GenerateChangeBox(inventoryList, false); + if (!res_Inventory.IsSuccess) isRollback = true; isSuccess = await _changeBoxRecordRepositories.AddRange(list, false); if (!isSuccess) isRollback = true; var res_change = await _serialNumberService.ChangeBox(list, loginInfo, false); @@ -124,12 +142,19 @@ namespace WMS.Web.Domain.Services entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.SubStockId, loginInfo.UserInfo.StaffId); entityList.Add(entity); } - - //2.需要修改库存 + var inventoryList = dto.Select(s => new BoxInventoryMoveGenerateDto() + { + BoxId = s.BoxId, + SubStockId = s.SubStockId, + InventoryInOutType = IsUp == true ? 1 : 2, + StockCode=s.StockCode + }).ToList(); IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); bool isRollback = false; bool isSuccess = true; + var res_Inventory = await _boxInventoryService.GenerateMoveBox(inventoryList, false); + if (!res_Inventory.IsSuccess) isRollback = true; isSuccess = await _moveBoxRecordRepositories.AddRange(entityList, true); if (!isSuccess) isRollback = true; var res_change = await _serialNumberService.MoveBox(entityList, loginInfo, false);