|
|
@ -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<CustomerReturnNoteDTO>(outgoingFromWms.DataContent); |
|
|
|
var exchangeReceipt = _objectMapper.Map<CustomerReturnNoteDTO, CustomerReturnNoteExchangeDto>(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<CustomerReturnNoteDetailDTO, CustomerReturnNoteDetailExchangeDto>(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 |
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
|
/// <param name="departmentCode"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
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 |
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
|
/// <param name="exchangeDetailOrder"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
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, |
|
|
|