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();
}