You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.6 KiB

using System.Collections.Generic;
using System.Text.Json;
using System.Threading.Tasks;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Outgoing;
public class IssueNoteWriter : IWriter
{
private readonly IIssueNoteManager _issueNoteNoteManager;
private readonly IOutgoingToExternalManager _outgoingToExternalManager;
public IssueNoteWriter(
IIssueNoteManager issueNoteNoteManager
, IOutgoingToExternalManager outgoingToExternalManager)
{
_issueNoteNoteManager = issueNoteNoteManager;
_outgoingToExternalManager = outgoingToExternalManager;
}
public virtual async Task WriteAsync(List<OutgoingToExternal> outgoingDataList)
{
var IssueNotes = await BuildArriveNotesAsync(outgoingDataList).ConfigureAwait(false);
//写Issue数据到MES
await _issueNoteNoteManager.PostListAsync(IssueNotes).ConfigureAwait(false);
await _outgoingToExternalManager.ArchiveManyAsync(outgoingDataList).ConfigureAwait(false);
}
private static async Task<List<IssueNote>> BuildArriveNotesAsync(List<OutgoingToExternal> outgoingData)
{
await Task.CompletedTask.ConfigureAwait(false);
var issueList = new List<IssueNote>();
foreach (var outgoingToExternal in outgoingData)
{
var issue =
JsonSerializer.Deserialize<IssueNote>(outgoingToExternal.DestinationDataContent);
issueList.Add(issue);
}
return issueList;
}
}