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 = Biz.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 = CheckIFCanGo();
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 = 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 = Biz.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");
}
}
}
}