diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/CustomerReturnNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/CustomerReturnNoteConverter.cs index 8ae33abda..5c362a725 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/CustomerReturnNoteConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/CustomerReturnNoteConverter.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text.Json; using System.Threading.Tasks; using Volo.Abp.ObjectMapping; @@ -44,17 +45,19 @@ public class CustomerReturnNoteConverter : IOutgoingConverter var outgoingFromWmsList = await _outgoingFromWmsManager.GetToBeProcessedListAsync(EnumOutgoingDataType.CustomerReturn, EnumSystemType.ERP).ConfigureAwait(false); foreach (var outgoingFromWms in outgoingFromWmsList) { + string tyrpNumber = outgoingFromWms.TyrpNumber; #region 主表 var wmsReceipt = JsonSerializer.Deserialize(outgoingFromWms.DataContent); var exchangeReceipt = _objectMapper.Map(wmsReceipt); var department = await _departmentAppService.GetByUsernameAsync(exchangeReceipt.Worker).ConfigureAwait(false); var departmentCode = department == null ? "" : department.Code; - var purchaseOrder = BuildDataInterface(exchangeReceipt, departmentCode); + var purchaseOrder = BuildDataInterface(exchangeReceipt, departmentCode,tyrpNumber); var outgoingToExternal = new OutgoingToExternal() { DataType = EnumOutgoingDataType.UnplannedReceipt.ToString(), TableType = EnumExchangeTableType.MainTable, DataAction = outgoingFromWms.DataAction, + SerialNumber = tyrpNumber, SourceSystem = EnumSystemType.WMS.ToString(), SourceDataId = wmsReceipt.Id.ToString(), SourceDataGroupCode = wmsReceipt.Number, @@ -68,17 +71,19 @@ public class CustomerReturnNoteConverter : IOutgoingConverter outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(purchaseOrder); outgoingToExternalList.Add(outgoingToExternal); #endregion + var WipDetails = wmsReceipt.Details.GroupBy(r => new { r.Number, r.ItemCode, r.ToLocationErpCode }).Select(p => new CustomerReturnNoteDetailExchangeDto { Qty = p.Sum(itm => itm.Qty), Number = p.Key.Number, ItemCode = p.Key.ItemCode, ToLocationErpCode = p.Key.ToLocationErpCode }); #region 明细 - foreach (var detail in wmsReceipt.Details) + foreach (var detail in WipDetails) { var outgoingDetailToExternal = new OutgoingToExternal() { DataType = EnumOutgoingDataType.UnplannedReceipt.ToString(), TableType = EnumExchangeTableType.DetailTable, DataAction = outgoingFromWms.DataAction, + SerialNumber = tyrpNumber, SourceSystem = EnumSystemType.WMS.ToString(), - SourceDataId = detail.Id.ToString(), + SourceDataId = detail.Number.ToString(), SourceDataGroupCode = wmsReceipt.Number, SourceDataDetailCode = detail.ItemCode, Writer = nameof(TyrpOutgoingBackgroundWorker), @@ -86,9 +91,8 @@ public class CustomerReturnNoteConverter : IOutgoingConverter DestinationDataId = "", }; outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); - var exchangeReceiptDetail = _objectMapper.Map(detail); - outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(exchangeReceiptDetail); - var purchaseOrderDetail = BuildDataInterfaceDetail(exchangeReceipt, exchangeReceiptDetail); + outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(detail); + var purchaseOrderDetail = BuildDataInterfaceDetail(exchangeReceipt, detail, tyrpNumber); outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(purchaseOrderDetail); outgoingToExternalList.Add(outgoingDetailToExternal); } @@ -108,11 +112,12 @@ public class CustomerReturnNoteConverter : IOutgoingConverter /// /// /// - private Wmsoutm BuildDataInterface(CustomerReturnNoteExchangeDto exchangeOrder, string departmentCode) + private Wmsoutm BuildDataInterface(CustomerReturnNoteExchangeDto exchangeOrder, string departmentCode,string tyrpNumber) { var ret = new Wmsoutm() { + wmsoutm_mid = Convert.ToDecimal(tyrpNumber), wmsoutm_nbr = exchangeOrder.Number, wmsoutm_type = billtype, wmsoutm_dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"), @@ -140,10 +145,11 @@ public class CustomerReturnNoteConverter : IOutgoingConverter /// /// /// - private static Wmsoutd BuildDataInterfaceDetail(CustomerReturnNoteExchangeDto exchangeOrder, CustomerReturnNoteDetailExchangeDto exchangeDetailOrder) + private static Wmsoutd BuildDataInterfaceDetail(CustomerReturnNoteExchangeDto exchangeOrder, CustomerReturnNoteDetailExchangeDto exchangeDetailOrder, string tyrpNumber) { var ret = new Wmsoutd() { + wmsoutd_mid = Convert.ToDecimal(tyrpNumber), wmsoutd_nbr = exchangeOrder.Number, wmsoutd_part = exchangeDetailOrder.ItemCode, wmsoutd_loc = exchangeDetailOrder.ToLocationErpCode, diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/ProductRecycleNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/ProductRecycleNoteConverter.cs index 096a979b8..e22b268c9 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/ProductRecycleNoteConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/ProductRecycleNoteConverter.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.Json; using System.Threading.Tasks; +using DocumentFormat.OpenXml.Drawing.Charts; using Volo.Abp.ObjectMapping; using Win_in.Sfs.Auth.Application.Contracts; using Win_in.Sfs.Wms.DataExchange.Domain; @@ -98,7 +99,7 @@ public class ProductRecycleNoteConverter : IOutgoingConverter outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); var exchangeMterialDetail = _objectMapper.Map(materialDetail); outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(exchangeMterialDetail); - var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, exchangeMterialDetail); + var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, exchangeMterialDetail, wmsReceipt.Number); outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(purchaseOrderDetail); outgoingToExternalList.Add(outgoingDetailToExternal); } @@ -122,7 +123,8 @@ public class ProductRecycleNoteConverter : IOutgoingConverter var ret = new Wmsoutm() { - wmsoutm_nbr = tyrpNumber, + wmsoutm_mid=Convert.ToDecimal(tyrpNumber), + wmsoutm_nbr = exchangeOrder.Number, wmsoutm_type = billtype, wmsoutm_dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"), wmsoutm_stat = "Y", @@ -150,11 +152,12 @@ public class ProductRecycleNoteConverter : IOutgoingConverter /// /// /// - private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, ProductRecycleMaterialDetailExchangeDto exchangeDetailOrder) + private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, ProductRecycleMaterialDetailExchangeDto exchangeDetailOrder,string number) { var ret = new Wmsoutd() { - wmsoutd_nbr = tyrpNumber, + wmsoutd_mid = Convert.ToDecimal(tyrpNumber), + wmsoutd_nbr = number, wmsoutd_part = exchangeDetailOrder.ItemCode, wmsoutd_loc = exchangeDetailOrder.LocationErpCode, wmsoutd_qty = exchangeDetailOrder.Qty, diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/RecycledMaterialReceiptNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/RecycledMaterialReceiptNoteConverter.cs index 8c4e83014..88a261353 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/RecycledMaterialReceiptNoteConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/RecycledMaterialReceiptNoteConverter.cs @@ -52,7 +52,7 @@ public class RecycledMaterialReceiptNoteConverter : IOutgoingConverter var exchangeReceipt = _objectMapper.Map(wmsReceipt); var department = await _departmentAppService.GetByUsernameAsync(exchangeReceipt.Worker).ConfigureAwait(false); var departmentCode = department == null ? "" : department.Code; - var purchaseOrder = BuildDataInterface(tyrpNumber, departmentCode); + var purchaseOrder = BuildDataInterface(tyrpNumber, departmentCode, wmsReceipt.Number); var outgoingToExternal = new OutgoingToExternal() { DataType = EnumOutgoingDataType.RecycledMaterialReceipt.ToString(), @@ -93,7 +93,7 @@ public class RecycledMaterialReceiptNoteConverter : IOutgoingConverter outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); var exchangeReceiptDetail = _objectMapper.Map(detail); outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(exchangeReceiptDetail); - var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, exchangeReceiptDetail); + var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, exchangeReceiptDetail,wmsReceipt.Number); outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(purchaseOrderDetail); outgoingToExternalList.Add(outgoingDetailToExternal); } @@ -111,12 +111,13 @@ public class RecycledMaterialReceiptNoteConverter : IOutgoingConverter /// /// /// - private Wmsoutm BuildDataInterface(string tyrpNumber,string departmentCode) + private Wmsoutm BuildDataInterface(string tyrpNumber,string departmentCode,string number) { var ret = new Wmsoutm() { - wmsoutm_nbr = tyrpNumber, + wmsoutm_mid = Convert.ToDecimal(tyrpNumber), + wmsoutm_nbr = number, wmsoutm_type = billtype, wmsoutm_dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"), wmsoutm_stat = "Y", @@ -144,11 +145,12 @@ public class RecycledMaterialReceiptNoteConverter : IOutgoingConverter /// /// /// - private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, RecycledMaterialReceiptNoteDetailExchangeDto exchangeDetailOrder) + private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, RecycledMaterialReceiptNoteDetailExchangeDto exchangeDetailOrder,string number) { var ret = new Wmsoutd() { - wmsoutd_nbr = tyrpNumber, + wmsoutd_mid= Convert.ToDecimal(tyrpNumber), + wmsoutd_nbr = number, wmsoutd_part = exchangeDetailOrder.ItemCode, wmsoutd_loc = exchangeDetailOrder.LocationErpCode, wmsoutd_qty = exchangeDetailOrder.Qty, diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TransferNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TransferNoteConverter.cs index aee24654d..67de0c2e0 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TransferNoteConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TransferNoteConverter.cs @@ -105,13 +105,13 @@ public class TransferNoteConverter : IOutgoingConverter var toLocationErpcode = details[0].ToLocationErpCode; var erplocation = await _erpLocationAppService.GetByCodeAsync(toLocationErpcode).ConfigureAwait(false); - if (erplocation.Type != "2") + if (erplocation?.Type != "2") { stat = "2"; } var location = stat == "1" ? details[0].ToLocationErpCode : details[0].FromLocationErpCode; outgoingToExternal.DataType = EnumOutgoingDataType.TransferForCustom.ToString(); - var putawayNoteWmsoutm = BuildWmsoutmDataInterface(departmentCode, dt_w, tyrpNumber, location, stat); + var putawayNoteWmsoutm = BuildWmsoutmDataInterface(departmentCode, dt_w, tyrpNumber, location, stat, wmsReceipt.Number); outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteWmsoutm); WipDetails = details.GroupBy(r => new { r.Number, r.ItemCode, r.FromLocationErpCode, r.ToLocationErpCode }).Select(p => new TransferNoteDetailExchangeDto { Qty = p.Sum(itm => itm.Qty), Number = p.Key.Number, ItemCode = p.Key.ItemCode, FromLocationErpCode = p.Key.FromLocationErpCode, ToLocationErpCode = p.Key.ToLocationErpCode }).ToList(); @@ -156,7 +156,7 @@ public class TransferNoteConverter : IOutgoingConverter } else { - var putawayNoteDetailWmsoutd = BuildWmsoutdDataInterfaceDetail(tyrpNumber, detail, stat); + var putawayNoteDetailWmsoutd = BuildWmsoutdDataInterfaceDetail(tyrpNumber, detail, stat, wmsReceipt.Number); outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailWmsoutd); } } @@ -224,11 +224,12 @@ public class TransferNoteConverter : IOutgoingConverter /// /// /// - private Wmsoutm BuildWmsoutmDataInterface(string departmentCode, string dt_w, string tyrpNumber,string locationcode,string stat) + private Wmsoutm BuildWmsoutmDataInterface(string departmentCode, string dt_w, string tyrpNumber,string locationcode,string stat,string number) { var ret = new Wmsoutm() { - wmsoutm_nbr = tyrpNumber, + wmsoutm_mid=Convert.ToDecimal(tyrpNumber), + wmsoutm_nbr = number, wmsoutm_type = billtype_w, wmsoutm_dt_w = dt_w, wmsoutm_stat = "Y", @@ -255,11 +256,12 @@ public class TransferNoteConverter : IOutgoingConverter /// /// /// - private Wmsoutd BuildWmsoutdDataInterfaceDetail(string tyrpNumber, TransferNoteDetailExchangeDto exchangeDetailOrder,string stat) + private Wmsoutd BuildWmsoutdDataInterfaceDetail(string tyrpNumber, TransferNoteDetailExchangeDto exchangeDetailOrder,string stat, string number) { var ret = new Wmsoutd() { - wmsoutd_nbr = tyrpNumber, + wmsoutd_mid=Convert.ToDecimal(tyrpNumber), + wmsoutd_nbr = number, wmsoutd_part = exchangeDetailOrder.ItemCode, wmsoutd_loc = stat=="1"? exchangeDetailOrder.FromLocationErpCode: exchangeDetailOrder.ToLocationErpCode, wmsoutd_qty = exchangeDetailOrder.Qty, 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 05b6beeee..a07c26d02 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 @@ -114,7 +114,7 @@ IUnplannedIssueRequestAppService unplannedIssueRequestAppService) outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(detail); - var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, detail); + var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, detail, wmsReceipt.Number); outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(purchaseOrderDetail); outgoingToExternalList.Add(outgoingDetailToExternal); } @@ -141,7 +141,8 @@ IUnplannedIssueRequestAppService unplannedIssueRequestAppService) } var ret = new Wmsoutm() { - wmsoutm_nbr = tyrpNumber, + wmsoutm_mid = Convert.ToDecimal(tyrpNumber), + wmsoutm_nbr = exchangeOrder.Number, wmsoutm_type = billtype, wmsoutm_dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"), wmsoutm_stat = "Y", @@ -169,11 +170,12 @@ IUnplannedIssueRequestAppService unplannedIssueRequestAppService) /// /// /// - private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, UnplannedIssueNoteDetailExchangeDto exchangeDetailOrder) + private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, UnplannedIssueNoteDetailExchangeDto exchangeDetailOrder,string number) { var ret = new Wmsoutd() { - wmsoutd_nbr = tyrpNumber, + wmsoutd_mid= Convert.ToDecimal(tyrpNumber), + wmsoutd_nbr = number, wmsoutd_part = exchangeDetailOrder.ItemCode, wmsoutd_loc = exchangeDetailOrder.LocationErpCode ?? "", wmsoutd_qty = exchangeDetailOrder.Qty, 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 e6cf534ed..9286c791f 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 @@ -117,7 +117,7 @@ IUnplannedReceiptRequestAppService unplannedReceiptRequestAppService }; outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(detail); - var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, detail); + var purchaseOrderDetail = BuildDataInterfaceDetail(tyrpNumber, detail, wmsReceipt.Number); outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(purchaseOrderDetail); outgoingToExternalList.Add(outgoingDetailToExternal); } @@ -144,7 +144,8 @@ IUnplannedReceiptRequestAppService unplannedReceiptRequestAppService } var ret = new Wmsoutm() { - wmsoutm_nbr = tyrpNumber, + wmsoutm_mid= Convert.ToDecimal(tyrpNumber), + wmsoutm_nbr = exchangeOrder.Number, wmsoutm_type = billtype, wmsoutm_dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"), wmsoutm_stat = "Y", @@ -172,11 +173,12 @@ IUnplannedReceiptRequestAppService unplannedReceiptRequestAppService /// /// /// - private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, UnplannedReceiptNoteDetailExchangeDto exchangeDetailOrder) + private Wmsoutd BuildDataInterfaceDetail(string tyrpNumber, UnplannedReceiptNoteDetailExchangeDto exchangeDetailOrder,string number) { var ret = new Wmsoutd() { - wmsoutd_nbr = tyrpNumber, + wmsoutd_mid= Convert.ToDecimal(tyrpNumber), + wmsoutd_nbr = number, wmsoutd_part = exchangeDetailOrder.ItemCode, wmsoutd_loc = exchangeDetailOrder.LocationErpCode ?? "", wmsoutd_qty = exchangeDetailOrder.Qty,