分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-06-20 00ad010a45f2f58807eb0f4f70e2dcf66ef35085
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using Confluent.Kafka;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using WIDESEA_Comm.LogInfo;
using WIDESEA_Comm.MES_Info;
using WIDESEA_Core.EFDbContext;
using WIDESEA_WMS.IRepositories;
using WIDESEA_WMS.Repositories;
 
namespace WIDESEA_WMS.Common
{
    public class ToMes
    {
        public static void InfoToMes()
        {
            try
            {
                VOLContext context = new VOLContext();
                Idt_info_to_mesRepository mesRepository = new dt_info_to_mesRepository(context);
                var infos = mesRepository.Find(x => !x.State).OrderBy(x => x.Createtime).ToList();
                foreach (var info in infos)
                {
                    try
                    {
                        var mesData = Request.RequestData(info.Info, MESAPIAddress.IPAddress_MES + info.ActionName);
                        if (mesData.Contains("连接尝试失败")) throw new Exception(mesData);
                        if (mesData.Contains("向一个无法连接的网络尝试了一个套接字操作")) throw new Exception(mesData);
                        var requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData);
 
                        if (requestMes.code == "200" && requestMes.Type == "success")
                        {
                            info.State = true;
                            info.Successtime = DateTime.Now;
                            info.Message = requestMes.message;
                        }
                        else
                            throw new Exception(requestMes.message);
                    }
                    catch (Exception ex)
                    {
                        info.Message = ex.Message;
                    }
                    mesRepository.Update(info, x => new { x.State, x.Successtime, x.Message }, true);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            
        }
    }
}