using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Application.Contracts.Iac.Mes.Mes;
using Win_in.Sfs.Wms.DataExchange.Application.Contracts.Iac.Mes.Mes.Inputs;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.DataExchange.MesAgent;
///
/// 传输相关的L7零件信息
///
public class JisInfoIncomingDataWorker : AsyncPeriodicBackgroundWorkerBase
{
private readonly IOptions _options;
///
/// 发送信息的log开头
///
private readonly string SendLogTitieString = "Send FileInfo:";
public JisInfoIncomingDataWorker(
AbpAsyncTimer timer,
IOptions options,
IServiceScopeFactory serviceScopeFactory
) : base(timer, serviceScopeFactory)
{
_options = options;
Timer.Period = options.Value.IncomingOptions.PeriodSeconds * 1000; //default 5 minutes
}
[UnitOfWork]
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
#region 初始化服务是否开启
Logger.LogInformation($"{SendLogTitieString}Starting File Data Exchange...");
if (!_options.Value.IncomingOptions.Active)
{
Logger.LogInformation($"{SendLogTitieString} File Data Exchange is not active!");
return;
}
#endregion
//记录报错的文件名称
string fileName = "";
try
{
#region 获取需要更新的文件信息
//Resolve dependencies
var messageReceiveAppService = workerContext
.ServiceProvider
.GetRequiredService();
List receiveFileDataList = await messageReceiveAppService.GetListAsync().ConfigureAwait(false);
if (receiveFileDataList.Count == 0)
{
Logger.LogInformation($"{SendLogTitieString}Can't find any file data...");
return;
}
Logger.LogInformation($"{SendLogTitieString}:There are total {receiveFileDataList.Count} file data to be managed.");
////删除列表
//var deleteFileList = incomingDataList.Where(p=>p.Type== ((int)EnumExchangeDataAction.Delete).ToString()).ToList();
//Logger.LogInformation($"{SendLogTitieString} {deleteFileList.Count} file data to be deleted.");
////修改列表
//var modifyFileList = incomingDataList.Where(p => p.Type == ((int)EnumExchangeDataAction.Modify).ToString()).ToList();
//Logger.LogInformation($"{SendLogTitieString} {modifyFileList.Count} file data to be modified.");
////新增列表
//var addFileList = incomingDataList.Where(p => p.Type == ((int)EnumExchangeDataAction.Add).ToString()).ToList();
//Logger.LogInformation($"{SendLogTitieString} {addFileList.Count} file data to be added.");
;
#endregion
#region 声明需要包含的服务
Logger.LogInformation($"{SendLogTitieString}Initial IMesProductL7PartsNoteAppService...");
//声明需要的服务信息
var mesProductL7PartsNoteAppService = workerContext
.ServiceProvider
.GetRequiredService();
Logger.LogInformation($"{SendLogTitieString}Initial IMesProductL7PartsNoteAppService End...");
Logger.LogInformation($"{SendLogTitieString}Initial IProductL7PartsNoteAppService...");
//Resolve dependencies
var productL7PartsNoteAppService = workerContext
.ServiceProvider
.GetRequiredService();
Logger.LogInformation($"{SendLogTitieString}Initial IProductL7PartsNoteAppService End...");
Logger.LogInformation($"{SendLogTitieString}Initial IItemBasicAppService ...");
//Resolve dependencies
var itemBasicAppService = workerContext
.ServiceProvider
.GetRequiredService();
Logger.LogInformation($"{SendLogTitieString}Initial IItemBasicAppService end...");
#endregion
//开始循环对文件进行增加、修改、删除操作
foreach (var receiveFileData in receiveFileDataList)
{
//赋值对应的文件名称,出错好记录
fileName = receiveFileData.MessageFileName;
//对文件名称做拆解,获取项目、生产码和年份
string[] topInfos = fileName.Split("_");
string program = topInfos[0];//项目
string productNo = topInfos[1]; //生产码
string year = topInfos[2].Substring(0, 4); //年份
//如果是删除文件
if (receiveFileData.Type == ((int)EnumFileTypeStatus.Delete).ToString())
{
//开始删除相关数据
await DeleteReceivedFileData(fileName, year, program, productNo, messageReceiveAppService, mesProductL7PartsNoteAppService, productL7PartsNoteAppService).ConfigureAwait(false);
}
//如果是新增文件
else if (receiveFileData.Type == ((int)EnumFileTypeStatus.Add).ToString())
{
//开始添加新数据
await AddReceivedFileData(fileName, year, program, productNo, receiveFileData, messageReceiveAppService, mesProductL7PartsNoteAppService, productL7PartsNoteAppService, itemBasicAppService).ConfigureAwait(false);
}
//如果是修改文件
else if (receiveFileData.Type == ((int)EnumFileTypeStatus.Modify).ToString())
{
//开始删除相关数据
await DeleteReceivedFileData(fileName, year, program, productNo, messageReceiveAppService, mesProductL7PartsNoteAppService, productL7PartsNoteAppService).ConfigureAwait(false);
//开始添加新数据
await AddReceivedFileData(fileName, year, program, productNo, receiveFileData, messageReceiveAppService, mesProductL7PartsNoteAppService, productL7PartsNoteAppService, itemBasicAppService).ConfigureAwait(false);
}
else
{
Logger.LogError($"{SendLogTitieString}Unknown file operation type {receiveFileData.Type}, file name is {fileName},id is {receiveFileData.Id}.");
continue;
}
#region Archived File Data
Logger.LogInformation($"{SendLogTitieString}Start archiving file data.File name is {fileName}");
await messageReceiveAppService.UpdateReceiveStatusByIdsAsync(new List() { receiveFileData.Id }, EnumReceiveStatus.Archived).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Finished archiving file data.File name is {fileName}");
#endregion
}
}
catch (Exception ex)
{
string errorMsg = $"{SendLogTitieString}调用TransmissionMessageAsync方法出错,报文名称{fileName}:" + ex.Message;
string errorMsg2 = $"{SendLogTitieString}调用TransmissionMessageAsync方法出错,报文名称{fileName}:" + ex.ToString();
//_logRemindDomainService.WriteLogRemind(fileName, errorMsg, LogTypeEnum.M100);
Logger.LogError(errorMsg);
Logger.LogError(errorMsg2);
}
//Timer.Start(); //运行结束,开启计时;
Logger.LogInformation($"{SendLogTitieString}Completed File Data Exchange...");
}
#region 私有方法
///
/// 添加L7文件方法
///
///
///
///
///
///
///
///
///
///
///
private async Task AddReceivedFileData(string fileName, string year, string program, string productNo, MessageReceiveDTO receiveFileData, QAD.IMessageReceiveAppService messageReceiveAppService, IMesProductL7PartsNoteAppService mesProductL7PartsNoteAppService, IProductL7PartsNoteAppService productL7PartsNoteAppService, IItemBasicAppService itemBasicAppService)
{
#region 开始操作添加文件信息
#region Add DataExchange Database Data
Logger.LogInformation($"{SendLogTitieString}Start adding exist file data in DataExchange Database.File name is {fileName}");
//开始添加在DataExchange数据库中的L7零件信息
Logger.LogInformation($"{SendLogTitieString}Changing file data to MesProductL7PartsNoteCreateInput.");
List deInputs = ConvertToInputList(year, program, productNo, receiveFileData);
#endregion Add DataExchange Database Data
#region 开始保存Store DataBase
#region 添加没有的配置码零件信息
Logger.LogInformation($"{SendLogTitieString}Start adding exist file data in 开始保存Store Database.File name is {fileName}");
var L7PartCodes = deInputs.Select(p => p.L7Part).Distinct().ToList();
//需要查询的零件列表
var partCodeList = deInputs.Select(p => p.Configuration).Distinct().ToList();
partCodeList.AddRange(L7PartCodes);
//按照零件进行归总
var sumEntityList = deInputs.GroupBy(p => new { p.Year, p.ProductNo, p.Program, p.FATA, p.Configuration, p.Position }).ToList();
//获取所有的L7零件信息,并获取零件是不是采购件、制造件
SfsBaseDataRequestInputBase requestInput = new SfsBaseDataRequestInputBase() { MaxResultCount = 999 };
if (L7PartCodes.Count > 0)
{
string partCodesStr = System.Text.Json.JsonSerializer.Serialize(partCodeList);
requestInput.Condition.Filters.Add(new Sfs.Shared.Domain.Filter() { Action = EnumFilterAction.In.ToString(), Column = "Code", Logic = EnumFilterLogic.And.ToString(), Value = partCodesStr, });
}
Logger.LogInformation($"{SendLogTitieString}Start geting item basic infos.");
var itemDtoListResult = await itemBasicAppService.GetPagedListByFilterAsync(requestInput, false).ConfigureAwait(false);
//返回的所有需要的零件信息表
var itemBaseList = itemDtoListResult.Items;
Logger.LogInformation($"{SendLogTitieString}Finished geting item basic infos.Info count is{itemDtoListResult.Items.Count}.");
#endregion
#region 开始构建Store的L7零件结构表
List noteList = new List();
foreach (var sumEntity in sumEntityList)
{
#region 先是获取配置码的基本信息是否存在,存在就继续,不存在就先保存配置码信息,然后在进行后面的库存操作
try
{
//先是获取配置码的基本信息是否存在,存在就继续,不存在就先保存配置码信息,然后在进行后面的库存操作.
var item = itemBaseList.FirstOrDefault(p => p.Code == sumEntity.Key.Configuration);
if (item == null)
{
await InsertItemBasic(sumEntity.Key.Program, sumEntity.Key.ProductNo, sumEntity.Key.Configuration, sumEntity.Key.FATA, sumEntity.Key.Program, itemBasicAppService).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Add item basic info.Code is{sumEntity.Key.Configuration}.");
}
}
catch (Volo.Abp.UserFriendlyException)
{
await InsertItemBasic(sumEntity.Key.Program, sumEntity.Key.ProductNo, sumEntity.Key.Configuration, sumEntity.Key.FATA, sumEntity.Key.Program, itemBasicAppService).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Add item basic info.Code is{sumEntity.Key.Configuration}.");
}
#endregion
ProductL7PartsNoteEditInput note = new ProductL7PartsNoteEditInput()
{
ProductNo = sumEntity.Key.ProductNo,
Program = sumEntity.Key.Program,
FATA = sumEntity.Key.FATA,
Configuration = sumEntity.Key.Configuration,
Position = sumEntity.Key.Position,
Year = sumEntity.Key.Year,
Details = new List(),
};
var detailList = deInputs.Where(p => p.Year == sumEntity.Key.Year &&
p.ProductNo == sumEntity.Key.ProductNo &&
p.Program == sumEntity.Key.Program &&
p.FATA == sumEntity.Key.FATA &&
p.Configuration == sumEntity.Key.Configuration &&
p.Position == sumEntity.Key.Position).ToList();
foreach (var detail in detailList)
{
ProductL7PartsNoteDetailInput noteDetail = new ProductL7PartsNoteDetailInput()
{
ProductNo = sumEntity.Key.ProductNo,
Program = sumEntity.Key.Program,
FATA = sumEntity.Key.FATA,
Configuration = sumEntity.Key.Configuration,
Position = sumEntity.Key.Position,
L7Part = detail.L7Part,
ItemCode = detail.L7Part,
State = detail.State,
CreateDate = detail.CreateDate,
Qty = detail.Qty,
RowID = detail.RowID,
};
var itemBase = itemBaseList.FirstOrDefault(p => p.Code == detail.L7Part);
if (itemBase == null)
{
//throw new Exception($"未找到零件{detail.L7PartCode}的零件基础信息,请确认基础信息是否齐全!");
}
else
{
noteDetail.CanMake = itemBase.CanMake;
noteDetail.CanBuy = itemBase.CanBuy;
}
note.Details.AddIfNotContains(noteDetail);
}
noteList.Add(note);
}
#endregion 开始构建Store的L7零件结构表
Logger.LogInformation($"{SendLogTitieString}Starting productL7PartsNoteAppService.CreateAsync.");
//开始添加在Store数据库中的L7零件信息
await productL7PartsNoteAppService.CreateAsync(noteList).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Finished productL7PartsNoteAppService.CreateAsync.");
Logger.LogInformation($"{SendLogTitieString}Finished adding exist file data in Store Database.File name is {fileName}");
#endregion
Logger.LogInformation($"{SendLogTitieString}Start mesProductL7PartsNoteAppService AddManyAsync.");
await mesProductL7PartsNoteAppService.AddManyAsync(deInputs).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Finished mesProductL7PartsNoteAppService AddManyAsync.");
#endregion
}
///
/// 插入对应的零件基础信息
///
private static async Task InsertItemBasic(string program, string productNo, string configuration, string fata, string position, IItemBasicAppService itemBasicAppService)
{
string desc;
switch (position)
{
case "FL":
desc = "左前门";
break;
case "RL":
desc = "左后门";
break;
case "FR":
desc = "右前门";
break;
case "RR":
desc = "右后门";
break;
default:
desc = position;
break;
}
var exist = new ItemBasicEditInput
{
Code = configuration,
Name = program + "项目" + desc,
Desc1 = fata, //FATA码
Desc2 = fata, //位置信息
Status = EnumItemStatus.Active,
CanBuy = false,
CanMake = true,
Type = string.Empty, //类型
Category = string.Empty, //种类
Group = string.Empty, //分组
Color = string.Empty, //颜色
Configuration = string.Empty, //配置
BasicUom = "E", //基本计量单位
AbcClass = "Z", //ABC类
Project = program, //项目
Version = "1", //版本
Eco = string.Empty, //工程变革
Validity = 365, //有效期
ValidityUnit = EnumValidityUnit.Day, //有效期单位
ManageType = EnumItemManageType.SingleUnit, //管理类型
Elevel = string.Empty, //打印标签用的一个等级
Remark = productNo //产品码
};
//添加该Item信息
await itemBasicAppService.UpsertAsync(exist).ConfigureAwait(false);
}
///
/// 将文件数据转化为mes保存的数据
///
///
///
///
///
///
///
private static List ConvertToInputList(string year, string program, string productNo, MessageReceiveDTO msgReceObj)
{
List inputList = new List();
try
{
//string[] topInfos = msgReceObj.MessageFileName.Split("_");
//string program = topInfos[0];//项目
//string productNo = topInfos[1]; //生产码
//string year = topInfos[2].Substring(0, 4); //年份
//获取对应的明细字段
string[] txtLines = msgReceObj.MessageContent.Split("\r\n");
foreach (var txtLine in txtLines)
{
if (txtLine.Trim() == "" || txtLine.StartsWith("Position,"))
{
continue;
}
string[] strs = txtLine.Split(",");
//Position,FATA,Configuration,L7Part,Qty
//FL,254FLB2Y34BBBO1111111N11,FL012,A2547205501,1
string position = strs[0]; //位置
string FATA = strs[1]; //Fata
string configuration = strs[2]; //配置码
string l7Part = strs[3]; //L7零件号
string qty = strs[4]; //数量
MesProductL7PartsNoteCreateInput createInput = new MesProductL7PartsNoteCreateInput()
{
RowID = 0,
State = Convert.ToInt32(msgReceObj.Type),
Year = year,
ProductNo = productNo,
Program = program,
Position = position,
FATA = FATA,
Configuration = configuration,
L7Part = l7Part,
Qty = Convert.ToInt32(qty),
CreateDate = msgReceObj.CreationTime,
Number = "Mes",
};
inputList.Add(createInput);
}//foreach
return inputList;
}
catch (Exception ex)
{
string errorMsg = $"调用ConvertToInputList方法时报错,文件名称={msgReceObj.MessageFileName}:" + ex.Message;
throw new Exception(errorMsg);
}
}
///
/// 开始删除之前保存过的数据
///
///
///
///
///
///
///
///
///
private async Task DeleteReceivedFileData(string fileName, string year, string program, string productNo, QAD.IMessageReceiveAppService messageReceiveAppService, IMesProductL7PartsNoteAppService mesProductL7PartsNoteAppService, IProductL7PartsNoteAppService productL7PartsNoteAppService)
{
#region 开始操作需要删除的文件
#region Delete Store Database Data
Logger.LogInformation($"{SendLogTitieString}Start deleteing exist file data in Store Database.File name is {fileName}");
//开始删除在Store数据库中的L7零件信息
Logger.LogInformation($"{SendLogTitieString}Starting productL7PartsNoteAppService.DeleteByBaseInfoAsync.");
//保存相关L7零件信息
await productL7PartsNoteAppService.DeleteByBaseInfoAsync(year, program, productNo).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Finished productL7PartsNoteAppService.DeleteByBaseInfoAsync.");
Logger.LogInformation($"{SendLogTitieString}Finished deleteing exist file data in Store Database.File name is {fileName}");
#endregion
#region Delete DataExchange Database Data
Logger.LogInformation($"{SendLogTitieString}Start deleteing exist file data in DataExchange Database.File name is {fileName}");
//开始删除在DataExchange数据库中的L7零件信息
await mesProductL7PartsNoteAppService.DeleteByBaseInfoAsync(year, program, productNo).ConfigureAwait(false);
Logger.LogInformation($"{SendLogTitieString}Finished deleteing exist file data in DataExchange Database.File name is {fileName}");
#endregion
//#region Archiving File Data
//Logger.LogInformation($"{SendLogTitieString}Start archiving file data.File name is {fileName}");
//await messageReceiveAppService.UpdateReceiveStatusByIdsAsync(new List() { receiveFileData.Id }, EnumReceiveStatus.Archived);
//Logger.LogInformation($"{SendLogTitieString}Finished archiving file data.File name is {fileName}");
//#endregion
#endregion
}
#endregion 私有方法
#region delete method
////[UnitOfWork]
//protected override async Task DoWorkAsyncBak(PeriodicBackgroundWorkerContext workerContext)
//{
// Logger.LogInformation("{SendLogTitieString}Starting File Data Exchange...");
// if (!_options.Value.IncomingOptions.Active)
// {
// Logger.LogInformation("{SendLogTitieString} File Data Exchange is not active!");
// return;
// }
// //Timer.Stop(); //运行期间,暂定计时
// string fileName = "";
// try
// {
// #region 获取需要更新的文件
// //Resolve dependencies
// var messageReceiveAppService = workerContext
// .ServiceProvider
// .GetRequiredService();
// List incomingDataList = await messageReceiveAppService.GetListAsync();
// if (incomingDataList.Count == 0)
// {
// Logger.LogInformation("{SendLogTitieString}Can't find any file data...");
// return;
// }
// Logger.LogInformation($"{SendLogTitieString}:There are total {incomingDataList.Count} file data to be managed.");
// ;
// #endregion
// List mesNotes = new List();
// foreach (var mesIncomData in incomingDataList)
// {
// var inputList = ConvertToInputList(mesIncomData);
// mesNotes.AddRange(inputList);
// }
// #region 添加所有的L7零件信息
// //获取所有的L7零件信息,并获取零件是不是采购件、制造件
// var L7PartCodes = mesNotes.Select(p => p.L7Part).Distinct().ToList();
// Logger.LogInformation("{SendLogTitieString}Initial mesProductL7PartsNoteAppService...");
// #region 声明需要的服务信息
// //Resolve dependencies
// var mesProductL7PartsNoteAppService = workerContext
// .ServiceProvider
// .GetRequiredService();
// #endregion
// Logger.LogInformation("{SendLogTitieString}Initial mesProductL7PartsNoteAppService end...");
// await mesProductL7PartsNoteAppService.AddManyAsync(mesNotes);
// Logger.LogInformation("{SendLogTitieString}Initial mesProductL7PartsNoteAppService AddManyAsync end...");
// Logger.LogInformation("{SendLogTitieString}Initial itemBasicAppService ...");
// //Resolve dependencies
// var itemBasicAppService = workerContext
// .ServiceProvider
// .GetRequiredService();
// Logger.LogInformation("{SendLogTitieString}Initial itemBasicAppService end...");
// //Do the work
// //var itemBaseList = await itemBasicAppService.GetByCodesAsync(L7PartCodes);
// //var itemBaseList = new List();
// ItemBasicRequestInput requestInput = new ItemBasicRequestInput() { MaxResultCount = 99999 };
// if (L7PartCodes.Count > 0)
// {
// string partCodesStr = System.Text.Json.JsonSerializer.Serialize(L7PartCodes);
// requestInput.Condition.Filters.Add(new Sfs.Shared.Domain.Filter() { Action = EnumFilterAction.In.ToString(), Column = "Code", Logic = EnumFilterLogic.And.ToString(), Value = partCodesStr, });
// }
// //requestInput.MaxResultCount = 99999;
// var itemDtoListResult = await itemBasicAppService.GetListAsync(requestInput, false);
// var itemBaseList = itemDtoListResult.Items;
// #endregion
// //按照零件进行归总
// var sumEntityList = mesNotes.GroupBy(p => new { p.ProductNo, p.Program, p.FATA, p.Configuration, p.Position }).ToList();
// List noteList = new List();
// foreach (var sumEntity in sumEntityList)
// {
// #region 先是获取配置码的基本信息是否存在,存在就继续,不存在就先保存配置码信息,然后在进行后面的库存操作
// try
// {
// //先是获取配置码的基本信息是否存在,存在就继续,不存在就先保存配置码信息,然后在进行后面的库存操作.
// var item = await itemBasicAppService.GetByTypeAsync(sumEntity.Key.Configuration);
// if (item == null)
// {
// await InsertItemBasic(sumEntity.Key.Program, sumEntity.Key.ProductNo, sumEntity.Key.Configuration, sumEntity.Key.FATA, sumEntity.Key.Program, itemBasicAppService);
// }
// }
// catch (Volo.Abp.UserFriendlyException ex)
// {
// await InsertItemBasic(sumEntity.Key.Program, sumEntity.Key.ProductNo, sumEntity.Key.Configuration, sumEntity.Key.FATA, sumEntity.Key.Program, itemBasicAppService);
// }
// #endregion
// ProductL7PartsNoteCreateInput note = new ProductL7PartsNoteCreateInput()
// {
// ProductNo = sumEntity.Key.ProductNo,
// Program = sumEntity.Key.Program,
// FATA = sumEntity.Key.FATA,
// Configuration = sumEntity.Key.Configuration,
// Position = sumEntity.Key.Position,
// Details = new List(),
// };
// var detailList = mesNotes.Where(p => p.ProductNo == sumEntity.Key.ProductNo &&
// p.Program == sumEntity.Key.Program &&
// p.FATA == sumEntity.Key.FATA &&
// p.Configuration == sumEntity.Key.Configuration &&
// p.Position == sumEntity.Key.Position).ToList();
// foreach (var detail in detailList)
// {
// ProductL7PartsNoteDetailInput noteDetail = new ProductL7PartsNoteDetailInput()
// {
// ProductNo = sumEntity.Key.ProductNo,
// Program = sumEntity.Key.Program,
// FATA = sumEntity.Key.FATA,
// Configuration = sumEntity.Key.Configuration,
// Position = sumEntity.Key.Position,
// L7Part = detail.L7Part,
// ItemCode = detail.L7Part,
// State = detail.State,
// CreateDate = detail.CreateDate,
// Qty = detail.Qty,
// RowID = detail.RowID,
// };
// var itemBase = itemBaseList.FirstOrDefault(p => p.Code == detail.L7Part);
// if (itemBase == null)
// {
// //throw new Exception($"未找到零件{detail.L7PartCode}的零件基础信息,请确认基础信息是否齐全!");
// }
// else
// {
// noteDetail.CanMake = itemBase.CanMake;
// noteDetail.CanBuy = itemBase.CanBuy;
// }
// note.Details.AddIfNotContains(noteDetail);
// }
// noteList.Add(note);
// }
// Logger.LogInformation($"{SendLogTitieString}开始声明 IProductL7PartsNoteAppService...");
// //Resolve dependencies
// var productL7PartsNoteAppService = workerContext
// .ServiceProvider
// .GetRequiredService();
// Logger.LogInformation($"{SendLogTitieString}声明结束 IProductL7PartsNoteAppService...");
// Logger.LogInformation($"{SendLogTitieString}productL7PartsNoteAppService.CreateAsync," + productL7PartsNoteAppService.ToString());
// //保存相关L7零件信息
// await productL7PartsNoteAppService.CreateAsync(noteList);
// Logger.LogInformation($"{SendLogTitieString}productL7PartsNoteAppService.CreateAsync 结束");
// //更新读取的文件信息为已经归档
// var incomeDataIds = incomingDataList.Select(p => p.Id).ToList();
// Logger.LogInformation($"{SendLogTitieString}更新读取的文件信息为已经归档 开始...");
// await messageReceiveAppService.UpdateReceiveStatusByIdsAsync(incomeDataIds, EnumReceiveStatus.Archived);
// Logger.LogInformation($"{SendLogTitieString}更新读取的文件信息为已经归档完毕...");
// }
// catch (Exception ex)
// {
// string errorMsg = $"{SendLogTitieString}调用TransmissionMessageAsync方法出错,报文名称{fileName}:" + ex.Message;
// string errorMsg2 = $"{SendLogTitieString}调用TransmissionMessageAsync方法出错,报文名称{fileName}:" + ex.ToString();
// //_logRemindDomainService.WriteLogRemind(fileName, errorMsg, LogTypeEnum.M100);
// Logger.LogError(errorMsg);
// Logger.LogError(errorMsg2);
// }
// //Timer.Start(); //运行结束,开启计时
// Logger.LogInformation("{SendLogTitieString}Completed File Data Exchange...");
//}
#endregion
}