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.Customers;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Dictpjs; 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.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.InterfaceCalendars;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Products; using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.Products;
using Win_in.Sfs.Wms.DataExchange.LinqToDB.Fawtyg.Tyrp.PurchasePrices; 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> </summary>
</member> </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"> <member name="P:Win_in.Sfs.Wms.DataExchange.WMS.InterfaceCalendar.InterfaceCalendarExchangeDto.Enabled">
<summary> <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> public interface IErpLocationItemAppService : ISfsBaseDataAppServiceBase<ErpLocationItemDTO, SfsBaseDataRequestInputBase, ErpLocationItemEditInput>, ISfsUpsertAppService<ErpLocationItemEditInput>
{ {
Task<ErpLocationItemDTO> CheckItemErpLocationIsAvailable(string itemCode, string erpLocationCode);
Task<List<ErpLocationItemDTO>> GetListByItemCodeAsync(string itemCode); 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 Microsoft.AspNetCore.Mvc;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Caching; 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.Application.Contracts;
using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Basedata.Domain.Shared;
@ -44,18 +46,26 @@ public class ErpLocationItemAppService
/// <param name="itemCode"></param> /// <param name="itemCode"></param>
/// <param name="erpLocationCode"></param> /// <param name="erpLocationCode"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
[HttpGet("check-item-erplocation-is-available")] [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) 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")] [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> /// <exception cref="UserFriendlyException"></exception>
private async Task CheckErpLocationItemAsync(Transaction transaction) 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) if (erpLocationItem == null)
{ {

Loading…
Cancel
Save