222
schangxiang@126.com
2025-09-02 80073b8cd70199dd9ff1d3718150019d8abe3969
wcs/yunneiWCS/yunneiWCS/Form1.cs
@@ -27,6 +27,7 @@
using yunneiWCS.Common;
using yunneiWCS.SystemInteraction.tianyong;
using yunneiWCS.PLC.Srm;
using yunneiWCS.SystemInteraction.mes2.dto;
namespace yunneiWCS
{
@@ -2333,6 +2334,103 @@
            }
        }
        /// <summary>
        /// MES数据推送 [Editby shaocx,2025-09-02]
        /// </summary>
        public void mesDataTranfficForRealMes()
        {
            while (true)
            {
                SystemWarningMsg.msg_mesDataTranfficForRealMes = "";
                try
                {
                    Thread.Sleep(5000);
                    using (dbmodel mod = new dbmodel())
                    {
                        List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.isSendToMes == 0).ToList();
                        if (sendMesData.Count > 0)
                        {
                            foreach (var itemTask in sendMesData)
                            {
                                try
                                {
                                    mesMsg res = null;
                                    if (isvirtual)
                                    {//模拟环境
                                        res = new mesMsg();
                                        res.ErrorCode = 0;
                                        res.ErrorMsg = "模拟环境下,模拟发送";
                                    }
                                    else
                                    {//正式环境
                                        //获取信息明细
                                        var details = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == itemTask.ID).ToList();
                                        List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>();
                                        foreach (var de in details)
                                        {
                                            pushData.Add(new InboundStockInfoToMes()
                                            {
                                                containerCode = itemTask.containerCode,
                                                createTime = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
                                                materialCode = de.productCode,
                                                materialName = de.productName,
                                                positionName = itemTask.sourcePlace,
                                                productName = itemTask.materialName,
                                                serialNumber = de.serialNumber,
                                                supplier = itemTask.supplier,
                                                version = itemTask.version,
                                            });
                                        }
                                        ApiResponse<object> ret = null;
                                        switch (itemTask.outInFlag)
                                        {
                                            case (int)OutInFlag.入库:
                                                ret = PushMesHandler.Mes_InStockSend(pushData, itemTask.ID.ToString());
                                                break;
                                            case (int)OutInFlag.出库:
                                                ret = PushMesHandler.Mes_OutStockSend(pushData, itemTask.ID.ToString());
                                                break;
                                            default:
                                                break;
                                        }
                                        if (ret.Success)
                                        {
                                            itemTask.isSendToMes = 1;
                                        }
                                        else
                                        {
                                            itemTask.isSendToMes = 0;
                                        }
                                        itemTask.SendToMesTime = DateTime.Now;
                                        itemTask.MesRet = ret.Message;
                                        itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1;
                                        mod.SaveChanges();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    SystemWarningMsg.msg_mesDataTranfficForRealMes = "推送给MES数据异常:" + JsonConvert.SerializeObject(ex);
                                    WZ.Useful.Commons.LogTextHelper.WriteLine("Form1", "mesDataTranffic", SystemWarningMsg.msg_mesDataTranffic);
                                }
                            }
                        }
                        else
                        {
                            SystemWarningMsg.msg_mesDataTranfficForRealMes = "没有数据要推送给MES!";
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemWarningMsg.msg_mesDataTranfficForRealMes = "数据要推送给MES出现异常:" + ex.Message;
                    WZ.Useful.Commons.LogTextHelper.WriteLine("Form1", "mesDataTranffic数据要推送给MES出现异常:", SystemWarningMsg.msg_mesDataTranfficForRealMes + "," + JsonConvert.SerializeObject(ex));
                }
            }
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Environment.Exit(0);//退出本进程所有线程
@@ -2824,6 +2922,7 @@
                    this.lbl_Thread_HandleTaskForNoIssuedForDirectOnLinePoint__ErrMsg.Text = showNowTime + SystemWarningMsg.Thread_HandleTaskForNoIssuedForDirectOnLinePoint__ErrMsg;
                    this.lbl_msg_mesDataTranffic.Text = showNowTime + SystemWarningMsg.msg_mesDataTranffic;
                    this.lbl_msg_mesDataTranffic_V2.Text = showNowTime + SystemWarningMsg.msg_mesDataTranfficForRealMes;
                    this.lbl_sendTaskForPick_ErrMsg.Text = showNowTime + SystemWarningMsg.Thread_sendTaskForPick_ErrMsg;
                    this.lbl_ClearDataMsg.Text = showNowTime + SystemWarningMsg.Thread_lbl_ClearDataMsg;