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 { /// /// 从U9C获取工单信息 /// 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().GetBasWo(input); if (!result.IsSuccessed) { Logger.Scheduler.Error($"获取工单信息异常:{result.Message}"); } } //SaveLog(context, "从U9C获取工单信息成功"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取工单信息异常"); } await Task.CompletedTask; } } /// /// 从U9C获取工单信息 FluentScheduler版 /// 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 = CheckHowToDo(); if (tskJobInput.result) { var result = DI.Resolve().GetU9CBasWo(tskJobInput.input); if (!result.IsSuccessed) { msg = $"获取工单信息异常:{result.Message}"; Logger.Scheduler.Error(msg); status = "Failed"; } else { msg = $"从U9C获取工单信息成功:{result.Message}"; //固定写法 Trig.LastRunTime = Args.ByInterval=="Y"? tskJobInput.input.endTime.ToDateTime().AddHours(Args.Interval) : 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().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"); } } } }