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 ILogger<ShipConverter> _logger;
private readonly IConfiguration _configuration; private readonly IConfiguration _configuration;
private readonly ISupplierAppService _supplierAppService; private readonly ISupplierAppService _supplierAppService;
private readonly ISupplierItemAppService _supplierItemAppService;
public ShipConverter( public ShipConverter(
IIncomingToWmsManager incomingToWmsManager IIncomingToWmsManager incomingToWmsManager
@ -38,8 +38,7 @@ public class ShipConverter : IIncomingConverter
, ILogger<ShipConverter> logger, , ILogger<ShipConverter> logger,
IConfiguration configuration, IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager, IIncomingFromExternalManager incomingFromExternalManager,
ISupplierAppService supplierAppService, ISupplierAppService supplierAppService)
ISupplierItemAppService supplierItemAppService)
{ {
_incomingFromExternalManager = incomingFromExternalManager; _incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager; _incomingToWmsManager = incomingToWmsManager;
@ -49,7 +48,7 @@ public class ShipConverter : IIncomingConverter
_logger = logger; _logger = logger;
_configuration = configuration; _configuration = configuration;
_supplierAppService = supplierAppService; _supplierAppService = supplierAppService;
_supplierItemAppService = supplierItemAppService;
} }
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList) public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -120,7 +119,7 @@ public class ShipConverter : IIncomingConverter
purchaseLabel.PoNumber = exchangeAsn.Number; purchaseLabel.PoNumber = exchangeAsn.Number;
purchaseLabel.Qty = exchangeAsn.Detail.Qty; purchaseLabel.Qty = exchangeAsn.Detail.Qty;
var supplierItemDTO=await _supplierItemAppService.GetBySupplierCodeAndItemCodeAsync(exchangeAsn.SupplierCode, purchaseLabel.ItemCode).ConfigureAwait(false);
purchaseLabel.ProduceDate = exchangeAsn.Detail.ProduceDate; purchaseLabel.ProduceDate = exchangeAsn.Detail.ProduceDate;
purchaseLabel.ArriveDate = exchangeAsn.Detail.ArriveDate; purchaseLabel.ArriveDate = exchangeAsn.Detail.ArriveDate;
@ -132,8 +131,8 @@ public class ShipConverter : IIncomingConverter
purchaseLabel.Code = exchangeAsn.Detail.PackingCode; purchaseLabel.Code = exchangeAsn.Detail.PackingCode;
purchaseLabel.PlanArriveDate = exchangeAsn.PlanArriveDate; purchaseLabel.PlanArriveDate = exchangeAsn.PlanArriveDate;
purchaseLabel.SupplierItemCode = supplierItemDTO.SupplierItemCode; purchaseLabel.SupplierItemCode = exchangeAsn.Detail.SupplierItemCode;
purchaseLabel.SupplierItemName = supplierItemDTO.ItemName; purchaseLabel.SupplierItemName = exchangeAsn.Detail.SupplierItemName;
purchaseLabel.ExpireDate = DateTime.Now.AddDays(item.GetValidateDays()); 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.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging; 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;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared; using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
@ -17,16 +18,19 @@ public class ShipReader : IReader
private readonly IShipManager _shipManager; private readonly IShipManager _shipManager;
private readonly IIncomingFromExternalManager _incomingFromExternalManager; private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly ILogger<ShipReader> _logger; private readonly ILogger<ShipReader> _logger;
private readonly ISupplierItemAppService _supplierItemAppService;
public ShipReader( public ShipReader(
IShipManager shipManager IShipManager shipManager
, IIncomingFromExternalManager incomingFromExternalManager , IIncomingFromExternalManager incomingFromExternalManager
, ILogger<ShipReader> logger , ILogger<ShipReader> logger,
ISupplierItemAppService supplierItemAppService
) )
{ {
_shipManager = shipManager; _shipManager = shipManager;
_incomingFromExternalManager = incomingFromExternalManager; _incomingFromExternalManager = incomingFromExternalManager;
_logger = logger; _logger = logger;
_supplierItemAppService = supplierItemAppService;
} }
public virtual async Task<List<IncomingFromExternal>> ReadAsync() public virtual async Task<List<IncomingFromExternal>> ReadAsync()
@ -39,6 +43,11 @@ public class ShipReader : IReader
return new List<IncomingFromExternal>(); 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 //Ship逐一转换为SupplierAsn
var incomingDataList = await BuildIncomingFromExternalFromShipAsync(toBeProcessedShips).ConfigureAwait(false); var incomingDataList = await BuildIncomingFromExternalFromShipAsync(toBeProcessedShips).ConfigureAwait(false);
await _incomingFromExternalManager.CreateManyAsync(incomingDataList).ConfigureAwait(false); await _incomingFromExternalManager.CreateManyAsync(incomingDataList).ConfigureAwait(false);
@ -83,6 +92,26 @@ public class ShipReader : IReader
return incomingDataList; 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) private static IncomingFromExternal BuildIncomingFromExternal(Ship ship)
{ {
var incomingData = new IncomingFromExternal() 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)) if (Guid.TryParse(exchangeReceipt.CreatorId.ToString(), out Guid guid))
{ {
var username = await _sfsUserAppService.GetUserNameById(guid).ConfigureAwait(false); var username = await _sfsUserAppService.GetUserNameById(guid).ConfigureAwait(false);
if (string.IsNullOrEmpty(username)) if (!string.IsNullOrEmpty(username))
{ {
exchangeReceipt.Worker = 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 System.Threading.Tasks;
using Volo.Abp.ObjectMapping; using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Auth.Application.Contracts; 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;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared; using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
@ -19,18 +20,21 @@ public class UnplannedReceiptNoteConverter : IOutgoingConverter
private readonly IOutgoingToExternalManager _outgoingToExternalManager; private readonly IOutgoingToExternalManager _outgoingToExternalManager;
private readonly IDepartmentAppService _departmentAppService; private readonly IDepartmentAppService _departmentAppService;
private readonly IObjectMapper _objectMapper; private readonly IObjectMapper _objectMapper;
private readonly ISfsUserAppService _sfsUserAppService;
public UnplannedReceiptNoteConverter( public UnplannedReceiptNoteConverter(
IOutgoingFromWmsManager outgoingFromWmsManager IOutgoingFromWmsManager outgoingFromWmsManager
, IOutgoingToExternalManager outgoingToExternalManager , IOutgoingToExternalManager outgoingToExternalManager
, IDepartmentAppService departmentAppService , IDepartmentAppService departmentAppService
, IObjectMapper objectMapper , IObjectMapper objectMapper
, ISfsUserAppService sfsUserAppService
) )
{ {
_outgoingFromWmsManager = outgoingFromWmsManager; _outgoingFromWmsManager = outgoingFromWmsManager;
_outgoingToExternalManager = outgoingToExternalManager; _outgoingToExternalManager = outgoingToExternalManager;
_departmentAppService = departmentAppService; _departmentAppService = departmentAppService;
_objectMapper = objectMapper; _objectMapper = objectMapper;
_sfsUserAppService = sfsUserAppService;
} }
/// <summary> /// <summary>
@ -49,6 +53,14 @@ public class UnplannedReceiptNoteConverter : IOutgoingConverter
var exchangeReceipt = _objectMapper.Map<UnplannedReceiptNoteDTO, UnplannedReceiptNoteExchangeDto>(wmsReceipt); var exchangeReceipt = _objectMapper.Map<UnplannedReceiptNoteDTO, UnplannedReceiptNoteExchangeDto>(wmsReceipt);
var department = await _departmentAppService.GetByUsernameAsync(exchangeReceipt.Worker).ConfigureAwait(false); var department = await _departmentAppService.GetByUsernameAsync(exchangeReceipt.Worker).ConfigureAwait(false);
var departmentCode = department == null ? "" : department.Code; 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 purchaseOrder = BuildDataInterface(exchangeReceipt, departmentCode);
var outgoingToExternal = new OutgoingToExternal() 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> /// </summary>
[Display(Name = "备注")] [Display(Name = "备注")]
public string Remark { get; set; } 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> /// </summary>
public string Worker { get; set; } public string Worker { get; set; }
/// <summary>
/// 创建人id
/// </summary>
public Guid? CreatorId { get; set; }
/// <summary> /// <summary>
/// 生效日期 /// 生效日期
/// </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> </summary>
</member> </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"> <member name="P:Win_in.Sfs.Wms.DataExchange.WMS.SuppplierAsn.SupplierAsnExchangeDto.Number">
<summary> <summary>
发货单号 发货单号
@ -1676,6 +1686,11 @@
操作员 操作员
</summary> </summary>
</member> </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"> <member name="P:Win_in.Sfs.Wms.DataExchange.WMS.UnplannedReceiptNote.UnplannedReceiptNoteExchangeDto.ActiveDate">
<summary> <summary>
生效日期 生效日期

Loading…
Cancel
Save