From 4cb6315a78e9aac0ca4e330ce16a4bb510b2353b Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Thu, 23 May 2024 14:07:11 +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 --- .../Stores/PurchaseReturnNoteController.cs | 18 +++++++++++---- .../ISplitPackingRecAppService.cs | 1 + .../SplitPackingRecAppService.cs | 13 ++++++++++- .../SplitPackings/ISplitPackingRecManager.cs | 1 + .../SplitPackings/SplitPackingRecManager.cs | 23 ++++++++++++++++++- .../IPurchaseOrderAppService.cs | 1 + .../PurchaseReceiptNoteAppService.cs | 4 ++-- .../PurchaseOrders/PurchaseOrderAppService.cs | 10 ++++++++ .../PurchaseReturnNoteEventHandler.cs | 3 +-- .../settings/appsettings.Development.json | 4 ++-- 10 files changed, 65 insertions(+), 13 deletions(-) diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs index 0dde430e2..1b5403630 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs @@ -29,7 +29,7 @@ public class PurchaseReturnNoteController : AbpController private readonly IInventoryLabelAppService _labelAppService; private readonly IBalanceAppService _balanceAppService; - + private readonly IPurchaseOrderAppService _purchaseOrderAppService; /// /// /// @@ -38,12 +38,14 @@ public class PurchaseReturnNoteController : AbpController /// public PurchaseReturnNoteController(IPurchaseReturnNoteAppService noteAppService, IInventoryLabelAppService labelAppService, - IBalanceAppService balanceAppService + IBalanceAppService balanceAppService, + IPurchaseOrderAppService purchaseOrderAppService ) { _noteAppService = noteAppService; this._labelAppService = labelAppService; this._balanceAppService = balanceAppService; + _purchaseOrderAppService = purchaseOrderAppService; } /// @@ -133,7 +135,7 @@ public class PurchaseReturnNoteController : AbpController //createInputDetail.WarehouseCode= poNumberItem. await SetDetailByBalanceAsync(packingCode, createInputDetail).ConfigureAwait(false); - + await SetDetailByPoAsync(poNumberDetail.PoNumber, createInputDetail).ConfigureAwait(false); returnNoteEditInput.Details.Add(createInputDetail); } @@ -142,11 +144,17 @@ public class PurchaseReturnNoteController : AbpController return createInputs; } - + private async Task SetDetailByPoAsync(string poNumber, PurchaseReturnNoteDetailInput createInputDetail) + { + var po = await _purchaseOrderAppService.GetListByNumberAndItemCodeAsync(poNumber, createInputDetail.ItemCode).ConfigureAwait(false); + Check.NotNull(po, nameof(PurchaseOrderDTO)); + var detail = po.Details.FirstOrDefault(r => r.ItemCode == createInputDetail.ItemCode); + Check.NotNull(detail, nameof(PurchaseOrderDetailDTO)); + createInputDetail.PoLine = detail.PoLine; + } private async Task SetDetailByBalanceAsync(string packingCode, PurchaseReturnNoteDetailInput createInputDetail) { var balance = await _balanceAppService.GetByPackingCodeAsync(packingCode).ConfigureAwait(false); - Check.NotNull(balance, nameof(BalanceDTO)); createInputDetail.LocationCode = balance.LocationCode; diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs index 48c7c4837..2fe7efc27 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs @@ -28,4 +28,5 @@ public interface ISplitPackingRecAppService Task> GetListByFromPackingCode(List fromPackingCodeList); Task GetTopPackingCode(string toPackingCode); Task GetSplitPackingCode(string toPackingCode); + Task> GetFirstOrDefaultPackingCode(List toPackingCodeList); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs index 1c3c268ce..d6545a3e2 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs @@ -76,7 +76,18 @@ public class SplitPackingRecAppService : List ret = ObjectMapper.Map, List>(lst); return ret; } - + /// + /// 取每个目标箱码的最后一条拆箱记录 + /// + /// 目标箱码列表 + /// + [HttpGet("get-first-or-default-packing-code")] + public async Task> GetFirstOrDefaultPackingCode(List toPackingCodeList) + { + var lst = await _splitPackingRecManager.GetFirstOrDefaultPackingCode(toPackingCodeList).ConfigureAwait(false); + List ret = ObjectMapper.Map, List>(lst); + return ret; + } /// /// 取每个源标箱码的“操作状态=其它”的拆箱记录 /// diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs index 85d68bc5b..0d9704ec3 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs @@ -25,4 +25,5 @@ public interface ISplitPackingRecManager : IDomainService Task> GetListByFromPackingCode(List fromPackingCodeList); Task GetTopPackingCode(string packingCode); Task GetSplitPackingCode(string packingCode); + Task> GetFirstOrDefaultPackingCode(List toPackingCodeList); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs index c2f311b4a..3e331098e 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs @@ -122,7 +122,28 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager } return ret; } + /// + /// 获取所有最后一条操作想骂记录 + /// + /// 目标箱码列表 + /// + public async Task> GetFirstOrDefaultPackingCode(List toPackingCodeList) + { + List ret = new List(); + List lst = await _repository.GetListAsync( + itm => toPackingCodeList.Contains(itm.ToPackingCode)).ConfigureAwait(false); + foreach (string toCode in toPackingCodeList) + { + var obj = lst.Where(itm => itm.ToPackingCode == toCode) + .OrderByDescending(itm => itm.CreationTime).FirstOrDefault(); + if (obj != null) + { + ret.Add(obj); + } + } + return ret; + } /// /// 取每个源标箱码的“操作状态=其它”的拆箱记录 /// @@ -168,7 +189,7 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager /// public async Task GetSplitPackingCode(string packingCode) { - SplitPackingRec item = await _repository.FirstOrDefaultAsync(itm => itm.ToPackingCode == packingCode && itm.OprType == OprTypeEnum.SplitBox).ConfigureAwait(false); + SplitPackingRec item = await _repository.FirstOrDefaultAsync(itm => itm.ToPackingCode == packingCode && itm.OprType == OprTypeEnum.Other).ConfigureAwait(false); return item; } 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 1a1394242..40900c47b 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 @@ -41,4 +41,5 @@ public interface IPurchaseOrderAppService Task> GetListBySupplierCodeAsync(string supplierCode, string itemCode); Task> GetNoPoBillList(List poBillNo); Task CreateOrUpdateAsync(PurchaseOrderEditInput input); + Task GetListByNumberAndItemCodeAsync(string number, string itemCode); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs index 013e43786..9a8c61aad 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/PurchaseReceiptNotes/PurchaseReceiptNoteAppService.cs @@ -170,14 +170,14 @@ public class PurchaseReceiptNoteAppService : public virtual async Task GetDetailByItemAndPackingAsync(string itemCode, string packingCode) { - var list=await _splitPackingRecAppService.GetListByToPackingCode(new List(){ packingCode }).ConfigureAwait(false); + var list=await _splitPackingRecAppService.GetFirstOrDefaultPackingCode(new List(){ packingCode }).ConfigureAwait(false); var splitPackingRecDto=list.FirstOrDefault(); var entity = (await _repository.GetListAsync(p => p.Details.Any(y => y.ItemCode == itemCode && y.PackingCode == (splitPackingRecDto==null? packingCode: splitPackingRecDto.ToTopPackingCode)), true).ConfigureAwait(false)).FirstOrDefault(); if (entity != null) { - var detail = entity.Details.FirstOrDefault(y => y.ItemCode == itemCode && y.PackingCode == splitPackingRecDto.ToTopPackingCode); + var detail = entity.Details.FirstOrDefault(y => y.ItemCode == itemCode && y.PackingCode == (splitPackingRecDto == null ? packingCode : splitPackingRecDto.ToTopPackingCode)); var dto = ObjectMapper.Map(detail); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs index f083bf418..31b2a920b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Volo.Abp; using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Repositories; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; @@ -320,7 +321,16 @@ public class PurchaseOrderAppService : return dtos; } + [HttpGet("get-list-by-number-nad-item-code")] + public virtual async Task GetListByNumberAndItemCodeAsync(string number,string itemCode) + { + var entity = await _repository.GetListAsync(p =>p.Number==number&& p.Details.Any(y => y.ItemCode == itemCode),true) + .ConfigureAwait(false); + + var dtos = ObjectMapper.Map(entity.FirstOrDefault()); + return dtos; + } #region 校验 [HttpPost("check-status")] 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 d71e51a92..a4a741a18 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 @@ -64,8 +64,7 @@ public class PurchaseReturnNoteEventHandler { var inventoryLabelDto=await _inventoryLabelAppService.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false); - var purchaseOrderDetailUpdateInputs = entity.Details - .Select(BuildPurchaseOrderDetailUpdateInput).ToList(); + var purchaseOrderDetailUpdateInputs = entity.Details.Select(BuildPurchaseOrderDetailUpdateInput).ToList(); await _purchaseOrderAppService.UpdateDetailsAsync(entity.PoNumber, purchaseOrderDetailUpdateInputs).ConfigureAwait(false); } diff --git a/build/src/docker/publish/conf/settings/appsettings.Development.json b/build/src/docker/publish/conf/settings/appsettings.Development.json index c9e77bfc5..54cd1daea 100644 --- a/build/src/docker/publish/conf/settings/appsettings.Development.json +++ b/build/src/docker/publish/conf/settings/appsettings.Development.json @@ -117,8 +117,8 @@ //"BaseUrl": "http://localhost:59093/" }, "BaseData": { - "BaseUrl": "http://dev.ccwin-in.com:60084/" - //"BaseUrl": "http://localhost:59094/" + //"BaseUrl": "http://dev.ccwin-in.com:60084/" + "BaseUrl": "http://localhost:59094/" }, "Default": { "BaseUrl": "http://dev.ccwin-in.com:60083/"