服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-10-28 02af3287e8dd054d39d8d8158041323437cbf9a7
Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
@@ -1,5 +1,5 @@
using Rhea.Common;
using Sundial;
using FluentScheduler;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -15,39 +15,54 @@
    /// <summary>
    /// 从U9C获取物料信息
    /// </summary>
    public class U9C_MES_GetItem : TigerJobBase, ITigerJob
    public class U9C_MES_GetItem : TigerJobBase, ITJob
    {
        public string Id { get; set; } = Guid.NewGuid().ToString("N");
        public string Tag { get; set; } = "U9C_MES_GetItem Interface Job";
        public string Name { get; set; } = "U9C_MES_GetItem Interface Job";
        public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
        public U9C_MES_GetItem()
        {
            Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
            Id = Guid.NewGuid().ToString("N");
            Tag = "U9C_MES_GetItem Interface Job";
            GetJob(typeof(U9C_MES_GetItem).Name);
            Name = Job.JobName;
        }
        public void Execute()
        {
            Logger.Scheduler.Info($"进入计划调度(名称:{Name})...\r\n");
            try
            {
                var _lastRunTime = Biz.SysParam["GetItem_LastRun", "Interface_LastRun"].PARAM_VALUE;
                var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddDays(-1) : Convert.ToDateTime(_lastRunTime);
                if ((DateTime.Now - LastRunTime).TotalDays > 1)
                Schedule = JobManager.GetSchedule(Name);
                StartTime = DateTime.Now;
                string msg = "";
                string status = "Successed";
                GetJob(typeof(U9C_MES_GetItem).Name);
                TskJobInput tskJobInput = CheckIFCanGo();
                if (tskJobInput.result)
                {
                    GetBasItemInput input = new GetBasItemInput
                    {
                        startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
                        endTime = LastRunTime.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    var result = await DI.Resolve<IU9C_MES>().GetBasItem(input);
                    var result = DI.Resolve<IU9C_MES>().GetBasItem(tskJobInput.input);
                    if (!result.IsSuccessed)
                    {
                        Logger.Scheduler.Error($"获取物料信息异常:{result.Message}");
                        msg = $"获取物料信息异常:{result.Message}";
                        Logger.Scheduler.Error(msg);
                        status = "Failed";
                    }
                    else
                    {
                        msg = $"从U9C获取物料信息成功:{result.Message}";
                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
                    }
                }
                //SaveLog(context, "从U9C获取物料信息成功");
                SaveFluentSchedulerLog(status, $"{msg}");
                Logger.Scheduler.Info($"计划调度(名称:{Name})完成,返回信息:{msg}\r\n");
            }
            catch (System.Exception ex)
            {
                Logger.Scheduler.Fatal(ex, "获取物料信息异常");
                SaveFluentSchedulerLog("Failed", ex.Message);
            }
            await Task.CompletedTask;
        }
    }
}