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 { /// /// MES数据传输(真正的MES) /// 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 sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.isSendToMes == 0).ToList(); if (sendMesData.Count > 0) { foreach (var itemTask in sendMesData) { try { ApiResponse ret = null; //获取信息明细 var details = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == itemTask.ID).ToList(); List pushData = new List(); 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, }); } if (Form1.isvirtual) {//模拟环境 ret = new ApiResponse(); ret.Success = true; ret.Message = "系统模拟完成"; } else { 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; } } 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 = "推送给MES数据异常:" + JsonConvert.SerializeObject(ex); Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); } } } else { SystemWarningMsg.msg_mesDataTranfficForRealMes = "没有数据要推送给MES!"; } } } catch (Exception ex) { SystemWarningMsg.msg_mesDataTranfficForRealMes = "数据要推送给MES出现异常:" + ex.Message; Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); } } } } }