Browse Source

1.同步EOS发货单时判断是否存在供应商零件,如果不存在则整单不同步

2.非生产领料退料人员传操作员
集成Redis
lvzb 2 years ago
parent
commit
3c668408fb
  1. 13
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs
  2. 31
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipReader.cs
  3. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs
  4. 12
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs
  5. 12
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/SupplierAsn/SupplierAsnDetailExchangeDto.cs
  6. 6
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs
  7. 15
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml

13
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs

@ -28,7 +28,7 @@ public class ShipConverter : IIncomingConverter
private readonly ILogger<ShipConverter> _logger;
private readonly IConfiguration _configuration;
private readonly ISupplierAppService _supplierAppService;
private readonly ISupplierItemAppService _supplierItemAppService;
public ShipConverter(
IIncomingToWmsManager incomingToWmsManager
@ -38,8 +38,7 @@ public class ShipConverter : IIncomingConverter
, ILogger<ShipConverter> logger,
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager,
ISupplierAppService supplierAppService,
ISupplierItemAppService supplierItemAppService)
ISupplierAppService supplierAppService)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
@ -49,7 +48,7 @@ public class ShipConverter : IIncomingConverter
_logger = logger;
_configuration = configuration;
_supplierAppService = supplierAppService;
_supplierItemAppService = supplierItemAppService;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -120,7 +119,7 @@ public class ShipConverter : IIncomingConverter
purchaseLabel.PoNumber = exchangeAsn.Number;
purchaseLabel.Qty = exchangeAsn.Detail.Qty;
var supplierItemDTO=await _supplierItemAppService.GetBySupplierCodeAndItemCodeAsync(exchangeAsn.SupplierCode, purchaseLabel.ItemCode).ConfigureAwait(false);
purchaseLabel.ProduceDate = exchangeAsn.Detail.ProduceDate;
purchaseLabel.ArriveDate = exchangeAsn.Detail.ArriveDate;
@ -132,8 +131,8 @@ public class ShipConverter : IIncomingConverter
purchaseLabel.Code = exchangeAsn.Detail.PackingCode;
purchaseLabel.PlanArriveDate = exchangeAsn.PlanArriveDate;
purchaseLabel.SupplierItemCode = supplierItemDTO.SupplierItemCode;
purchaseLabel.SupplierItemName = supplierItemDTO.ItemName;
purchaseLabel.SupplierItemCode = exchangeAsn.Detail.SupplierItemCode;
purchaseLabel.SupplierItemName = exchangeAsn.Detail.SupplierItemName;
purchaseLabel.ExpireDate = DateTime.Now.AddDays(item.GetValidateDays());

31
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipReader.cs

@ -4,6 +4,7 @@ using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
@ -17,16 +18,19 @@ public class ShipReader : IReader
private readonly IShipManager _shipManager;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly ILogger<ShipReader> _logger;
private readonly ISupplierItemAppService _supplierItemAppService;
public ShipReader(
IShipManager shipManager
, IIncomingFromExternalManager incomingFromExternalManager
, ILogger<ShipReader> logger
, ILogger<ShipReader> logger,
ISupplierItemAppService supplierItemAppService
)
{
_shipManager = shipManager;
_incomingFromExternalManager = incomingFromExternalManager;
_logger = logger;
_supplierItemAppService = supplierItemAppService;
}
public virtual async Task<List<IncomingFromExternal>> ReadAsync()
@ -39,6 +43,11 @@ public class ShipReader : IReader
return new List<IncomingFromExternal>();
}
var shipbillno = await GetNoSupplierItemNum(toBeProcessedShips).ConfigureAwait(false);
if (shipbillno.Count > 0)
{
toBeProcessedShips = toBeProcessedShips.Where(r => !shipbillno.Contains(r.ShipBillNo)).ToList();
}
//Ship逐一转换为SupplierAsn
var incomingDataList = await BuildIncomingFromExternalFromShipAsync(toBeProcessedShips).ConfigureAwait(false);
await _incomingFromExternalManager.CreateManyAsync(incomingDataList).ConfigureAwait(false);
@ -83,6 +92,26 @@ public class ShipReader : IReader
return incomingDataList;
}
private async Task<List<string>> GetNoSupplierItemNum(List<Ship> toBeProcessedShips)
{
List<string> shipbillno = new List<string>();
foreach (var item in toBeProcessedShips)
{
if (shipbillno.Contains(item.ShipBillNo))
{
continue;
}
var supplierItemDTO = await _supplierItemAppService.GetBySupplierCodeAndItemCodeAsync(item.SupplierCode, item.ERP).ConfigureAwait(false);
if (supplierItemDTO == null)
{
shipbillno.Add(item.ShipBillNo);
}
}
return shipbillno;
}
private static IncomingFromExternal BuildIncomingFromExternal(Ship ship)
{
var incomingData = new IncomingFromExternal()

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs

@ -55,7 +55,7 @@ public class UnplannedIssueNoteConverter : IOutgoingConverter
if (Guid.TryParse(exchangeReceipt.CreatorId.ToString(), out Guid guid))
{
var username = await _sfsUserAppService.GetUserNameById(guid).ConfigureAwait(false);
if (string.IsNullOrEmpty(username))
if (!string.IsNullOrEmpty(username))
{
exchangeReceipt.Worker = username;
}

12
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs

@ -4,6 +4,7 @@ using System.Text.Json;
using System.Threading.Tasks;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Auth.Application.Contracts;
using Win_in.Sfs.Auth.Users;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
@ -19,18 +20,21 @@ public class UnplannedReceiptNoteConverter : IOutgoingConverter
private readonly IOutgoingToExternalManager _outgoingToExternalManager;
private readonly IDepartmentAppService _departmentAppService;
private readonly IObjectMapper _objectMapper;
private readonly ISfsUserAppService _sfsUserAppService;
public UnplannedReceiptNoteConverter(
IOutgoingFromWmsManager outgoingFromWmsManager
, IOutgoingToExternalManager outgoingToExternalManager
, IDepartmentAppService departmentAppService
, IObjectMapper objectMapper
, ISfsUserAppService sfsUserAppService
)
{
_outgoingFromWmsManager = outgoingFromWmsManager;
_outgoingToExternalManager = outgoingToExternalManager;
_departmentAppService = departmentAppService;
_objectMapper = objectMapper;
_sfsUserAppService = sfsUserAppService;
}
/// <summary>
@ -49,6 +53,14 @@ public class UnplannedReceiptNoteConverter : IOutgoingConverter
var exchangeReceipt = _objectMapper.Map<UnplannedReceiptNoteDTO, UnplannedReceiptNoteExchangeDto>(wmsReceipt);
var department = await _departmentAppService.GetByUsernameAsync(exchangeReceipt.Worker).ConfigureAwait(false);
var departmentCode = department == null ? "" : department.Code;
if (Guid.TryParse(exchangeReceipt.CreatorId.ToString(), out Guid guid))
{
var username = await _sfsUserAppService.GetUserNameById(guid).ConfigureAwait(false);
if (!string.IsNullOrEmpty(username))
{
exchangeReceipt.Worker = username;
}
}
var purchaseOrder = BuildDataInterface(exchangeReceipt, departmentCode);
var outgoingToExternal = new OutgoingToExternal()
{

12
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/SupplierAsn/SupplierAsnDetailExchangeDto.cs

@ -138,4 +138,16 @@ public class SupplierAsnDetailExchangeDto
/// </summary>
[Display(Name = "备注")]
public string Remark { get; set; }
/// <summary>
/// 供应商零件号
/// </summary>
[Display(Name = "供应商零件号")]
public string SupplierItemCode { get; set; }
/// <summary>
/// 供应商零件名
/// </summary>
[Display(Name = "供应商零件名")]
public string SupplierItemName { get; set; }
}

6
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs

@ -13,6 +13,12 @@ public class UnplannedReceiptNoteExchangeDto
/// </summary>
public string Worker { get; set; }
/// <summary>
/// 创建人id
/// </summary>
public Guid? CreatorId { get; set; }
/// <summary>
/// 生效日期
/// </summary>

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

@ -1421,6 +1421,16 @@
备注
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.SuppplierAsn.SupplierAsnDetailExchangeDto.SupplierItemCode">
<summary>
供应商零件号
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.SuppplierAsn.SupplierAsnDetailExchangeDto.SupplierItemName">
<summary>
供应商零件名
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.SuppplierAsn.SupplierAsnExchangeDto.Number">
<summary>
发货单号
@ -1676,6 +1686,11 @@
操作员
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.UnplannedReceiptNote.UnplannedReceiptNoteExchangeDto.CreatorId">
<summary>
创建人id
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.UnplannedReceiptNote.UnplannedReceiptNoteExchangeDto.ActiveDate">
<summary>
生效日期

Loading…
Cancel
Save