From 15f786ff466d8d860ab4415e2d58a0087f34fc82 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 9 Nov 2023 14:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=A7=BB=E7=AE=B1=E6=94=B9?= =?UTF-8?q?=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SaveChangeBoxRecordRequest.cs | 1 - .../IService/IChangeMoveBoxService.cs | 2 +- .../Services/ChangeMoveBoxService.cs | 36 ++++++++++++------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs index ef24724b..5f2ceb76 100644 --- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs @@ -13,7 +13,6 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord /// /// 原箱子ID /// - [Required(ErrorMessage = "原箱子不能为空")] public int SrcBoxId { get; set; } /// /// 目标箱子ID diff --git a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs index 68fb92ea..db52e99c 100644 --- a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs @@ -17,7 +17,7 @@ namespace WMS.Web.Domain.IService public interface IChangeMoveBoxService { //改箱保存 - Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo); + Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo, bool isTransaction=true); //移箱保存 Task MoveBoxSave(SaveMoveBoxRecordRequest dto, LoginInDto loginInfo); diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index a7f8b403..44fb65cb 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -43,23 +43,29 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo) + public async Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo, bool isTransaction = false) { List boxList = new List(); + //原箱有可能没有 var srcBox = await _boxRepositories.Get(dto.SrcBoxId); var destBox = await _boxRepositories.Get(dto.DestBoxId); - if (srcBox == null) return Result.ReFailure(ResultCodes.BoxNoData); + //if (srcBox == null) return Result.ReFailure(ResultCodes.BoxNoData); if (destBox == null) return Result.ReFailure(ResultCodes.BoxNoData); var l = dto.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList(); //原箱移出 - var res = srcBox.Out(l); - if (!res.IsSuccess) return res; + Result res; + if (srcBox != null) + { + res = srcBox.Out(l); + if (!res.IsSuccess) return res; + } //目标箱移入 res = destBox.In(l); if (!res.IsSuccess) return res; - - boxList.Add(srcBox); - boxList.Add(destBox); + if (srcBox != null) + boxList.Add(srcBox); + if (destBox != null) + boxList.Add(destBox); //var entity = _mapper.Map(dto);\ List list = new List(); @@ -72,8 +78,9 @@ namespace WMS.Web.Domain.Services //需要填写序列号 //需要修改库存 - - IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + IDbContextTransaction _transaction = null; + if (isTransaction) + _transaction = _transactionRepositories.GetTransaction(); bool isRollback = false; bool isSuccess = true; isSuccess = await _changeBoxRecordRepositories.AddRange(list, false); @@ -81,12 +88,15 @@ namespace WMS.Web.Domain.Services isSuccess = await _boxRepositories.EditEntityList(boxList, false); if (!isSuccess) isRollback = true; - + //提交事务 - isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); - if (!isSuccess) - return Result.ReFailure(ResultCodes.DateWriteError); + if (isTransaction) + { + isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + } return Result.ReSuccess(); }