Browse Source

添加库位类型校验

master
郑勃旭 1 year ago
parent
commit
265aaae596
  1. 24
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs
  2. 35
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs

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

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

35
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs

@ -22,12 +22,16 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
{ {
private readonly IDepartmentAppService _departmentApp; private readonly IDepartmentAppService _departmentApp;
private readonly IUnplannedReceiptRequestManager _unplannedReceiptRequestManager; private readonly IUnplannedReceiptRequestManager _unplannedReceiptRequestManager;
private readonly ILocationAppService _locationAppService;
private readonly IBalanceAppService _balanceAppService;
public UnplannedReceiptRequestForDongyangAppService(IUnplannedReceiptRequestRepository repository, public UnplannedReceiptRequestForDongyangAppService(IUnplannedReceiptRequestRepository repository,
IUnplannedReceiptRequestManager unplannedReceiptRequestManager, IUnplannedReceiptRequestManager unplannedReceiptRequestManager,
IDepartmentAppService departmentApp) : base(repository, unplannedReceiptRequestManager) IDepartmentAppService departmentApp, ILocationAppService locationAppService, IBalanceAppService balanceAppService) : base(repository, unplannedReceiptRequestManager)
{ {
_unplannedReceiptRequestManager = unplannedReceiptRequestManager; _unplannedReceiptRequestManager = unplannedReceiptRequestManager;
_departmentApp = departmentApp; _departmentApp = departmentApp;
_locationAppService = locationAppService;
_balanceAppService = balanceAppService;
} }
/// <summary> /// <summary>
@ -51,12 +55,37 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
{ {
if (detail.UnplannedReceiptType == EnumUnplannedReceiptType.Raw) if (detail.UnplannedReceiptType == EnumUnplannedReceiptType.Raw)
{ {
//这写原料 检验 var locationDto= await _locationAppService.GetByCodeAsync(detail.LocationCode);
if (locationDto.Type!=EnumLocationType.RAW||locationDto.Type!=EnumLocationType.SEMI)
{
throw new UserFriendlyException($"【{detail.LocationCode}】库位类型错误," +
$"不是{EnumLocationType.RAW.GetDisplayName()}" +
$"或{EnumLocationType.SEMI.GetDisplayName()}】");
}
//需要赋值一个这个方法 去掉区域参数 换成库位参数
//_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput()
//{
// ItemCode = detail.ItemCode,
//});
} }
if (detail.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) if (detail.UnplannedReceiptType == EnumUnplannedReceiptType.Wip)
{ {
//这写线边 校验 var locationDto = await _locationAppService.GetByCodeAsync(detail.LocationCode);
if (locationDto.Type != EnumLocationType.WIP)
{
throw new UserFriendlyException($"【{detail.LocationCode}】库位类型错误," +
$"不是{EnumLocationType.WIP.GetDisplayName()}");
}
//需要赋值一个这个方法 去掉区域参数 换成库位参数
//_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput()
//{
// ItemCode = detail.ItemCode,
//});
} }
await SetDetailPropertiesAsync(detail).ConfigureAwait(false); await SetDetailPropertiesAsync(detail).ConfigureAwait(false);

Loading…
Cancel
Save