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) { ApiResponse ret = null; List pushData = new List(); foreach (var itemTask in sendMesData) { pushData.Add(new InboundStockInfoToMes() { 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, }); } if (Form1.isvirtual) {//模拟环境 ret = new ApiResponse(); ret.Success = true; ret.Message = "系统模拟完成"; } else { ret = PushMesHandler.Mes_StockSend(pushData, _logType); } } else { SystemWarningMsg.mesStockDataForRealMes = "没有数据要推送给MES!"; } } } catch (Exception ex) { SystemWarningMsg.mesStockDataForRealMes = "数据要推送给MES出现异常:" + ex.Message; Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.mesStockDataForRealMes, ex); } finally { //Thread.Sleep(5000);//正式需要5分钟推送一次 Thread.Sleep(5 * 60 * 1000);//正式需要5分钟推送一次 } } } } }