using iWareCc.Properties; using iWareCommon.Utils; using iWareDataCore.ORM; using iWareDataCore.TASK.EnumType; using iWareLog.LOG.EnumType; using iWareLog.ORM; using iWareLog.Report.Helper; using iWareLog.Report.Service; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace iWareCc { /// /// MES出入库数据传输(真正的MES)-线程 /// public class mesDataTranfficForRealMesThread { //public static LogType _logType = LogType.mesDataTranfficForRealMes; public static async void Handler() { while (true) { try { Thread.Sleep(5000); List sendMesData = InOutService.GetInstance().GetInOutStorageDetailListForMes(); if (sendMesData.Count > 0) { //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},要推送{sendMesData.Count()}条!"; foreach (var itemTask in sendMesData) { using (DbModelLog mod = new DbModelLog()) { try { ApiResponse ret = null; itemTask.Timestamp = DateTime.Now;//发送时间戳实时 ret = PushMesHandler.Mes_InStockSend(itemTask); //查找对象 var db_itemTask = mod.InOutStorageDetails.Where(x => x.id == itemTask.Id).FirstOrDefault(); //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},已推送结束,返回:{JsonConvert.SerializeObject(ret)}"; if (ret.Success) { db_itemTask.isSendToMes = (int)EIsSendToMes.推送成功;//推送成功 db_itemTask.isSendToMesStr = "成功"; } else { db_itemTask.isSendToMes = (int)EIsSendToMes.待推送;//待推送 db_itemTask.isSendToMesStr = "失败"; } db_itemTask.SendToMesTime = DateTime.Now; db_itemTask.MesRet = ret.Message; db_itemTask.SendToMesCount = (db_itemTask.SendToMesCount ?? 0) + 1; if (db_itemTask.isSendToMes == (int)EIsSendToMes.待推送 && db_itemTask.SendToMesCount > 100) { db_itemTask.isSendToMes = (int)EIsSendToMes.强制完成;//表示强制推送成功 db_itemTask.isSendToMesStr = "强制成功"; } mod.SaveChanges(); } catch (Exception ex) { LogTextHelper.WriteLine(Resources.LogDir + @"/MES出入库数据传输/" + "mesDataTranfficForRealMesThread", "MES出入库数据传输异常:{0}", JsonConvert.SerializeObject(ex)); //LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},推送给MES数据异常:" + JsonConvert.SerializeObject(ex); //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); } } } } } catch (Exception ex) { LogTextHelper.WriteLine(Resources.LogDir + @"/MES出入库数据传输/" + "mesDataTranfficForRealMesThread", "(外部)MES出入库数据传输异常:{0}", JsonConvert.SerializeObject(ex)); //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},数据要推送给MES出现异常:" + ex.Message; //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex); } } } } }