diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReceiptRequestController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReceiptRequestController.cs index b7cdd062a..4de253506 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReceiptRequestController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReceiptRequestController.cs @@ -48,4 +48,19 @@ public class PurchaseReceiptRequestController : AbpController { return await _purchaseReceiptRequestAppService.GetDetailByItemAndPackingAsync(itemCode, packingCode).ConfigureAwait(false); } + + /// + /// 【获取】【收货记录详情】根据 物品 传入箱码的根箱码 + /// + /// + /// + /// + [HttpGet("detail-by-item-and-rootpacking")] + public virtual async Task GetDetailByItemAndRootPackingAsync(string itemCode, + string packingCode) + { + return await _purchaseReceiptRequestAppService.GetDetailByItemAndRootPackingAsync(itemCode, packingCode).ConfigureAwait(false); + } + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs index 9bb0ff309..060ae62d9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs @@ -32,12 +32,21 @@ public interface IPurchaseReceiptRequestAppService string packingCode); /// - /// 修改请求状态 + /// 【获取】【收货记录详情】根据 物品 传入箱码的根箱码 /// - /// - /// + /// + /// /// - Task UpdatePurchaseReceiptRequestAsync(string number, + Task GetDetailByItemAndRootPackingAsync(string itemCode, + string packingCode); + + /// + /// 修改请求状态 + /// + /// + /// + /// + Task UpdatePurchaseReceiptRequestAsync(string number, EnumRequestStatus enumRequestStatus); /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs index 9a9df2444..37b2887a8 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReceiptRequests/PurchaseReceiptRequestAppService.cs @@ -9,6 +9,7 @@ using Volo.Abp.Domain.Entities; using Volo.Abp.ObjectMapping; using Volo.Abp.Uow; using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Label.Application.Contracts; using Win_in.Sfs.Shared.Domain.Shared; @@ -30,16 +31,20 @@ public class PurchaseReceiptRequestAppService : { private readonly IPurchaseReceiptRequestManager _purchaseReceiptRequestManager; + private readonly ISplitPackingRecManager _splitPackingRecManager; + + public PurchaseReceiptRequestAppService( IPurchaseReceiptRequestRepository repository, - IPurchaseReceiptRequestManager purchaseReceiptRequestManager - ) : base(repository, purchaseReceiptRequestManager) + IPurchaseReceiptRequestManager purchaseReceiptRequestManager, + ISplitPackingRecManager splitPackingRecManager) : base(repository, purchaseReceiptRequestManager) { _purchaseReceiptRequestManager = purchaseReceiptRequestManager; base.CreatePolicyName = PurchaseReceiptRequestPermissions.Create; base.UpdatePolicyName = PurchaseReceiptRequestPermissions.Update; base.DeletePolicyName = PurchaseReceiptRequestPermissions.Delete; + _splitPackingRecManager = splitPackingRecManager; } #region 东阳使用 @@ -88,6 +93,39 @@ public class PurchaseReceiptRequestAppService : } } + /// + /// 【获取】【收货记录详情】根据 物品 传入箱码的根箱码 + /// + /// + /// + /// + [HttpGet("detail-by-item-and-rootpacking")] + public virtual async Task GetDetailByItemAndRootPackingAsync(string itemCode, + string packingCode) + { + var topObj = await _splitPackingRecManager.GetTopPackingCode(packingCode).ConfigureAwait(false); + if (topObj == null || string.IsNullOrEmpty(topObj.ToTopPackingCode)) + { + throw new UserFriendlyException($"根据箱码{packingCode}到拆箱记录表中没有取到顶级箱码!"); + } + + var entitysList = (await _repository.GetListAsync(p => p.Details.Any(y => y.ItemCode == itemCode && y.PackingCode == topObj.ToTopPackingCode), true).ConfigureAwait(false)); + + if (entitysList != null && entitysList.Any()) + { + var entity = entitysList.FirstOrDefault(); + + var detail = entity.Details.FirstOrDefault(y => y.ItemCode == itemCode && y.PackingCode == topObj.ToTopPackingCode); + + var dto = ObjectMapper.Map(detail); + + return dto; + } + else + { + throw new UserFriendlyException("未在到货通知中找到该箱码信息"); + } + } #endregion