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 4668b56a8..71c7135e0 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
@@ -464,6 +464,30 @@ public class BalanceAppService
return dtos;
}
+ ///
+ /// 根据发料任务需求,算出推荐的库存 (在获取时 已经添加预占用)
+ ///
+ ///
+ ///
+ ///
+ [HttpGet("recommend-list-location")]
+ public virtual async Task> 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>(balances);
+
+ return dtos;
+ }
+
///
/// pda发料执行查询使用
///
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs
index 5e685a6c1..c363be0f8 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs
+++ b/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 IUnplannedReceiptRequestManager _unplannedReceiptRequestManager;
+ private readonly ILocationAppService _locationAppService;
+ private readonly IBalanceAppService _balanceAppService;
public UnplannedReceiptRequestForDongyangAppService(IUnplannedReceiptRequestRepository repository,
IUnplannedReceiptRequestManager unplannedReceiptRequestManager,
- IDepartmentAppService departmentApp) : base(repository, unplannedReceiptRequestManager)
+ IDepartmentAppService departmentApp, ILocationAppService locationAppService, IBalanceAppService balanceAppService) : base(repository, unplannedReceiptRequestManager)
{
_unplannedReceiptRequestManager = unplannedReceiptRequestManager;
_departmentApp = departmentApp;
+ _locationAppService = locationAppService;
+ _balanceAppService = balanceAppService;
}
///
@@ -51,12 +55,37 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
{
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)
{
- //这写线边 校验
+ 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);