|
|
@ -28,17 +28,20 @@ public class PurchaseOrderAppService : |
|
|
|
private readonly IPurchaseOrderManager _purchaseOrderManager; |
|
|
|
private readonly ISupplierAppService _supplierAppService; |
|
|
|
private readonly IItemBasicAppService _itemBasicAppService; |
|
|
|
private readonly ILocationAppService _locationAppService; |
|
|
|
|
|
|
|
public PurchaseOrderAppService( |
|
|
|
IPurchaseOrderRepository repository, |
|
|
|
IPurchaseOrderManager purchaseOrderManager, |
|
|
|
ISupplierAppService supplierAppService, |
|
|
|
IItemBasicAppService itemBasicAppService) : base(repository) |
|
|
|
IItemBasicAppService itemBasicAppService |
|
|
|
, ILocationAppService locationAppService) : base(repository) |
|
|
|
{ |
|
|
|
_repository = repository; |
|
|
|
_purchaseOrderManager = purchaseOrderManager; |
|
|
|
_supplierAppService = supplierAppService; |
|
|
|
_itemBasicAppService = itemBasicAppService; |
|
|
|
_locationAppService = locationAppService; |
|
|
|
base.CreatePolicyName = PurchaseOrderPermissions.Create; |
|
|
|
base.UpdatePolicyName = PurchaseOrderPermissions.Update; |
|
|
|
base.DeletePolicyName = PurchaseOrderPermissions.Delete; |
|
|
@ -56,6 +59,15 @@ public class PurchaseOrderAppService : |
|
|
|
{ |
|
|
|
var ImportData = dictionary.Select(p => p.Key); |
|
|
|
|
|
|
|
|
|
|
|
#region 校验ERP库位是否存在
|
|
|
|
var allTempErpLocationCode = ImportData.Select(p => p.Details.Select(p => p.LocationErpCode).ToList()).ToList(); |
|
|
|
var allErpLocationCode = new List<string>(); |
|
|
|
allTempErpLocationCode.ForEach(p => { allErpLocationCode.AddRange(p); }); |
|
|
|
var erpLocations = await CheckErpLocationCodeAsync(allErpLocationCode).ConfigureAwait(false); |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
var supplierDtos = new List<SupplierDTO>(); |
|
|
|
#region 校验供应商
|
|
|
|
|
|
|
@ -190,7 +202,21 @@ public class PurchaseOrderAppService : |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
private async Task<List<LocationDTO>> CheckErpLocationCodeAsync(List<string> erpLocationCodes) |
|
|
|
{ |
|
|
|
erpLocationCodes = erpLocationCodes.Distinct().ToList(); |
|
|
|
var result = await _locationAppService.GetListByErpLocationCodes(erpLocationCodes).ConfigureAwait(false); |
|
|
|
var resultcode = result.Select(r => r.ErpLocationCode).Distinct(); |
|
|
|
foreach (var code in erpLocationCodes) |
|
|
|
{ |
|
|
|
if (resultcode.All(p => p != code)) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"ERP储位代码【{code}】不存在"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|