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 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 sendMesData = mod.v_srmStockdetails.OrderBy(x => x.positionName).ToList(); if (sendMesData.Count > 0) { SystemWarningMsg.mesStockDataForRealMes = $"{MyExtend.MsgTimeStr()},要推送{sendMesData.Count()}条!"; mesMsg ret = null; List pushData = new List(); 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.productCode, materialName = itemTask.productName, positionName = itemTask.positionName, productName = itemTask.materialName, serialNumber = itemTask.serialNumber, supplier = itemTask.supplier, version = itemTask.version, }); } 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分钟推送一次 } } } } }