diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs index 1937dbee8..641033e6e 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs @@ -28,7 +28,7 @@ public class ShipConverter : IIncomingConverter private readonly ILogger _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 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 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()); diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipReader.cs index 07c8aab5c..18dac4fa1 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipReader.cs +++ b/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 _logger; + private readonly ISupplierItemAppService _supplierItemAppService; public ShipReader( IShipManager shipManager , IIncomingFromExternalManager incomingFromExternalManager - , ILogger logger + , ILogger logger, + ISupplierItemAppService supplierItemAppService ) { _shipManager = shipManager; _incomingFromExternalManager = incomingFromExternalManager; _logger = logger; + _supplierItemAppService = supplierItemAppService; } public virtual async Task> ReadAsync() @@ -39,6 +43,11 @@ public class ShipReader : IReader return new List(); } + 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> GetNoSupplierItemNum(List toBeProcessedShips) + { + List shipbillno = new List(); + + 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() diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs index b7cd69800..669b5fe60 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs +++ b/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; } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs index fbf956e23..dd16aed33 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs +++ b/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; } /// @@ -49,6 +53,14 @@ public class UnplannedReceiptNoteConverter : IOutgoingConverter var exchangeReceipt = _objectMapper.Map(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() { diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/SupplierAsn/SupplierAsnDetailExchangeDto.cs b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/SupplierAsn/SupplierAsnDetailExchangeDto.cs index 305d53b35..e35d1d7b6 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/SupplierAsn/SupplierAsnDetailExchangeDto.cs +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/SupplierAsn/SupplierAsnDetailExchangeDto.cs @@ -138,4 +138,16 @@ public class SupplierAsnDetailExchangeDto /// [Display(Name = "备注")] public string Remark { get; set; } + + /// + /// 供应商零件号 + /// + [Display(Name = "供应商零件号")] + public string SupplierItemCode { get; set; } + + /// + /// 供应商零件名 + /// + [Display(Name = "供应商零件名")] + public string SupplierItemName { get; set; } } diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs index 3a6edca00..c13fec26a 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs @@ -13,6 +13,12 @@ public class UnplannedReceiptNoteExchangeDto /// public string Worker { get; set; } + /// + /// 创建人id + /// + + public Guid? CreatorId { get; set; } + /// /// 生效日期 /// diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml index 55c669b1b..61a7f4f0c 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml @@ -1421,6 +1421,16 @@ 备注 + + + 供应商零件号 + + + + + 供应商零件名 + + 发货单号 @@ -1676,6 +1686,11 @@ 操作员 + + + 创建人id + + 生效日期