Browse Source

添加校验ERP储位与零件关系校验

dev_DY_CC
lvzb 1 year ago
parent
commit
9f25dde767
  1. 1
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Dapper.Fawtyg.Tyrp/DataExchangeDapperFawtygModule.cs
  2. 25
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml
  3. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/IErpLocationItemAppService.cs
  4. 24
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs
  5. 2
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs

1
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Dapper.Fawtyg.Tyrp/DataExchangeDapperFawtygModule.cs

@ -11,6 +11,7 @@ using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Boms;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Customers;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Dictpjs;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.ErpLocationItems;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.ErpLocations;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.InterfaceCalendars;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Products;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.PurchasePrices;

25
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml

@ -606,6 +606,31 @@
物品代码
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.ErpLocation.ErpLocationExchangeDto.Code">
<summary>
代码
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.ErpLocation.ErpLocationExchangeDto.Name">
<summary>
名称
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.ErpLocation.ErpLocationExchangeDto.Description">
<summary>
描述
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.ErpLocation.ErpLocationExchangeDto.Type">
<summary>
类型
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.ErpLocation.ErpLocationExchangeDto.WarehouseCode">
<summary>
仓库代码
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.InterfaceCalendar.InterfaceCalendarExchangeDto.Enabled">
<summary>
是否可用

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/IErpLocationItemAppService.cs

@ -6,5 +6,6 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public interface IErpLocationItemAppService : ISfsBaseDataAppServiceBase<ErpLocationItemDTO, SfsBaseDataRequestInputBase, ErpLocationItemEditInput>, ISfsUpsertAppService<ErpLocationItemEditInput>
{
Task<ErpLocationItemDTO> CheckItemErpLocationIsAvailable(string itemCode, string erpLocationCode);
Task<List<ErpLocationItemDTO>> GetListByItemCodeAsync(string itemCode);
}

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

@ -8,6 +8,8 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
@ -44,18 +46,26 @@ public class ErpLocationItemAppService
/// <param name="itemCode"></param>
/// <param name="erpLocationCode"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
[HttpGet("check-item-erplocation-is-available")]
public virtual async Task<bool> CheckItemErpLocationIsAvailable(string itemCode,string erpLocationCode)
public virtual async Task<ErpLocationItemDTO> CheckItemErpLocationIsAvailable(string itemCode,string erpLocationCode)
{
var entity = await _repository.FindAsync(p => p.ItemCode == itemCode && p.ErpLocationCode== erpLocationCode).ConfigureAwait(false);
var entity = await _repository.FirstOrDefaultAsync(p => p.ItemCode == itemCode && p.ErpLocationCode== erpLocationCode).ConfigureAwait(false);
if (entity == null)
{
throw new UserFriendlyException($"未找到物料代码为 {itemCode} 和储位代码 {erpLocationCode} 的对应关系");
}
if (await SettingManager.IsTrueAsync(BasedataSettings.ErpLocationItem.NotFoundReturnInfinity).ConfigureAwait(false))
{
return true;
entity = new ErpLocationItem()
{
ItemCode = itemCode,
ErpLocationCode= erpLocationCode
};
}
}
var dto = ObjectMapper.Map<ErpLocationItem, ErpLocationItemDTO>(entity);
return dto;
}
[HttpPost("upsert")]

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

@ -162,7 +162,7 @@ public class BalanceManager : DomainService, IBalanceManager
/// <exception cref="UserFriendlyException"></exception>
private async Task CheckErpLocationItemAsync(Transaction transaction)
{
var erpLocationItem =await _erpLocationItemAppService.GetFirstAsync(transaction.LocationErpCode, transaction.ItemCode).ConfigureAwait(false);
var erpLocationItem =await _erpLocationItemAppService.CheckItemErpLocationIsAvailable( transaction.ItemCode, transaction.LocationErpCode).ConfigureAwait(false);
if (erpLocationItem == null)
{

Loading…
Cancel
Save