Browse Source

添加校验erp储位零件对应关系相关方法

dev_DY_CC
lvzb 1 year ago
parent
commit
a17fb9308a
  1. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Settings/BasedataSettingsDto.cs
  2. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Settings/BasedataSettingsUpdateInput.cs
  3. 6
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs
  4. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Setttings/BasedataSettingsAppService.cs
  5. 5
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Settings/BasedataSettingDefinitionProvider.cs
  6. 36
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain.Acl/ErpLocationItem/ErpLocationItemAclService.cs
  7. 9
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain.Acl/ErpLocationItem/IErpLocationItemAclService.cs
  8. 9
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Settings/BasedataSettingsDto.cs

@ -6,6 +6,8 @@ public class BasedataSettingsDto
public string ItemStoreRelation_LocationTypes { get; set; }
public string ItemStoreRelation_NotFoundReturnInfinity { get; set; }
public string ErpLocationItem_NotFoundReturnInfinity { get; set; }
public string ItemQuality_NotFoundReturnExempt { get; set; }
public string AQL_DefaultSampleQty { get; set; }

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Settings/BasedataSettingsUpdateInput.cs

@ -5,6 +5,7 @@ public class BasedataSettingsUpdateInput
public string ItemStoreRelation_LocationTypes { get; set; }
public string ItemStoreRelation_NotFoundReturnInfinity { get; set; }
public string ErpLocationItem_NotFoundReturnInfinity { get; set; }
public string ItemQuality_NotFoundReturnExempt { get; set; }
public string AQL_DefaultSampleQty { get; set; }

6
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs

@ -80,8 +80,8 @@ public class ErpLocationItemAppService
if (entity == null)
{
//if (await SettingManager.IsTrueAsync(BasedataSettings.ErpLocationItem.NotFoundReturnInfinity).ConfigureAwait(false))
//{
if (await SettingManager.IsTrueAsync(BasedataSettings.ErpLocationItem.NotFoundReturnInfinity).ConfigureAwait(false))
{
entity = new ErpLocationItem()
{
@ -89,7 +89,7 @@ public class ErpLocationItemAppService
ErpLocationCode= erpLocationCode
};
// }
}
}
var dto = ObjectMapper.Map<ErpLocationItem, ErpLocationItemDTO>(entity);
return dto;

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Setttings/BasedataSettingsAppService.cs

@ -31,6 +31,8 @@ public class BasedataSettingsAppService :
settings.Find(p => p.Name == BasedataSettings.ItemStoreRelation.LocationTypes)?.Value;
dto.ItemStoreRelation_NotFoundReturnInfinity =
settings.Find(p => p.Name == BasedataSettings.ItemStoreRelation.NotFoundReturnInfinity)?.Value;
dto.ErpLocationItem_NotFoundReturnInfinity =
settings.Find(p => p.Name == BasedataSettings.ErpLocationItem.NotFoundReturnInfinity)?.Value;
dto.ItemQuality_NotFoundReturnExempt =
settings.Find(p => p.Name == BasedataSettings.ItemQuality.NotFoundReturnExempt)?.Value;
dto.AQL_DefaultSampleQty =
@ -49,6 +51,7 @@ public class BasedataSettingsAppService :
{
await _settingManager.SetGlobalAsync(BasedataSettings.ItemStoreRelation.LocationTypes, input.ItemStoreRelation_LocationTypes).ConfigureAwait(false);
await _settingManager.SetGlobalAsync(BasedataSettings.ItemStoreRelation.NotFoundReturnInfinity, input.ItemStoreRelation_NotFoundReturnInfinity).ConfigureAwait(false);
await _settingManager.SetGlobalAsync(BasedataSettings.ErpLocationItem.NotFoundReturnInfinity, input.ErpLocationItem_NotFoundReturnInfinity).ConfigureAwait(false);
await _settingManager.SetGlobalAsync(BasedataSettings.ItemQuality.NotFoundReturnExempt, input.ItemQuality_NotFoundReturnExempt).ConfigureAwait(false);
await _settingManager.SetGlobalAsync(BasedataSettings.AQL.DefaultSampleQty, input.AQL_DefaultSampleQty).ConfigureAwait(false);
await _settingManager.SetGlobalAsync(BasedataSettings.ItemPack.DefaultPackQty, input.ItemPack_DefaultPackQty).ConfigureAwait(false);

5
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Settings/BasedataSettingDefinitionProvider.cs

@ -23,6 +23,11 @@ public class BasedataSettingDefinitionProvider : SettingDefinitionProvider
BasedataSettings.ItemStoreRelation.NotFoundReturnInfinity,
"true",
LocalizableString.Create<BasedataResource>(BasedataSettings.ItemStoreRelation.NotFoundReturnInfinity)
),
new SettingDefinition(
BasedataSettings.ErpLocationItem.NotFoundReturnInfinity,
"false",
LocalizableString.Create<BasedataResource>(BasedataSettings.ErpLocationItem.NotFoundReturnInfinity)
),
//找不到质量信息, 默认为免检
new SettingDefinition(

36
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain.Acl/ErpLocationItem/ErpLocationItemAclService.cs

@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Caching;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Application;
namespace Win_in.Sfs.Wms.Inventory.Domain.Acl.ErpLocationItem;
public class ErpLocationItemAclService
: AclServiceBase, IErpLocationItemAclService
{
private readonly IErpLocationItemAppService _appService;
private readonly IDistributedCache<ErpLocationItemDTO> _cache;
public ErpLocationItemAclService(
IErpLocationItemAppService appService
, IDistributedCache<ErpLocationItemDTO> cache
)
{
_appService = appService;
_cache = cache;
}
public virtual async Task<ErpLocationItemDTO> GetFirstAsync(string itemCode, string locationCode)
{
var dto = await _cache.GetOrAddItemAsync(
$"{itemCode}:{locationCode}",
async () => await GetFromAppServiceAsync(itemCode, locationCode).ConfigureAwait(false),
CacheMinutes).ConfigureAwait(false);
return dto;
}
private async Task<ErpLocationItemDTO> GetFromAppServiceAsync(string itemCode, string locationCode)
{
return await _appService.CheckItemErpLocationIsAvailable(itemCode, locationCode).ConfigureAwait(false);
}
}

9
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain.Acl/ErpLocationItem/IErpLocationItemAclService.cs

@ -0,0 +1,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Inventory.Domain.Acl.ErpLocationItem;
public interface IErpLocationItemAclService
{
Task<ErpLocationItemDTO> GetFirstAsync(string itemCode, string locationCode);
}

9
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs

@ -14,6 +14,7 @@ using Volo.Abp.SettingManagement;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Inventory.Domain.Acl.ErpLocationItem;
using Win_in.Sfs.Wms.Inventory.Domain.Acl.ItemBasic;
using Win_in.Sfs.Wms.Inventory.Domain.Acl.ItemStoreRelation;
using Win_in.Sfs.Wms.Inventory.Domain.Acl.Location;
@ -29,7 +30,7 @@ public class BalanceManager : DomainService, IBalanceManager
private readonly IItemBasicAclService _itemBasicAclService;
private readonly ILocationAclService _locationAclService;
private readonly IItemStoreRelationAclService _itemStoreRelationAclService;
private readonly IErpLocationItemAppService _erpLocationItemAppService;
private readonly IErpLocationItemAclService _erpLocationItemAclService;
private readonly ISettingManager _settingManager;
private readonly IExpectInRepository _expectInRepository;
private readonly IExpectOutRepository _expectOutRepository;
@ -42,7 +43,7 @@ public class BalanceManager : DomainService, IBalanceManager
, IExpectOutRepository expectOutRepository
, IItemStoreRelationAclService itemStoreRelationAclService
, ISettingManager settingManager
,IErpLocationItemAppService erpLocationItemAppService
, IErpLocationItemAclService erpLocationItemAclService
)
{
_objectMapper = objectMapper;
@ -53,7 +54,7 @@ public class BalanceManager : DomainService, IBalanceManager
_itemStoreRelationAclService = itemStoreRelationAclService;
_settingManager = settingManager;
_expectOutRepository = expectOutRepository;
_erpLocationItemAppService= erpLocationItemAppService;
_erpLocationItemAclService = erpLocationItemAclService;
}
#region Modify
@ -162,7 +163,7 @@ public class BalanceManager : DomainService, IBalanceManager
/// <exception cref="UserFriendlyException"></exception>
private async Task CheckErpLocationItemAsync(Transaction transaction)
{
var erpLocationItem =await _erpLocationItemAppService.CheckItemErpLocationIsAvailable( transaction.ItemCode, transaction.LocationErpCode).ConfigureAwait(false);
var erpLocationItem =await _erpLocationItemAclService.GetFirstAsync( transaction.ItemCode, transaction.LocationErpCode).ConfigureAwait(false);
if (erpLocationItem == null)
{

Loading…
Cancel
Save