schangxiang@126.com
2024-11-28 ef3318c39fe8358b663e66daeb98adf1de1b97a8
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
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareSql;
using iWareSql.DataAccess;
using iWareSql.DBModel;
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 OutTaskRetryToMes
    {
        public static void Handler()
        {
            while (true)
            {
                try
                {
                    var errMsg = "";
                    if (SystemValue.isAllowRuning_OutTaskRetryToMes && SystemValue.isStartedModel)
                    {
                        using (DbModel context = new DbModel())
                        {
                            var list = context.Task_Main.Where(x => (x.IsNeedOnLine != null && x.IsNeedOnLine == true)
                            && (x.IsOnLine == null || x.IsOnLine == false)
                            //&& (x.OnLineToMesCount == null || x.OnLineToMesCount <= 3)
                            ).ToList();
                            if (list != null && list.Count > 0)
                            {
                                SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求,目前有" + list.Count + "条";
                                foreach (var item in list)
                                {
                                    if (item.OnLineToMesCount > 3)
                                    {
                                        continue;
                                    }
                                    MesRetModel<string> ret = SingleToMes(item);
                                    if (ret.code != 200)
                                    {
                                        SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求失败:" + ret.msg + ",序列号:" + item.SerialNumber + ",订货号:" + item.OrderNo;
                                        break;//跳出循环
                                    }
                                }
                            }
                            else
                            {
                                SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求,目前有0条";
                            }
                            SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求 成功。。";
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemWarningMsg._lbl_Alert_OutTaskRetryToMes = "出库任务,发送给MES上线请求 出现异常:" + ex.Message;
                    Log4NetHelper.WriteErrorLog(LogType.CCWCFService, "出库任务,发送给MES上线请求 出现异常:" + ex.Message, ex);
                }
                Thread.Sleep(5000);//休眠5秒
            }
        }
 
        private static MesRetModel<string> SingleToMes(Task_Main mainTask)
        {
            return MesService.updateOnlineStatus(mainTask);
        }
    }
}