using iWareCommon.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using yunneiWCS.EnumDefine;
using yunneiWCS.ExtendFunction;
using yunneiWCS.SystemInteraction.mes2.dto;
using static WZ.Useful.Commons.NativeMethods;
namespace yunneiWCS.mes
{
///
/// MES推送接口
///
public class PushMesHandler
{
public static string mes_api_url = ConfigHelper.GetConfigString("MesUrl");//修改为配置文件 【EditBy shaocx,2022-01-27】
static HTTPService mes_api = new HTTPService(mes_api_url);//mes基地址
///
/// 给MES推送入库信息
///
///
///
public static ApiResponse Mes_InStockSend(List pushData, string _identifier, LogType _logType)
{
ApiResponse res = null;
var funName = "Mes_InStockSend";
try
{
MesRequest> mesRequest = new MesRequest>();
mesRequest.data = pushData;
mesRequest.identifier = _identifier;
string paprm = JsonConvert.SerializeObject(mesRequest);
Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
Guid guid = System.Guid.NewGuid();
//模拟
if (Form1.isvirtual)
{//模拟环境
res = new ApiResponse();
res.Success = true;
res.Message = "系统模拟完成";
}
else
{
var resStr = mes_api.postContentForString("T_WMS_Inbound_Record", paprm, guid);
Log4NetHelper.WriteInfoLog(_logType, $"{funName},结果返回:{resStr}");
res = JsonConvert.DeserializeObject>(resStr);
}
Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{JsonConvert.SerializeObject(res)}");
}
catch (Exception ex)
{
Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
res.Message = "发送异常:" + ex.Message;
}
return res;
}
///
/// 给MES推送出库信息
///
///
///
public static ApiResponse Mes_OutStockSend(List pushData, string _identifier, LogType _logType)
{
ApiResponse res = null;
var funName = "Mes_OutStockSend";
try
{
MesRequest> mesRequest = new MesRequest>();
mesRequest.data = pushData;
mesRequest.identifier = _identifier;
string paprm = JsonConvert.SerializeObject(mesRequest);
Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
Guid guid = System.Guid.NewGuid();
//模拟
if (Form1.isvirtual)
{//模拟环境
res = new ApiResponse();
res.Success = true;
res.Message = "系统模拟完成";
}
else
{
var resStr = mes_api.postContentForString("T_WMS_Outbound_Record", paprm, guid);
Log4NetHelper.WriteInfoLog(_logType, $"{funName},结果返回:{resStr}");
res = JsonConvert.DeserializeObject>(resStr);
}
Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{JsonConvert.SerializeObject(res)}");
}
catch (Exception ex)
{
Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
res.Message = "发送异常:" + ex.Message;
}
return res;
}
///
/// 给MES推送库存信息
///
///
///
public static ApiResponse Mes_StockSend(List pushData, LogType _logType)
{
ApiResponse res = null;
var funName = "Mes_StockSend";
try
{
MesRequest> mesRequest = new MesRequest>();
mesRequest.data = pushData;
string paprm = JsonConvert.SerializeObject(mesRequest);
Guid guid = System.Guid.NewGuid();
Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
//模拟
if (Form1.isvirtual)
{//模拟环境
res = new ApiResponse();
res.Success = true;
res.Message = "系统模拟完成";
}
else
{
var resStr = mes_api.postContentForString("T_WMS_Realtime_Data", paprm, guid);
Log4NetHelper.WriteInfoLog(_logType, $"{funName},结果返回:{resStr}");
res = JsonConvert.DeserializeObject>(resStr);
}
Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{JsonConvert.SerializeObject(res)}");
}
catch (Exception ex)
{
Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
res.Message = "发送异常:" + ex.Message;
}
return res;
}
}
}