服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-12-06 9719a7f0ccbb70e4e51a93cbe1733d1424c16f6d
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
using Rhea.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Tiger.IBusiness;
using Tiger.Model;
using Tiger.Model.Minsun;
using FluentScheduler;
using Sundial;
using Microsoft.IdentityModel.Tokens;
using Tiger.Model.Entitys.MES.Position;
 
namespace Tiger.Business.MES
{
    /// <summary>
    /// 从U9C获取工单信息
    /// </summary>
    public class U9C_MES_GetWo : TigerJobBase, ITigerJob
    {
        public string Id { get; set; }
        public string Tag { get; set; }
        public string Name { get; set; }
 
        public U9C_MES_GetWo()
        {
            Id = Guid.NewGuid().ToString("N");
            Tag = "U9C_MES_GetWo Interface Job";
            Name = "U9C_MES_GetWo Interface Job";
        }
 
        public async Task ExecuteAsync(Sundial.JobExecutingContext context, CancellationToken stoppingToken)
        {
            Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
            try
            {
                var _lastRunTime = Cache.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE;
                var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-10) : Convert.ToDateTime(_lastRunTime);
                if ((DateTime.Now - LastRunTime).TotalMinutes > 10)
                {
                    GetWoInput input = new GetWoInput
                    {
                        startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
                        endTime = LastRunTime.AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    var result = await DI.Resolve<IU9C_MES>().GetBasWo(input);
                    if (!result.IsSuccessed)
                    {
                        Logger.Scheduler.Error($"获取工单信息异常:{result.Message}");
                    }
                }
                //SaveLog(context, "从U9C获取工单信息成功");
            }
            catch (System.Exception ex)
            {
                Logger.Scheduler.Fatal(ex, "获取工单信息异常");
            }
            await Task.CompletedTask;
        }
    }
 
    /// <summary>
    /// 从U9C获取工单信息 FluentScheduler版
    /// </summary>
    public class fU9C_MES_GetWo : TigerJobBase, ITJob
    {
        public string Id { get; set; }
        public string Tag { get; set; }
        public string Name { get; set; }
        public fU9C_MES_GetWo()
        {
            Id = Guid.NewGuid().ToString("N");
            Tag = "U9C_MES_GetWo Interface Job";
            GetJob(typeof(fU9C_MES_GetWo).Name);
            Name = Job.JobName;
        }
 
        public void Execute()
        {
            #region 固定写法
            Logger.Scheduler.Info($"/**\r\n *进入计划调度(名称: {Name} )....\r\n */\r\n"); //固定写法
            Schedule = JobManager.GetSchedule(Name); //固定写法
            StartTime = DateTime.Now; //固定写法
            #endregion
            try
            {
                string msg = "";
                string status = "Successed";
                GetJob(typeof(fU9C_MES_GetWo).Name);
                TskJobInput tskJobInput = CheckIFCanGo();
                if (tskJobInput.result)
                {
                    var result = DI.Resolve<IU9C_MES>().GetU9CBasWo(tskJobInput.input);
                    if (!result.IsSuccessed)
                    {
                        msg = $"获取工单信息异常:{result.Message}";
                        Logger.Scheduler.Error(msg);
                        status = "Failed";
                    }
                    else
                    {
                        msg = $"从U9C获取工单信息成功:{result.Message}";
                        //固定写法
                        Trig.LastRunTime = tskJobInput.input.endTime.ToDateTime();
                        Trig.NextRunTime = Schedule.NextRun;
                    }
                }
                SaveFluentSchedulerLog(status, $"{msg}");
                Logger.Scheduler.Info($"计划调度(名称: {Name} )完成,返回信息: {msg} \r\n");
            }
            catch (System.Exception ex)
            {
                Logger.Scheduler.Fatal(ex, "获取工单信息异常");
                SaveFluentSchedulerLog("Failed", ex.Message);
            }
            Logger.Scheduler.Info($"/* 计划调度(名称:{Name})结束 */\r\n"); //固定写法
        }
    }//endClass
 
    public class fTest : TigerJobBase, ITJob
    {
        public string Id { get; set; }
        public string Tag { get; set; }
        public string Name { get; set; } = typeof(fTest).Name;
        public fTest()
        {
            Id = Guid.NewGuid().ToString("N");
            Tag = "U9C_MES_GetWo Interface Job";
        }
 
        public void Execute()
        {
            Logger.Scheduler.Info($"进入计划调度(名称:{Name})...\r\n");
            try
            {
                string msg = "";
                string status = "Successed";
                var _lastRunTime = Cache.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE;
                var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-10) : Convert.ToDateTime(_lastRunTime);
                StartTime = DateTime.Now;
                //if ((DateTime.Now - LastRunTime).TotalMinutes > 10)
                //{
                //    GetWoInput input = new GetWoInput
                //    {
                //        startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
                //        endTime = LastRunTime.AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss")
                //    };
                //    var result = await DI.Resolve<IU9C_MES>().GetBasWo(input);
                //    if (!result.IsSuccessed)
                //    {
                //        Logger.Scheduler.Error($"获取工单信息异常:{result.Message}");
                //    }
                //}
                SaveFluentSchedulerLog(status, "测试任务成功");
                Logger.Scheduler.Info($"计划调度(名称:{Name})完成\r\n");
            }
            catch (System.Exception ex)
            {
                Logger.Scheduler.Fatal(ex, "测试任务异常\r\n");
            }
        }
    }
}