From 4425a6ba8b230196b7555d3b1fe8e4164b2a0dd6 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Thu, 21 Dec 2023 08:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=20=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=97=B6=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Bases/SfsStoreRequestAppServiceBase.cs | 6 +++ ...lannedIssueRequestForDongyangAppService.cs | 47 ++++++++++++++----- ...nnedReceiptRequestForDongyangAppService.cs | 33 ++++++++----- 3 files changed, 61 insertions(+), 25 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs index 7bed7b52d..36465700c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs @@ -60,11 +60,17 @@ public abstract class SfsStoreRequestAppServiceBase(result); return dto; } + protected virtual TEntity ModifyEntityBeforeAgree(TEntity obj) + { + return obj; + } + /// /// 拒绝请求 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 86efe53fa..da71a45ca 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -72,11 +72,18 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, - - //}); + RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + input.ItemCode = detail.ItemCode; + input.Locations = new List() { detail.LocationCode }; + var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); + if (balanceLst.Count == 0) + { + throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); + } + if (detail.Qty > balanceLst[0].Qty) + { + throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); + } } if (unplannedIssueRequest.UnplannedIssueType == EnumUnplannedIssueType.Wip) @@ -89,16 +96,21 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, + RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + input.ItemCode = detail.ItemCode; + input.Locations = new List() { detail.LocationCode }; + var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); + if (balanceLst.Count == 0) + { + throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); + } + var sumQty = balanceLst.Sum(itm => itm.Qty); + if (detail.Qty > sumQty) + { + throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); + } - //}); - unplannedIssueRequest.DirectCreateNote = true; //线边 直接生成记录 - unplannedIssueRequest.RequestStatus = EnumRequestStatus.Completed; } - - await SetDetailPropertiesAsync(detail).ConfigureAwait(false); } } @@ -106,6 +118,15 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA return dictionary; } + protected override UnplannedIssueRequest ModifyEntityBeforeAgree(UnplannedIssueRequest obj) + { + if (obj.UnplannedIssueType == EnumUnplannedIssueType.Wip) + { + obj.DirectCreateNote = true; //线边 直接生成记录 + } + return obj; + } + #region 赋值 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index ee56153bf..bdc3d2203 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -25,19 +25,22 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ private readonly LocationManager _locationManager; private readonly ILocationAppService _locationAppService; private readonly IUnplannedReceiptRequestManager _unplannedReceiptRequestManager; + private readonly IBalanceAppService _balanceAppService; public UnplannedReceiptRequestForDongyangAppService(IUnplannedReceiptRequestRepository repository, IUnplannedReceiptRequestManager unplannedReceiptRequestManager, IDepartmentAppService departmentApp, //LocationManager locationManager, - ILocationAppService locationAppService + ILocationAppService locationAppService, + IBalanceAppService balanceAppService ) : base(repository, unplannedReceiptRequestManager) { _unplannedReceiptRequestManager = unplannedReceiptRequestManager; _departmentApp = departmentApp; //_locationManager = locationManager; _locationAppService = locationAppService; + _balanceAppService = balanceAppService; } /// @@ -70,11 +73,10 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, - - //}); + //RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + //input.ItemCode = detail.ItemCode; + //input.Locations = new List() { detail.LocationCode }; + //await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); } if (unplannedReceiptRequest.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) @@ -87,12 +89,10 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, - - //}); - unplannedReceiptRequest.DirectCreateNote = true; //线边 直接生成记录 + //RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + //input.ItemCode = detail.ItemCode; + //input.Locations = new List() { detail.LocationCode }; + //await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); } await SetDetailPropertiesAsync(detail).ConfigureAwait(false); @@ -102,6 +102,15 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ return dictionary; } + protected override UnplannedReceiptRequest ModifyEntityBeforeAgree(UnplannedReceiptRequest obj) + { + if (obj.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) + { + obj.DirectCreateNote = true; + } + return obj; + } + #region 赋值 ///