schangxiang@126.com
2025-09-11 e86f3bddecdc13210a546761ecf5e8550ea20799
wcs/yunneiWCS/yunneiWCS/SystemInteraction/mes2/PushMesHandler.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using iWareCommon.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -6,7 +7,9 @@
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
{
@@ -23,23 +26,140 @@
        /// </summary>
        /// <param name="pushData"></param>
        /// <returns></returns>
        public static ApiResponse<object> Mes_InStockSend(List<InboundStockInfoToMes> pushData)
        public static mesMsg Mes_InStockSend(List<InboundStockInfoToMes> pushData, LogType _logType)
        {
            ApiResponse<object> res = null;
            mesMsg res = null;
            var funName = "Mes_InStockSend";
            try
            {
                MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
                mesRequest.data = pushData;
                mesRequest.Datas = pushData;
                mesRequest.TableName = "T_WMS_Inbound_Record";
                mesRequest.PrimaryKeys = "identifier";
                string paprm = JsonConvert.SerializeObject(mesRequest);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
                Guid guid = System.Guid.NewGuid();
                res = JsonConvert.DeserializeObject<ApiResponse<object>>(mes_api.postContentForString("T_WMS_Inbound_Record", paprm, guid));
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_InStockSend 返回状态码:", res.Code + " 返回信息:" + res.Message);
                //模拟
                if (Form1.isvirtual)
                {//模拟环境
                    res = new mesMsg();
                    res.ErrorCode = 0;
                    res.ErrorMsg = "系统模拟完成";
                }
                else
                {
                    var resStr = mes_api.postContentForString("", paprm, guid);
                    Log4NetHelper.WriteInfoLog(_logType, $"{funName},结果返回:{resStr}");
                    res = JsonConvert.DeserializeObject<mesMsg>(resStr);
                }
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{JsonConvert.SerializeObject(res)}");
            }
            catch (Exception ex)
            {
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_InStockSend ", " 发送异常:" + JsonConvert.SerializeObject(ex));
                res.Message = "发送异常:" + ex.Message;
                Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
                res.ErrorCode = 4;
                res.ErrorMsg = "wms发送异常:" + ex.Message;
            }
            return res;
        }
        /// <summary>
        /// 给MES推送出库信息
        /// </summary>
        /// <param name="pushData"></param>
        /// <returns></returns>
        public static mesMsg Mes_OutStockSend(List<InboundStockInfoToMes> pushData, LogType _logType)
        {
            mesMsg res = null;
            var funName = "Mes_OutStockSend";
            try
            {
                MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
                mesRequest.Datas = pushData;
                mesRequest.TableName = "T_WMS_Outbound_Record";
                mesRequest.PrimaryKeys = "identifier";
                string paprm = JsonConvert.SerializeObject(mesRequest);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
                Guid guid = System.Guid.NewGuid();
                //模拟
                if (Form1.isvirtual)
                {//模拟环境
                    res = new mesMsg();
                    res.ErrorCode = 0;
                    res.ErrorMsg = "系统模拟完成";
                }
                else
                {
                    var resStr = mes_api.postContentForString("", paprm, guid);
                    Log4NetHelper.WriteInfoLog(_logType, $"{funName},结果返回:{resStr}");
                    res = JsonConvert.DeserializeObject<mesMsg>(resStr);
                }
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{JsonConvert.SerializeObject(res)}");
            }
            catch (Exception ex)
            {
                Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
                res.ErrorCode = 4;
                res.ErrorMsg = "wms发送异常:" + ex.Message;
            }
            return res;
        }
        /// <summary>
        /// 给MES推送库存信息
        /// </summary>
        /// <param name="pushData"></param>
        /// <returns></returns>
        public static mesMsg Mes_StockSend(LogType _logType, List<InboundStockInfoToMes> pushData, LogType _logTypeForInfo)
        {
            mesMsg res = null;
            var funName = "Mes_StockSend";
            try
            {
                MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
                mesRequest.Datas = pushData;
                mesRequest.TableName = "T_WMS_Realtime_Data";
                mesRequest.PrimaryKeys = "serialNumber,positionName";
                string paprm = JsonConvert.SerializeObject(mesRequest);
                Guid guid = System.Guid.NewGuid();
                Log4NetHelper.WriteInfoLog(_logTypeForInfo, $"{funName},准备参数:{paprm}");
                var numCount = $"{pushData.Count()}条";
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{numCount}");
                //模拟
                if (Form1.isvirtual)
                {//模拟环境
                    res = new mesMsg();
                    res.ErrorCode = 0;
                    res.ErrorMsg = "系统模拟完成";
                }
                else
                {
                    var resStr = mes_api.postContentForString("", paprm, guid);
                    Log4NetHelper.WriteInfoLog(_logTypeForInfo, $"{funName},结果返回:{resStr}");
                    Log4NetHelper.WriteInfoLog(_logType, $"{funName},结果返回:{resStr}");
                    res = JsonConvert.DeserializeObject<mesMsg>(resStr);
                }
                Log4NetHelper.WriteInfoLog(_logTypeForInfo, $"{funName},参数:{paprm},返回:{JsonConvert.SerializeObject(res)}");
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{numCount},返回:{JsonConvert.SerializeObject(res)}");
            }
            catch (Exception ex)
            {
                Log4NetHelper.WriteErrorLog(_logTypeForInfo, $"{funName},异常:" + ex.Message, ex);
                Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
                res.ErrorCode = 4;
                res.ErrorMsg = "wms发送异常:" + ex.Message;
            }
            return res;