using iWareCommon.Utils;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading;
|
using yunneiWCS.EnumDefine;
|
using yunneiWCS.ExtendFunction;
|
using yunneiWCS.mes;
|
using yunneiWCS.ORM;
|
using yunneiWCS.SystemInteraction.mes2.dto;
|
|
namespace yunneiWCS.ThreadTask
|
{
|
/// <summary>
|
/// MES库存数据传输(真正的MES)
|
/// </summary>
|
public class mesStockDataForRealMes
|
{
|
public static LogType _logType = LogType.mesStockDataForRealMes;
|
public static async void Handler()
|
{
|
while (true)
|
{
|
try
|
{
|
|
//Log4NetHelper.WriteErrorLog(_logType, "测试啊啊啊啊 ");
|
//Log4NetHelper.WriteInfoLog(_logType, "测试啊啊啊啊 ");
|
using (dbmodel mod = new dbmodel())
|
{
|
List<v_srmStockdetails> sendMesData = mod.v_srmStockdetails.OrderBy(x => x.positionName).ToList();
|
|
if (sendMesData.Count > 0)
|
{
|
SystemWarningMsg.mesStockDataForRealMes = $"{MyExtend.MsgTimeStr()},要推送{sendMesData.Count()}条!";
|
mesMsg ret = null;
|
List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>();
|
foreach (var itemTask in sendMesData)
|
{
|
pushData.Add(new InboundStockInfoToMes()
|
{
|
identifier = Yitter.IdGenerator.YitIdHelper.NextId().ToString(),
|
containerCode = itemTask.containerCode,
|
createTime = itemTask.createTime?.ToString("yyyy-MM-dd HH:mm:ss"),
|
materialCode = itemTask.materialCode,
|
materialName = itemTask.productName,
|
positionName = itemTask.positionName,
|
productName = itemTask.materialName,
|
serialNumber = itemTask.serialNumber,
|
supplier = itemTask.supplier,
|
version = itemTask.version,
|
Creator = "wms"
|
|
});
|
|
}
|
ret = PushMesHandler.Mes_StockSend(pushData, _logType);
|
SystemWarningMsg.mesStockDataForRealMes = $"{MyExtend.MsgTimeStr()},已推送结束,{sendMesData.Count()}条!返回:{JsonConvert.SerializeObject(ret)}";
|
}
|
else
|
{
|
SystemWarningMsg.mesStockDataForRealMes = $"{MyExtend.MsgTimeStr()},没有数据要推送给MES!";
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
SystemWarningMsg.mesStockDataForRealMes = $"{MyExtend.MsgTimeStr()},数据要推送给MES出现异常:" + ex.Message;
|
Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.mesStockDataForRealMes, ex);
|
}
|
finally
|
{
|
//Thread.Sleep(5000);//正式需要5分钟推送一次
|
Thread.Sleep(5 * 60 * 1000);//正式需要5分钟推送一次
|
}
|
}
|
}
|
}
|
}
|