服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-12-17 35afcfe07fef52f74a2079fdb5977a87f88ddbb6
Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
@@ -1,14 +1,18 @@
using Rhea.Common;
using Sundial;
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
{
@@ -17,16 +21,23 @@
    /// </summary>
    public class U9C_MES_GetWo : TigerJobBase, ITigerJob
    {
        public string Id { get; set; } = Guid.NewGuid().ToString("N");
        public string Tag { get; set; } = "U9C_MES_GetWo Interface Job";
        public string Name { get; set; } = "U9C_MES_GetWo Interface Job";
        public string Id { get; set; }
        public string Tag { get; set; }
        public string Name { get; set; }
        public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
        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 = 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)
                {
@@ -50,4 +61,106 @@
            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 = 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<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");
            }
        }
    }
}