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);
}
}
}