using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareSql; using iWareSql.DataAccess; using iWareSql.DBModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using XiGang.Core.Model; namespace iWareCC { /// /// 出库任务,失败的推送给MES /// public static class OutTaskRetryToMes { public static void Handler() { while (true) { try { var errMsg = ""; if (SystemValue.isAllowRuning_OutTaskRetryToMes && SystemValue.isStartedModel) { using (DbModel context = new DbModel()) { var list = context.Task_Main.Where(x => (x.IsNeedOnLine != null && x.IsNeedOnLine == true) && (x.IsOnLine == null || x.IsOnLine == false) //&& (x.OnLineToMesCount == null || x.OnLineToMesCount <= 3) ).ToList(); if (list != null && list.Count > 0) { SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求,目前有" + list.Count + "条"; foreach (var item in list) { if (item.OnLineToMesCount > 3) { continue; } MesRetModel ret = SingleToMes(item); if (ret.code != 200) { SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求失败:" + ret.msg + ",序列号:" + item.SerialNumber + ",订货号:" + item.OrderNo; break;//跳出循环 } } } else { SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求,目前有0条"; } SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求 成功。。"; } } } catch (Exception ex) { SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求 出现异常:" + ex.Message; Log4NetHelper.WriteErrorLog(LogType.CCWCFService, "出库任务,发送给MES上线请求 出现异常:" + ex.Message, ex); } Thread.Sleep(5000);//休眠5秒 } } private static MesRetModel SingleToMes(Task_Main mainTask) { return MesService.updateOnlineStatus(mainTask); } } }