using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareModel.Entity.MES;
using iWareModel.EnumType.WMS;
using iWareSql;
using iWareSql.DataAccess;
using iWareSql.DBModel;
using iWareSql.WmsDBModel;
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 PushPaperCutToMes
{
public static string Mes_Api = ConfigHelper.GetConfigString("Mes_Api");
public static string Mes_Api_papercut = ConfigHelper.GetConfigString("Mes_Api_papercut");
public static void Handler()
{
LogType logType = LogType.PushPaperCutToMes;
while (true)
{
try
{
var errMsg = "";
//if (SystemValue.isAllowRuning_OutTaskRetryToMes && SystemValue.isStartedModel)
if (SystemValue.isStartedModel)
{
using (WmsDBModel edm = new WmsDBModel())
{
var value = edm.mes_push_papercut.Where(x => x.PushStatus == 0 || x.PushStatus == 1).FirstOrDefault();
if (value != null)
{
var res = new HTTPService(Mes_Api).getContent(Mes_Api_papercut
+ "?PackageCode=" + value.PackageCode, Guid.NewGuid(), 10000);
value.UpdateTime = DateTime.Now;
if (res.iState == 0)
{
value.PushTime = value.UpdateTime = DateTime.Now;
value.UpdateUserName = SysGloble.WCSSystem;
value.PushNum++;
value.PushStatus = (int)PushStatusEnum.PushSuccess;
value.ApiMessage = (res.message ?? "") + (res.errorMessage ?? "");
}
else
{
value.PushTime = value.UpdateTime = DateTime.Now;
value.UpdateUserName = SysGloble.WCSSystem;
value.PushStatus = (int)PushStatusEnum.Pushing;
value.PushNum++;
value.ApiMessage = (res.message ?? "") + (res.errorMessage ?? "");
if (value.PushNum == 3)
{
value.PushStatus = (int)PushStatusEnum.PushFail;
}
}
edm.SaveChanges();
}
else
{
SystemWarningMsg._lbl_Alert_PushPaperCutToMes = "没有要处理的数据";
}
}
}
}
catch (Exception ex)
{
SystemWarningMsg._lbl_Alert_PushPaperCutToMes = " 推送MES- 包装完成接口 出现异常:" + ex.Message;
Log4NetHelper.WriteErrorLog(logType, " 推送MES- 包装完成接口 出现异常:" + ex.Message, ex);
}
Thread.Sleep(1000);
}
}
}
}