Browse Source

给缴库 做拆分明细

master
郑勃旭 1 year ago
parent
commit
0cd7e24c34
  1. 46
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs
  2. 21
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/ProductReceiptNoteEventHandler.cs

46
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs

@ -464,29 +464,29 @@ public class BalanceAppService
return dtos; return dtos;
} }
/// <summary> ///// <summary>
/// 根据发料任务需求,算出推荐的库存 (在获取时 已经添加预占用) ///// 根据发料任务需求,算出推荐的库存 (在获取时 已经添加预占用)
/// </summary> ///// </summary>
/// <param name="input"></param> ///// <param name="input"></param>
/// <returns></returns> ///// <returns></returns>
/// <exception cref="NotImplementedException"></exception> ///// <exception cref="NotImplementedException"></exception>
[HttpGet("recommend-list-location")] //[HttpGet("recommend-list-location")]
public virtual async Task<List<BalanceDTO>> GetRecommendBalancesAsync(RecommendBalanceRequestInput input) //public virtual async Task<List<BalanceDTO>> GetRecommendBalancesListAsync(RecommendBalanceRequestInput input)
{ //{
var traceId = GuidGenerator.Create(); // var traceId = GuidGenerator.Create();
var itemCode = input.ItemCode; // var itemCode = input.ItemCode;
var qty = input.Qty; // var qty = input.Qty;
var locationTypes = input.LocationTypes; // var locationTypes = input.LocationTypes;
var locationAreas = input.LocationAreas; // var locationAreas = input.LocationAreas;
var statuses = input.Statuses; // var statuses = input.Statuses;
Logger.LogDebug(traceId + "|Input:" + input); // Logger.LogDebug(traceId + "|Input:" + input);
var balances = await _balanceManager.GetRecommendBalancesAsync(traceId, itemCode, qty, locationTypes, locationAreas, statuses).ConfigureAwait(false); // var balances = await _balanceManager.GetRecommendBalancesAsync(traceId, itemCode, qty, locationTypes, locationAreas, statuses).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<Balance>, List<BalanceDTO>>(balances); // var dtos = ObjectMapper.Map<List<Balance>, List<BalanceDTO>>(balances);
return dtos; // return dtos;
} //}
/// <summary> /// <summary>
/// pda发料执行查询使用 /// pda发料执行查询使用

21
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/ProductReceiptNoteEventHandler.cs

@ -1,7 +1,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Castle.Components.DictionaryAdapter;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Shared.Event; using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
@ -32,12 +34,25 @@ public class ProductReceiptNoteEventHandler
protected override async Task AddExchangeDataAsync(List<ProductReceiptNote> entities) protected override async Task AddExchangeDataAsync(List<ProductReceiptNote> entities)
{ {
var dtos = ObjectMapper.Map<List<ProductReceiptNote>, List<ProductReceiptNoteDTO>>(entities); var result = new List<ProductReceiptNoteDTO>();
foreach (var detail in dtos.SelectMany(dto => dto.Details))
foreach (var entity in entities)
{
foreach (var detail in entity.Details)
{
var dto = ObjectMapper.Map<ProductReceiptNote, ProductReceiptNoteDTO>(entity);
var detailDto = ObjectMapper.Map<ProductReceiptNoteDetail, ProductReceiptNoteDetailDTO>(detail);
dto.Details = new EditableList<ProductReceiptNoteDetailDTO>{ detailDto };
result.Add(dto);
}
}
foreach (var detail in result.SelectMany(dto => dto.Details))
{ {
await detail.TrySetLocationAsync(LocationAclService, detail.LocationCode).ConfigureAwait(false); await detail.TrySetLocationAsync(LocationAclService, detail.LocationCode).ConfigureAwait(false);
} }
var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, ExchangeDataType, dtos).ConfigureAwait(false);
var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, ExchangeDataType, result).ConfigureAwait(false);
await AddManyAsync(exchangeData).ConfigureAwait(false); await AddManyAsync(exchangeData).ConfigureAwait(false);
} }

Loading…
Cancel
Save