|
@ -5,6 +5,8 @@ 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.Basedata.Application; |
|
|
|
|
|
using Win_in.Sfs.Basedata.Application.Contracts; |
|
|
using Win_in.Sfs.Shared.Domain.Shared; |
|
|
using Win_in.Sfs.Shared.Domain.Shared; |
|
|
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; |
|
@ -24,18 +26,21 @@ public class TransferNoteConverter : 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 IErpLocationAppService _erpLocationAppService; |
|
|
|
|
|
|
|
|
public TransferNoteConverter( |
|
|
public TransferNoteConverter( |
|
|
IOutgoingFromWmsManager outgoingFromWmsManager |
|
|
IOutgoingFromWmsManager outgoingFromWmsManager |
|
|
, IOutgoingToExternalManager outgoingToExternalManager |
|
|
, IOutgoingToExternalManager outgoingToExternalManager |
|
|
, IDepartmentAppService departmentAppService |
|
|
, IDepartmentAppService departmentAppService |
|
|
, IObjectMapper objectMapper |
|
|
, IObjectMapper objectMapper |
|
|
|
|
|
, IErpLocationAppService erpLocationAppService |
|
|
) |
|
|
) |
|
|
{ |
|
|
{ |
|
|
_outgoingFromWmsManager = outgoingFromWmsManager; |
|
|
_outgoingFromWmsManager = outgoingFromWmsManager; |
|
|
_outgoingToExternalManager = outgoingToExternalManager; |
|
|
_outgoingToExternalManager = outgoingToExternalManager; |
|
|
_departmentAppService = departmentAppService; |
|
|
_departmentAppService = departmentAppService; |
|
|
_objectMapper = objectMapper; |
|
|
_objectMapper = objectMapper; |
|
|
|
|
|
_erpLocationAppService = erpLocationAppService; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -53,8 +58,8 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
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; |
|
|
var details = wmsReceipt.Details.Where(r => r.FromLocationErpCode != r.ToLocationErpCode).ToList(); |
|
|
var details = wmsReceipt.Details.Where(r => r.FromLocationErpCode != r.ToLocationErpCode).ToList(); |
|
|
List<TransferNoteDetailExchangeDto> WipDetails = new List<TransferNoteDetailExchangeDto>(); |
|
|
List<TransferNoteDetailExchangeDto> WipDetails = new List<TransferNoteDetailExchangeDto>(); |
|
|
if (details.Count > 0 && (wmsReceipt.Type != EnumTransSubType.Transfer_Inside.ToString()||wmsReceipt.Type!=EnumTransSubType.Transfer_SplitPacking.ToString())) |
|
|
if (details.Count > 0 && (wmsReceipt.Type != EnumTransSubType.Transfer_Inside.ToString() || wmsReceipt.Type != EnumTransSubType.Transfer_SplitPacking.ToString())) |
|
|
{ |
|
|
{ |
|
|
string tyrpNumber = outgoingFromWms.TyrpNumber; |
|
|
string tyrpNumber = outgoingFromWms.TyrpNumber; |
|
|
#region 主表
|
|
|
#region 主表
|
|
@ -63,7 +68,7 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
// DataType = dataType,
|
|
|
// DataType = dataType,
|
|
|
TableType = EnumExchangeTableType.MainTable, |
|
|
TableType = EnumExchangeTableType.MainTable, |
|
|
DataAction = outgoingFromWms.DataAction, |
|
|
DataAction = outgoingFromWms.DataAction, |
|
|
SerialNumber=tyrpNumber, |
|
|
SerialNumber = tyrpNumber, |
|
|
SourceSystem = EnumSystemType.WMS.ToString(), |
|
|
SourceSystem = EnumSystemType.WMS.ToString(), |
|
|
SourceDataId = wmsReceipt.Id.ToString(), |
|
|
SourceDataId = wmsReceipt.Id.ToString(), |
|
|
SourceDataGroupCode = wmsReceipt.Number, |
|
|
SourceDataGroupCode = wmsReceipt.Number, |
|
@ -75,32 +80,43 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
outgoingToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); |
|
|
outgoingToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); |
|
|
outgoingToExternal.SourceDataContent = JsonSerializer.Serialize(exchangeReceipt); |
|
|
outgoingToExternal.SourceDataContent = JsonSerializer.Serialize(exchangeReceipt); |
|
|
string dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"); |
|
|
string dt_w = DateTime.Now.ToString("yyyyMMdd HH:mm:ss"); |
|
|
if (exchangeReceipt.Type != EnumTransSubType.Transfer_Customer.ToString()) |
|
|
var stat = "1"; |
|
|
{ |
|
|
if (exchangeReceipt.Type == EnumTransSubType.Depot_Issue_WIP.ToString())//立库生成的线边仓领料单
|
|
|
outgoingToExternal.DataType = EnumOutgoingDataType.TransferForErp.ToString(); |
|
|
|
|
|
var putawayNoteScontrol = BuildScontrolDataInterface(exchangeReceipt, dt_w, billtype_s); |
|
|
|
|
|
outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteScontrol); |
|
|
|
|
|
|
|
|
|
|
|
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(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
else if (exchangeReceipt.Type != EnumTransSubType.Depot_Issue_WIP.ToString())//立库生成的线边仓领料单
|
|
|
|
|
|
{ |
|
|
{ |
|
|
outgoingToExternal.DataType = EnumOutgoingDataType.TransferForErp.ToString(); |
|
|
outgoingToExternal.DataType = EnumOutgoingDataType.TransferForErp.ToString(); |
|
|
var putawayNoteScontrol = BuildScontrolDataInterface(exchangeReceipt, dt_w, billtype_issue); |
|
|
var putawayNoteScontrol = BuildScontrolDataInterface(exchangeReceipt, dt_w, billtype_issue); |
|
|
outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteScontrol); |
|
|
outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteScontrol); |
|
|
|
|
|
|
|
|
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(); |
|
|
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(); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
outgoingToExternal.DataType = EnumOutgoingDataType.TransferForCustom.ToString(); |
|
|
if (exchangeReceipt.Type != EnumTransSubType.Transfer_Customer.ToString()) |
|
|
var putawayNoteWmsoutm = BuildWmsoutmDataInterface(exchangeReceipt, departmentCode, dt_w, tyrpNumber); |
|
|
{ |
|
|
outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteWmsoutm); |
|
|
outgoingToExternal.DataType = EnumOutgoingDataType.TransferForErp.ToString(); |
|
|
|
|
|
var putawayNoteScontrol = BuildScontrolDataInterface(exchangeReceipt, dt_w, billtype_s); |
|
|
|
|
|
outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteScontrol); |
|
|
|
|
|
|
|
|
|
|
|
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(); |
|
|
|
|
|
|
|
|
WipDetails = details.GroupBy(r => new { r.Number, r.ItemCode, r.FromLocationErpCode }).Select(p => new TransferNoteDetailExchangeDto { Qty = p.Sum(itm => itm.Qty), Number = p.Key.Number, ItemCode = p.Key.ItemCode, FromLocationErpCode = p.Key.FromLocationErpCode }).ToList(); |
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
var toLocationErpcode = details[0].ToLocationErpCode; |
|
|
|
|
|
var erplocation = await _erpLocationAppService.GetByCodeAsync(toLocationErpcode).ConfigureAwait(false); |
|
|
|
|
|
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); |
|
|
|
|
|
outgoingToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteWmsoutm); |
|
|
|
|
|
|
|
|
|
|
|
WipDetails = details.GroupBy(r => new { r.Number, r.ItemCode, r.FromLocationErpCode }).Select(p => new TransferNoteDetailExchangeDto { Qty = p.Sum(itm => itm.Qty), Number = p.Key.Number, ItemCode = p.Key.ItemCode, FromLocationErpCode = p.Key.FromLocationErpCode }).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
outgoingToExternalList.Add(outgoingToExternal); |
|
|
outgoingToExternalList.Add(outgoingToExternal); |
|
@ -114,7 +130,7 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
DataType = outgoingToExternal.DataType, |
|
|
DataType = outgoingToExternal.DataType, |
|
|
TableType = EnumExchangeTableType.DetailTable, |
|
|
TableType = EnumExchangeTableType.DetailTable, |
|
|
DataAction = outgoingFromWms.DataAction, |
|
|
DataAction = outgoingFromWms.DataAction, |
|
|
SerialNumber=tyrpNumber, |
|
|
SerialNumber = tyrpNumber, |
|
|
SourceSystem = EnumSystemType.WMS.ToString(), |
|
|
SourceSystem = EnumSystemType.WMS.ToString(), |
|
|
SourceDataId = detail.Number.ToString(), |
|
|
SourceDataId = detail.Number.ToString(), |
|
|
SourceDataGroupCode = wmsReceipt.Number, |
|
|
SourceDataGroupCode = wmsReceipt.Number, |
|
@ -124,23 +140,25 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
DestinationDataId = "", |
|
|
DestinationDataId = "", |
|
|
}; |
|
|
}; |
|
|
outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); |
|
|
outgoingDetailToExternal.SetEffectiveDate(outgoingFromWms.EffectiveDate); |
|
|
// var exchangeReceiptDetail = _objectMapper.Map<TransferNoteDetailDTO, TransferNoteDetailExchangeDto>(detail);
|
|
|
// var exchangeReceiptDetail = _objectMapper.Map<TransferNoteDetailDTO, TransferNoteDetailExchangeDto>(detail);
|
|
|
outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(detail); |
|
|
outgoingDetailToExternal.SourceDataContent = JsonSerializer.Serialize(detail); |
|
|
|
|
|
if (exchangeReceipt.Type == EnumTransSubType.Depot_Issue_WIP.ToString())//立库生成的线边仓领料单
|
|
|
if (exchangeReceipt.Type != EnumTransSubType.Transfer_Customer.ToString()) |
|
|
|
|
|
{ |
|
|
|
|
|
var putawayNoteDetailScmsend = BuildScmsendDataInterfaceDetail(exchangeReceipt, detail, dt_w, billtype_s); |
|
|
|
|
|
outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailScmsend); |
|
|
|
|
|
} |
|
|
|
|
|
else if (exchangeReceipt.Type != EnumTransSubType.Depot_Issue_WIP.ToString())//立库生成的线边仓领料单
|
|
|
|
|
|
{ |
|
|
{ |
|
|
var putawayNoteDetailScmsend = BuildScmsendDataInterfaceDetail(exchangeReceipt, detail, dt_w, billtype_issue); |
|
|
var putawayNoteDetailScmsend = BuildScmsendDataInterfaceDetail(exchangeReceipt, detail, dt_w, billtype_issue); |
|
|
outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailScmsend); |
|
|
outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailScmsend); |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
var putawayNoteDetailWmsoutd = BuildWmsoutdDataInterfaceDetail(tyrpNumber, detail); |
|
|
if (exchangeReceipt.Type != EnumTransSubType.Transfer_Customer.ToString()) |
|
|
outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailWmsoutd); |
|
|
{ |
|
|
|
|
|
var putawayNoteDetailScmsend = BuildScmsendDataInterfaceDetail(exchangeReceipt, detail, dt_w, billtype_s); |
|
|
|
|
|
outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailScmsend); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
var putawayNoteDetailWmsoutd = BuildWmsoutdDataInterfaceDetail(tyrpNumber, detail, stat); |
|
|
|
|
|
outgoingDetailToExternal.DestinationDataContent = JsonSerializer.Serialize(putawayNoteDetailWmsoutd); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
outgoingToExternalList.Add(outgoingDetailToExternal); |
|
|
outgoingToExternalList.Add(outgoingDetailToExternal); |
|
|
} |
|
|
} |
|
@ -161,7 +179,7 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
private Scontrol BuildScontrolDataInterface(TransferNoteExchangeDto exchangeOrder, string dt_w,string type) |
|
|
private Scontrol BuildScontrolDataInterface(TransferNoteExchangeDto exchangeOrder, string dt_w, string type) |
|
|
{ |
|
|
{ |
|
|
var ret = new Scontrol() |
|
|
var ret = new Scontrol() |
|
|
{ |
|
|
{ |
|
@ -180,7 +198,7 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <param name="exchangeDetailOrder"></param>
|
|
|
/// <param name="exchangeDetailOrder"></param>
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
private Scmsend BuildScmsendDataInterfaceDetail(TransferNoteExchangeDto exchangeOrder, TransferNoteDetailExchangeDto exchangeDetailOrder, string dt_w,string type) |
|
|
private Scmsend BuildScmsendDataInterfaceDetail(TransferNoteExchangeDto exchangeOrder, TransferNoteDetailExchangeDto exchangeDetailOrder, string dt_w, string type) |
|
|
{ |
|
|
{ |
|
|
var ret = new Scmsend() |
|
|
var ret = new Scmsend() |
|
|
{ |
|
|
{ |
|
@ -206,7 +224,7 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
private Wmsoutm BuildWmsoutmDataInterface(TransferNoteExchangeDto exchangeOrder, string departmentCode, string dt_w,string tyrpNumber) |
|
|
private Wmsoutm BuildWmsoutmDataInterface(string departmentCode, string dt_w, string tyrpNumber,string locationcode,string stat) |
|
|
{ |
|
|
{ |
|
|
var ret = new Wmsoutm() |
|
|
var ret = new Wmsoutm() |
|
|
{ |
|
|
{ |
|
@ -216,12 +234,12 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
wmsoutm_stat = "Y", |
|
|
wmsoutm_stat = "Y", |
|
|
wmsoutm_tyrp_dt = "", |
|
|
wmsoutm_tyrp_dt = "", |
|
|
wmsoutm_user = "WMS", |
|
|
wmsoutm_user = "WMS", |
|
|
wmsoutm_dept = departmentCode,//根据Worker从UserDepartment中获取
|
|
|
wmsoutm_dept = "510800",//根据Worker从UserDepartment中获取
|
|
|
wmsoutm_date = exchangeOrder.ActiveDate.ToString("yyyyMMdd"), |
|
|
wmsoutm_date = DateTime.Now.ToString("yyyyMMdd"), |
|
|
wmsoutm_cust = "", |
|
|
wmsoutm_cust = "", |
|
|
wmsoutm_shm_nbr = "", |
|
|
wmsoutm_shm_nbr = "", |
|
|
wmsoutm_cust_loc = "", |
|
|
wmsoutm_cust_loc = locationcode, |
|
|
wmsoutm_stock_stat = "1", |
|
|
wmsoutm_stock_stat = stat, |
|
|
wmsoutm_open_part = "", |
|
|
wmsoutm_open_part = "", |
|
|
wmsoutm_open_loc = "", |
|
|
wmsoutm_open_loc = "", |
|
|
wmsoutm_open_hours = 0, |
|
|
wmsoutm_open_hours = 0, |
|
@ -237,13 +255,13 @@ public class TransferNoteConverter : IOutgoingConverter |
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <param name="exchangeOrder"></param>
|
|
|
/// <param name="exchangeDetailOrder"></param>
|
|
|
/// <param name="exchangeDetailOrder"></param>
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
private Wmsoutd BuildWmsoutdDataInterfaceDetail(string tyrpNumber, TransferNoteDetailExchangeDto exchangeDetailOrder) |
|
|
private Wmsoutd BuildWmsoutdDataInterfaceDetail(string tyrpNumber, TransferNoteDetailExchangeDto exchangeDetailOrder,string stat) |
|
|
{ |
|
|
{ |
|
|
var ret = new Wmsoutd() |
|
|
var ret = new Wmsoutd() |
|
|
{ |
|
|
{ |
|
|
wmsoutd_nbr = tyrpNumber, |
|
|
wmsoutd_nbr = tyrpNumber, |
|
|
wmsoutd_part = exchangeDetailOrder.ItemCode, |
|
|
wmsoutd_part = exchangeDetailOrder.ItemCode, |
|
|
wmsoutd_loc = exchangeDetailOrder.FromLocationErpCode, |
|
|
wmsoutd_loc = stat=="1"? exchangeDetailOrder.FromLocationErpCode: exchangeDetailOrder.ToLocationErpCode, |
|
|
wmsoutd_qty = exchangeDetailOrder.Qty, |
|
|
wmsoutd_qty = exchangeDetailOrder.Qty, |
|
|
wmsoutd_bcm_code = "",//有问题
|
|
|
wmsoutd_bcm_code = "",//有问题
|
|
|
wmsoutd_projt_id = "",//有问题
|
|
|
wmsoutd_projt_id = "",//有问题
|
|
|