22
schangxiang@126.com
2024-12-18 344680022c0c46a1bb108e7d2e81bf2296d79d15
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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
{
    /// <summary>
    /// 推送MES- 出纸机接口
    /// </summary>
    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)
                            {
                                value.PushTime = value.UpdateTime = DateTime.Now;
                                var res = new HTTPService(Mes_Api).getContent<Respone>(Mes_Api_papercut
                                    + "?PackageCode=" + value.PackageCode, Guid.NewGuid(), 10000);
                                value.UpdateTime = DateTime.Now;
                                value.RetTime = DateTime.Now;
                                if (res.iState == 0)
                                {
                                    value.UpdateUserName = SysGloble.WCSSystem;
                                    value.PushNum++;
                                    value.PushStatus = (int)PushStatusEnum.PushSuccess;
                                    value.ApiMessage = (res.message ?? "") + (res.errorMessage ?? "");
                                }
                                else
                                {
                                    value.UpdateUserName = SysGloble.WCSSystem;
                                    value.PushStatus = (int)PushStatusEnum.Pushing;
                                    value.PushNum++;
                                    value.ApiMessage = (res.message ?? "") + (res.errorMessage ?? "");
 
                                    //不再 更新为 发送失败。必须要等待  纸箱机返回正确的信息才行!!!【Editby shaocx,2024-12-17】
                                    /*
                                    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);
            }
        }
 
    }
 
}