From 2840590e163fbaff5a883770c0945a34057fb861 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Thu, 23 Nov 2023 17:52:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=B1=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/BackRecordService.cs | 37 ++++++++------- src/WMS.Web.Domain/Services/InStockService.cs | 45 ++++--------------- 2 files changed, 26 insertions(+), 56 deletions(-) diff --git a/src/WMS.Web.Domain/Services/BackRecordService.cs b/src/WMS.Web.Domain/Services/BackRecordService.cs index 87d970a8..7ed11d0c 100644 --- a/src/WMS.Web.Domain/Services/BackRecordService.cs +++ b/src/WMS.Web.Domain/Services/BackRecordService.cs @@ -20,7 +20,7 @@ namespace WMS.Web.Domain.Services /// /// 出入库回退上下架:服务接口 /// - public class BackRecordService: IBackRecordService + public class BackRecordService : IBackRecordService { private readonly IMapper _mapper; private readonly ILoginService _loginService; @@ -60,29 +60,28 @@ namespace WMS.Web.Domain.Services entity.Create(loginInfo.UserInfo.StaffId); entity = await _backRecordRepositories.Add(entity, isTransaction); + + + if (entity == null) + return Result.ReFailure(ResultCodes.DateWriteError); + //保存成功后:序列号跟踪流程添加 + var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction); + if (!serialNumber_result.IsSuccess) + return serialNumber_result; + + //保存成功后:变更库存 + var entitys = new List(); + entitys.Add(entity); + var boxInventoryResult = await _boxInventoryService.GenerateBackBox(entitys, isTransaction); + if (!boxInventoryResult.IsSuccess) + return boxInventoryResult; + //提交事务 var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); - if (entity != null) - { - //保存成功后:序列号跟踪流程添加 - var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction); - if (!serialNumber_result.IsSuccess) - return serialNumber_result; - - //保存成功后:变更库存 - var entitys = new List(); - entitys.Add(entity); - var boxInventoryResult= await _boxInventoryService.GenerateBackBox(entitys, isTransaction); - if (!boxInventoryResult.IsSuccess) - return boxInventoryResult; - - return Result.ReSuccess(); - } - else - return Result.ReFailure(ResultCodes.DateWriteError); } } } diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index c984f3eb..88be71ab 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -229,29 +229,10 @@ namespace WMS.Web.Domain.Services if (!serialNumber_result.IsSuccess) return serialNumber_result; - //保存成功后:变更箱库存 - var boxInventoryGenerateDto = dto.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto() - { - InventoryInOutMethod = (int)InventoryInOutMethod.Box, - InventoryInOutType = (int)InventoryInOutType.In, - BoxId = x.Key.BoxId, - StockCode = x.Key.StockCode, - SubStockId = x.Key.SubStockId - }).ToList(); - - foreach (var item in dto.Details) - { - var current = boxInventoryGenerateDto.Where(x => x.BoxId == item.BoxId).FirstOrDefault(); - if (current != null) - { - var detail = new BoxInventoryGenerateDetailsDto(); - detail.MaterialId = item.MaterialId; - detail.Qty = item.Qty; - detail.SerialNumbers = item.SerialNumbers; - current.Details.Add(detail); - } - } - var boxInventoryResult = await _boxInventoryService.HandlBoxInventory(boxInventoryGenerateDto, isTransaction); + //箱库存变动 + var dtoDatas = new List(); + dtoDatas.Add(entity); + var boxInventoryResult = await _boxInventoryService.GenerateInStockBox(dtoDatas, isTransaction); if (!boxInventoryResult.IsSuccess) return boxInventoryResult; @@ -335,20 +316,10 @@ namespace WMS.Web.Domain.Services if (!serialNumber_result.IsSuccess) return serialNumber_result; - //7.箱库存的变更 - //7.1组装头部和明细 - var boxInventoryGenerateDto = dto.Boxs.Select(item => new BoxInventoryGenerateDto() - { - InventoryInOutMethod = dto.ShelfMethod == (int)ShelfMethod.Product ? (int)InventoryInOutMethod.Box : (int)InventoryInOutMethod.Product, - InventoryInOutType = (int)InventoryInOutType.In, - BoxId = item.BoxId, - StockCode = dto.StockCode, - SubStockId = dto.SubStockId, - Details = _mapper.Map>(item.Details) - }).ToList(); - - //7.2执行处理箱库存 - var boxInventoryResult = await _boxInventoryService.HandlBoxInventory(boxInventoryGenerateDto, isTransaction); + //箱库存变动 + var dtoDatas = new List(); + dtoDatas.Add(entity); + var boxInventoryResult = await _boxInventoryService.GenerateInStockBox(dtoDatas, isTransaction); if (!boxInventoryResult.IsSuccess) return boxInventoryResult;