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 mesDataTranfficForRealMes
|
{
|
public static LogType _logType = LogType.mesDataTranfficForRealMes;
|
public static async void Handler()
|
{
|
while (true)
|
{
|
try
|
{
|
Thread.Sleep(5000);
|
//Log4NetHelper.WriteErrorLog(_logType, "测试啊啊啊啊 ");
|
//Log4NetHelper.WriteInfoLog(_logType, "测试啊啊啊啊 ");
|
using (dbmodel mod = new dbmodel())
|
{
|
List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.isSendToMes == 0).ToList();
|
|
if (sendMesData.Count > 0)
|
{
|
SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},要推送{sendMesData.Count()}条!";
|
foreach (var itemTask in sendMesData)
|
{
|
try
|
{
|
ApiResponse<object> ret = null;
|
|
//获取信息明细
|
var details = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == itemTask.ID).ToList();
|
List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>();
|
foreach (var de in details)
|
{
|
pushData.Add(new InboundStockInfoToMes()
|
{
|
containerCode = itemTask.containerCode,
|
createTime = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
|
materialCode = de.productCode,
|
materialName = de.productName,
|
positionName = itemTask.sourcePlace,
|
productName = itemTask.materialName,
|
serialNumber = de.serialNumber,
|
supplier = itemTask.supplier,
|
version = itemTask.version,
|
});
|
}
|
|
|
switch (itemTask.outInFlag)
|
{
|
case (int)OutInFlag.入库:
|
ret = PushMesHandler.Mes_InStockSend(pushData, itemTask.ID.ToString(), _logType);
|
break;
|
case (int)OutInFlag.出库:
|
ret = PushMesHandler.Mes_OutStockSend(pushData, itemTask.ID.ToString(), _logType);
|
break;
|
default:
|
break;
|
}
|
|
SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},已推送结束,返回:{JsonConvert.SerializeObject(ret)}";
|
if (ret.Success)
|
{
|
itemTask.isSendToMes = 1;
|
}
|
else
|
{
|
itemTask.isSendToMes = 0;
|
}
|
itemTask.SendToMesTime = DateTime.Now;
|
itemTask.MesRet = ret.Message;
|
itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1;
|
mod.SaveChanges();
|
|
}
|
catch (Exception ex)
|
{
|
SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},推送给MES数据异常:" + JsonConvert.SerializeObject(ex);
|
Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
|
}
|
}
|
}
|
else
|
{
|
SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},没有数据要推送给MES!";
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},数据要推送给MES出现异常:" + ex.Message;
|
Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
|
}
|
}
|
}
|
}
|
}
|