From 7ca655e8ff4aed143071547fc9e2cc9b9740bcab Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Fri, 21 Apr 2023 19:26:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...FrameworkCore.SqlServer.StoreDbContext.sql | 19 +++++++++++ .../Balances/BalanceAppService.cs | 1 + .../Transactions/TransactionManager.cs | 15 +++++---- .../IPurchaseOrderAppService.cs | 2 +- .../ItemTransformRequestAppService.cs | 16 ++++++--- .../PurchaseReturnRequestAppService.cs | 22 ++++++++++--- .../MaterialRequestManager.cs | 12 +++++-- .../ExpectInOuts/IssueJobEventHandler.cs | 7 ++++ .../Jobs/PurchaseReceiptJobEventHandler.cs | 15 +++++++-- .../ItemTransformRequestEventHandler.cs | 6 ++-- .../Requests/MaterialRequestEventHandler.cs | 33 +++++++++++-------- .../PurchaseReturnNoteEventHandler.cs | 16 ++++++--- 12 files changed, 123 insertions(+), 41 deletions(-) diff --git a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql index 87364c0a6..286935fff 100644 --- a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql +++ b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql @@ -2529,6 +2529,9 @@ CREATE TABLE [Job_PutawayJobDetail] ( CREATE TABLE [Job_UnplannedIssueJobDetail] ( [Id] uniqueidentifier NOT NULL, [ReasonCode] nvarchar(max) NULL, + [CaseCode] nvarchar(max) NULL, + [ProjCapacityCode] nvarchar(max) NULL, + [OnceBusiCode] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL, [CreationTime] datetime2 NOT NULL, [CreatorId] uniqueidentifier NULL, @@ -2579,6 +2582,9 @@ CREATE TABLE [Job_UnplannedIssueJobDetail] ( CREATE TABLE [Job_UnplannedReceiptJobDetail] ( [Id] uniqueidentifier NOT NULL, [ReasonCode] nvarchar(max) NULL, + [CaseCode] nvarchar(max) NULL, + [ProjCapacityCode] nvarchar(max) NULL, + [OnceBusiCode] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL, [CreationTime] datetime2 NOT NULL, [CreatorId] uniqueidentifier NULL, @@ -4875,6 +4881,9 @@ CREATE TABLE [Store_TransferRequestDetail] ( CREATE TABLE [Store_UnplannedIssueNoteDetail] ( [Id] uniqueidentifier NOT NULL, [ReasonCode] nvarchar(max) NULL, + [CaseCode] nvarchar(max) NULL, + [ProjCapacityCode] nvarchar(max) NULL, + [OnceBusiCode] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL, [CreationTime] datetime2 NOT NULL, [CreatorId] uniqueidentifier NULL, @@ -4937,6 +4946,9 @@ CREATE TABLE [Store_UnplannedIssueNoteDetail] ( CREATE TABLE [Store_UnplannedIssueRequestDetail] ( [Id] uniqueidentifier NOT NULL, + [CaseCode] nvarchar(max) NULL, + [ProjCapacityCode] nvarchar(max) NULL, + [OnceBusiCode] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL, [CreationTime] datetime2 NOT NULL, [CreatorId] uniqueidentifier NULL, @@ -4974,6 +4986,9 @@ CREATE TABLE [Store_UnplannedIssueRequestDetail] ( CREATE TABLE [Store_UnplannedReceiptNoteDetail] ( [Id] uniqueidentifier NOT NULL, [ReasonCode] nvarchar(max) NULL, + [CaseCode] nvarchar(max) NULL, + [ProjCapacityCode] nvarchar(max) NULL, + [OnceBusiCode] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL, [CreationTime] datetime2 NOT NULL, [CreatorId] uniqueidentifier NULL, @@ -5036,6 +5051,10 @@ CREATE TABLE [Store_UnplannedReceiptNoteDetail] ( CREATE TABLE [Store_UnplannedReceiptRequestDetail] ( [Id] uniqueidentifier NOT NULL, + [ReasonCode] nvarchar(max) NULL, + [CaseCode] nvarchar(max) NULL, + [ProjCapacityCode] nvarchar(max) NULL, + [OnceBusiCode] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL, [CreationTime] datetime2 NOT NULL, [CreatorId] uniqueidentifier NULL, diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs index d063a0463..bcfbbed1c 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs @@ -275,6 +275,7 @@ public class BalanceAppService dto.ItemName = item.Name; dto.ItemDesc1 = item.Desc1; dto.ItemDesc2 = item.Desc2; + dto.Uom = item.BasicUom; } return dtos; } diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Transactions/TransactionManager.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Transactions/TransactionManager.cs index 26cf02cbd..fabcb95d3 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Transactions/TransactionManager.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Transactions/TransactionManager.cs @@ -18,7 +18,8 @@ public class TransactionManager : DomainService, ITransactionManager private readonly IBalanceManager _balanceManager; private readonly IItemBasicAclService _itemBasicAclService; private readonly ILocationAclService _locationAclService; - private readonly ITransactionTypeAclService _transactionTypeAclService; + //private readonly ITransactionTypeAclService _transactionTypeAclService; + private readonly ITransactionTypeAppService _transactionTypeAppService; private readonly ITransactionRepository _transactionRepository; private readonly IBalanceRepository _balanceRepository; private readonly ISnowflakeIdGenerator _numberGenerator; @@ -28,20 +29,22 @@ public class TransactionManager : DomainService, ITransactionManager IBalanceManager balanceManager , IItemBasicAclService itemBasicAclService , ILocationAclService locationAclService - , ITransactionTypeAclService transactionTypeAclService + //, ITransactionTypeAclService transactionTypeAclService , ITransactionRepository transactionRepository , IBalanceRepository balanceRepository , ISnowflakeIdGenerator numberGenerator - , ILocationCapacityManager locationCapacityManager) + , ILocationCapacityManager locationCapacityManager + , ITransactionTypeAppService transactionTypeAppService) { _balanceManager = balanceManager; _itemBasicAclService = itemBasicAclService; _locationAclService = locationAclService; - _transactionTypeAclService = transactionTypeAclService; + //_transactionTypeAclService = transactionTypeAclService; _transactionRepository = transactionRepository; _balanceRepository = balanceRepository; _numberGenerator = numberGenerator; _locationCapacityManager = locationCapacityManager; + _transactionTypeAppService = transactionTypeAppService; } public virtual async Task AddAsync(Transaction transaction) @@ -96,7 +99,7 @@ public class TransactionManager : DomainService, ITransactionManager var item = await _itemBasicAclService.GetByCodeAsync(transaction.ItemCode).ConfigureAwait(false); var location = await _locationAclService.GetByCodeAsync(transaction.LocationCode).ConfigureAwait(false); - var transactionType = await _transactionTypeAclService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false); + var transactionType = await _transactionTypeAppService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false); transaction.CheckTransactionType(transactionType, item, location); //执行库存余额的变动 @@ -158,7 +161,7 @@ public class TransactionManager : DomainService, ITransactionManager //库位注意大小写 var location = locations.FirstOrDefault(p => p.Code.ToUpper() == transaction.LocationCode.ToUpper()); - var transactionType = await _transactionTypeAclService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false); + var transactionType = await _transactionTypeAppService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false); transaction.CheckTransactionType(transactionType, item, location); await UpdateBalanceAsync(transaction, item, location).ConfigureAwait(false); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs index c50180570..034ea1a1b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs @@ -29,7 +29,7 @@ public interface IPurchaseOrderAppService /// /// /// - Task UpdateDetailsAsync(string number, List input); + Task UpdateDetailsAsync(string number,List input); /// /// 【批量创建】到货通知 (收货单) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ItemTransformRequests/ItemTransformRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ItemTransformRequests/ItemTransformRequestAppService.cs index 647f38610..255b76fa2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ItemTransformRequests/ItemTransformRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ItemTransformRequests/ItemTransformRequestAppService.cs @@ -75,7 +75,8 @@ public class ItemTransformRequestAppService : { var fromLocationDto= await LocationAclService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false); var toLocationDto= await LocationAclService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false); - var itemBasicDto=await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); + var fromItemBasicDto=await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); + var toItemBasicDto = await ItemBasicAclService.GetByCodeAsync(detail.ToItemCode).ConfigureAwait(false); var balanceDto= await _balanceAppService.GetByItemLocationAndPackingAsync(detail.FromPackingCode, detail.ItemCode, detail.FromLocationCode).ConfigureAwait(false); @@ -97,10 +98,15 @@ public class ItemTransformRequestAppService : detail.ToLocationGroup = toLocationDto.LocationGroupCode; detail.ToWarehouseCode = toLocationDto.WarehouseCode; - detail.ItemDesc1 = itemBasicDto.Desc1; - detail.ItemDesc2= itemBasicDto.Desc2; - detail.ItemName= itemBasicDto.Name; - detail.Uom = itemBasicDto.BasicUom; + detail.ItemDesc1 = fromItemBasicDto.Desc1; + detail.ItemDesc2= fromItemBasicDto.Desc2; + detail.ItemName= fromItemBasicDto.Name; + detail.Uom = fromItemBasicDto.BasicUom; + + detail.ToItemCode = toItemBasicDto.Desc1; + detail.ToItemDesc1 = toItemBasicDto.Desc2; + detail.ToItemDesc2 = toItemBasicDto.Name; + detail.ItemName = toItemBasicDto.BasicUom; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs index d07e428e6..8adf9ce95 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs @@ -37,18 +37,20 @@ public class PurchaseReturnRequestAppService : private readonly ILocationAppService _locationAppService; private readonly ITransactionTypeAppService _transactionTypeAppService; private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager; - + private readonly IPurchaseOrderAppService _purchaseOrderAppService; public PurchaseReturnRequestAppService( IPurchaseReturnRequestRepository repository, IPurchaseReturnRequestManager purchaseReturnRequestManager, IInventoryLabelAppService inventoryLabelApp, ILocationAppService locationAppService, - ITransactionTypeAppService transactionTypeAppService) : base(repository, purchaseReturnRequestManager) + ITransactionTypeAppService transactionTypeAppService, + IPurchaseOrderAppService purchaseOrderAppService) : base(repository, purchaseReturnRequestManager) { _purchaseReturnRequestManager = purchaseReturnRequestManager; _inventoryLabelApp = inventoryLabelApp; _locationAppService = locationAppService; _transactionTypeAppService = transactionTypeAppService; + _purchaseOrderAppService = purchaseOrderAppService; base.CreatePolicyName = PurchaseReturnRequestPermissions.Create; base.UpdatePolicyName = PurchaseReturnRequestPermissions.Update; @@ -97,13 +99,16 @@ public class PurchaseReturnRequestAppService : var labelDto = await _inventoryLabelApp.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false); var balanceDto = await BalanceAclService.GetByPackingCodeAsync(detail.PackingCode).ConfigureAwait(false); var locationDto= await _locationAppService.GetByCodeAsync(balanceDto.LocationCode).ConfigureAwait(false); + var purchaseOrderDto= await _purchaseOrderAppService.GetByNumberAsync(labelDto.PoNumber).ConfigureAwait(false); + purchaseOrderDto = await _purchaseOrderAppService.GetAsync(purchaseOrderDto.Id).ConfigureAwait(false); + purchaseReturnRequest.AsnNumber = labelDto.AsnNumber; purchaseReturnRequest.RpNumber = labelDto.RpNumber; purchaseReturnRequest.ReturnTime=DateTime.Now; purchaseReturnRequest.SupplierCode= labelDto.SupplierCode; purchaseReturnRequest.ReturnType = EnumPurchaseReturnType.AfterPuton; purchaseReturnRequest.PoNumber = labelDto.PoNumber; - await SetDetailPropertiesAsync(detail, labelDto, balanceDto,locationDto).ConfigureAwait(false); + await SetDetailPropertiesAsync(detail, labelDto, balanceDto,locationDto, purchaseOrderDto).ConfigureAwait(false); } } @@ -135,12 +140,15 @@ public class PurchaseReturnRequestAppService : /// /// /// + /// /// private async Task SetDetailPropertiesAsync( PurchaseReturnRequestDetail detail, InventoryLabelDto labelDto, BalanceDTO balanceDto, - LocationDTO locationDto) + LocationDTO locationDto, + PurchaseOrderDTO purchaseOrderDto + ) { if (labelDto != null) { @@ -171,6 +179,12 @@ public class PurchaseReturnRequestAppService : detail.StdPackQty = balanceDto.StdPackQty; detail.Qty = balanceDto.Qty; } + + if (purchaseOrderDto != null) + { + detail.PoLine = + purchaseOrderDto.Details.FirstOrDefault(p => p.ItemCode == balanceDto.ItemCode && p.Lot == balanceDto.Lot).PoLine; + } } #endregion diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs index f64b4e6e4..fb77b0bf5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs @@ -133,7 +133,7 @@ public class MaterialRequestManager SetMaterialRequestDetailStatus(detail); } - //SetMaterialRequestStatus(oldEntity); + SetMaterialRequestStatus(oldEntity); await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); } @@ -146,7 +146,7 @@ public class MaterialRequestManager { detail.Status = EnumStatus.Close; } - else + else//要100 { detail.Status=EnumStatus.Open; } @@ -157,6 +157,14 @@ public class MaterialRequestManager } } + private void SetMaterialRequestStatus(MaterialRequest materialRequest) + { + if (materialRequest.Details.All(p => p.Status == EnumStatus.Close)) + { + materialRequest.RequestStatus = EnumRequestStatus.Completed; + } + } + public virtual async Task CompleteAsync(string number) { var entity = await GetByNumberAsync(number).ConfigureAwait(false); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/ExpectInOuts/IssueJobEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/ExpectInOuts/IssueJobEventHandler.cs index 70d496dfa..f3cb5ca84 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/ExpectInOuts/IssueJobEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/ExpectInOuts/IssueJobEventHandler.cs @@ -17,6 +17,13 @@ public class IssueJobEventHandler : , ILocalEventHandler> { + private readonly IBalanceAppService _balanceAppService; + + public IssueJobEventHandler(IBalanceAppService balanceAppService) + { + _balanceAppService = balanceAppService; + } + [UnitOfWork] public virtual async Task HandleEventAsync(SfsCreatedEntityEventData eventData) { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/PurchaseReceiptJobEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/PurchaseReceiptJobEventHandler.cs index 331faa759..09821b5db 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/PurchaseReceiptJobEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/PurchaseReceiptJobEventHandler.cs @@ -35,7 +35,7 @@ public class PurchaseReceiptJobEventHandler : var entity = eventData.Entity; //创建收货记录 - await CreatePurchaseReceiptNoteAsync(entity).ConfigureAwait(false); + await BuildPurchaseReceiptNoteAsync(entity).ConfigureAwait(false); } #region 私有 @@ -44,8 +44,9 @@ public class PurchaseReceiptJobEventHandler : /// 创建收货记录 /// /// - private async Task CreatePurchaseReceiptNoteAsync(PurchaseReceiptJob purchaseReceiptJob) + private async Task BuildPurchaseReceiptNoteAsync(PurchaseReceiptJob purchaseReceiptJob) { + var holdLocation = await LocationAclService.GetFirstByTypeAsync(EnumLocationType.HOLD).ConfigureAwait(false); //隔离库位 var createInput = ObjectMapper.Map(purchaseReceiptJob); //未收货记录 @@ -58,6 +59,16 @@ public class PurchaseReceiptJobEventHandler : detailInput.PurchaseReceiptInspectStatus = EnumPurchaseReceiptInspect.NORECEIPT; } + var noOkNoteDetailInputs = + createInput.Details.Where(p => p.PurchaseReceiptInspectStatus == EnumPurchaseReceiptInspect.NOK); + foreach (var detailInput in noOkNoteDetailInputs) + { + detailInput.HandledToLocationArea = holdLocation.AreaCode; + detailInput.HandledToLocationErpCode = holdLocation.ErpLocationCode; + detailInput.HandledToLocationGroup = holdLocation.LocationGroupCode; + detailInput.HandledToWarehouseCode=holdLocation.WarehouseCode; + } + await _purchaseReceiptNoteAppService.CreateAsync(createInput).ConfigureAwait(false); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ItemTransformRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ItemTransformRequestEventHandler.cs index a71aeb6c3..3baf0a20c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ItemTransformRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ItemTransformRequestEventHandler.cs @@ -74,9 +74,9 @@ public class ItemTransformRequestEventHandler ReasonCode = detail.ReasonCode, ToArriveDate = detail.ToArriveDate, ToExpireDate = detail.ToExpireDate, - ToItemDesc1 = detail.ItemDesc1, - ToItemDesc2 = detail.ItemDesc2, - ToItemName = detail.ItemName, + ToItemDesc1 = detail.ToItemDesc1, + ToItemDesc2 = detail.ToItemDesc2, + ToItemName = detail.ToItemName, ToLot = detail.ToLot, ToPackingCode = detail.ToPackingCode, ToQty = detail.ToQty, diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs index df7782591..3c648b711 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs @@ -28,17 +28,20 @@ public class MaterialRequestEventHandler private readonly IProductionLineAppService _productionLineAppService; private readonly IMaterialRequestManager _materialRequestManager; private readonly ILocationAppService _locationAppService; + private readonly IBalanceAppService _balanceAppService; public MaterialRequestEventHandler( IIssueJobAppService issueJobAppService , IProductionLineAppService productionLineAppService , IMaterialRequestManager materialRequestManager - , ILocationAppService locationAppService) + , ILocationAppService locationAppService + , IBalanceAppService balanceAppService) { _issueJobAppService = issueJobAppService; _productionLineAppService = productionLineAppService; _materialRequestManager = materialRequestManager; _locationAppService = locationAppService; + _balanceAppService = balanceAppService; } /// @@ -204,7 +207,7 @@ public class MaterialRequestEventHandler Statuses = transactionType.OutInventoryStatuses, }; //获取推荐库存 - var recommendList = await BalanceAclService.GetRecommendBalancesAsync(input).ConfigureAwait(false); + var recommendList = await _balanceAppService.GetRecommendBalancesAsync(input).ConfigureAwait(false); //没有推荐库存时 跳过此明细 不生成任务 if (recommendList.Count != 0) { @@ -215,16 +218,17 @@ public class MaterialRequestEventHandler if (materialRequest.UseOnTheWayLocation) { //获取在途库 - var locationDto= await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT).ConfigureAwait(false); + var locationDto = await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT).ConfigureAwait(false); detail.OnTheWayLocationCode = locationDto.Code; } jobDetails.Add(detail); materialRequestDetail.IssuedQty += recommend.Qty; + await _materialRequestManager.UpdateDetailsAsync(materialRequest).ConfigureAwait(false); + } } - return jobDetails; } @@ -240,21 +244,22 @@ public class MaterialRequestEventHandler detail.RecommendPackingCode = balance.PackingCode; detail.RecommendContainerCode = balance.ContainerCode; detail.RecommendSupplierBatch = balance.SupplierBatch; - detail.RecommendProduceDate= balance.ProduceDate; - detail.RecommendExpireDate= balance.ExpireDate; - detail.RecommendLot= balance.Lot; - detail.RecommendProduceDate=balance.ProduceDate; - detail.RecommendArriveDate= balance.ArriveDate; + detail.RecommendProduceDate = balance.ProduceDate; + detail.RecommendExpireDate = balance.ExpireDate; + detail.RecommendLot = balance.Lot; + detail.RecommendProduceDate = balance.ProduceDate; + detail.RecommendArriveDate = balance.ArriveDate; detail.RecommendFromLocationArea = balance.LocationArea; - detail.RecommendFromLocationCode= balance.LocationCode; - detail.RecommendFromLocationErpCode= balance.LocationErpCode; - detail.RecommendFromLocationGroup= balance.LocationGroup; - detail.RecommendFromWarehouseCode= balance.WarehouseCode; + detail.RecommendFromLocationCode = balance.LocationCode; + detail.RecommendFromLocationErpCode = balance.LocationErpCode; + detail.RecommendFromLocationGroup = balance.LocationGroup; + detail.RecommendFromWarehouseCode = balance.WarehouseCode; + detail.RecommendQty = balance.Qty; detail.Uom = balance.Uom; detail.ToLocationCode = materialRequestDetail.ToLocationCode; detail.ToLocationErpCode = materialRequestDetail.ToLocationErpCode; - detail.ToLocationArea= materialRequestDetail.ToLocationArea; + detail.ToLocationArea = materialRequestDetail.ToLocationArea; detail.ToWarehouseCode = materialRequestDetail.ToWarehouseCode; detail.ToLocationGroup = materialRequestDetail.ToLocationGroup; //detail.Operation = //TODO diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs index 4942734d8..0c5f36fa1 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading.Tasks; using Volo.Abp.EventBus; using Volo.Abp.Uow; +using Win_in.Sfs.Label.Application.Contracts; using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Event; using Win_in.Sfs.Wms.Inventory.Application.Contracts; @@ -25,14 +26,16 @@ public class PurchaseReturnNoteEventHandler private readonly IPurchaseReturnRequestAppService _purchaseReturnRequestApp; private readonly IPurchaseOrderAppService _purchaseOrderAppService; + private readonly IInventoryLabelAppService _inventoryLabelAppService; public PurchaseReturnNoteEventHandler( IPurchaseReturnRequestAppService purchaseReturnRequestApp - , IPurchaseOrderAppService purchaseOrderAppService - ) + , IPurchaseOrderAppService purchaseOrderAppService, + IInventoryLabelAppService inventoryLabelAppService) { _purchaseReturnRequestApp = purchaseReturnRequestApp; _purchaseOrderAppService = purchaseOrderAppService; + _inventoryLabelAppService = inventoryLabelAppService; } [UnitOfWork] @@ -53,10 +56,15 @@ public class PurchaseReturnNoteEventHandler private async Task UpdatePurchaseOrderAsync(PurchaseReturnNote entity) { - var purchaseOrderDetailUpdateInputs = entity.Details + foreach (var detail in entity.Details) + { + var inventoryLabelDto=await _inventoryLabelAppService.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false); + + var purchaseOrderDetailUpdateInputs = entity.Details .Select(BuildPurchaseOrderDetailUpdateInput).ToList(); - await _purchaseOrderAppService.UpdateDetailsAsync(entity.PoNumber, purchaseOrderDetailUpdateInputs).ConfigureAwait(false); + await _purchaseOrderAppService.UpdateDetailsAsync(entity.PoNumber, purchaseOrderDetailUpdateInputs).ConfigureAwait(false); + } } private static PurchaseOrderDetailUpdateInput BuildPurchaseOrderDetailUpdateInput(PurchaseReturnNoteDetail purchaseReturnNoteDetail)