From 20a0c7b19c248617fb1852a63834bb668831f86e Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期一, 28 十月 2024 03:01:16 +0800
Subject: [PATCH] 计划任务更新

---
 Tiger.Business.MES/Task/TskJob.cs                            |   22 ++
 Tiger.Business.MES/iERP/U9C_MES.cs                           |   23 +-
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs                 |   50 +++---
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs             |   52 ++++--
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs           |   52 ++++--
 Tiger.IBusiness.MES/iERP/IU9C_MES.cs                         |   10 
 Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs  |    7 
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs           |   52 ++++--
 Tiger.Business/Services/Base/TigerJobBase.cs                 |  133 ++++++++++++++--
 Tiger.Business/Services/Base/InterfaceServiceNew.cs          |   25 ++-
 Tiger.Api/Controllers/Test/TestController.B.cs               |    2 
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs               |   47 +++--
 Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs |    1 
 13 files changed, 332 insertions(+), 144 deletions(-)

diff --git a/Tiger.Api/Controllers/Test/TestController.B.cs b/Tiger.Api/Controllers/Test/TestController.B.cs
index 056f4e9..df3fc2a 100644
--- a/Tiger.Api/Controllers/Test/TestController.B.cs
+++ b/Tiger.Api/Controllers/Test/TestController.B.cs
@@ -116,7 +116,7 @@
             ApiAction response = new();
             try
             {
-                response = response.GetResponse(await DI.Resolve<IU9C_MES>().GetBasItem(action.Data));
+                response = response.GetResponse(DI.Resolve<IU9C_MES>().GetBasItem(action.Data));
             }
             catch (System.Exception ex)
             {
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
index b192ab2..0458c8f 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
@@ -1,5 +1,5 @@
 锘縰sing Rhea.Common;
-using Sundial;
+using FluentScheduler;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -15,39 +15,53 @@
     /// <summary>
     /// 浠嶶9C鑾峰彇瀹㈡埛鏉$爜淇℃伅
     /// </summary>
-    public class U9C_ME_GetCustSn : TigerJobBase, ITigerJob
+    public class U9C_ME_GetCustSn : TigerJobBase, ITJob
     {
         public string Id { get; set; } = Guid.NewGuid().ToString("N");
-        public string Tag { get; set; } = "U9C_ME_GetCustSn Interface Job";
-        public string Name { get; set; } = "U9C_ME_GetCustSn Interface Job";
-
-        public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
+        public string Tag { get; set; }
+        public string Name { get; set; }
+        public U9C_ME_GetCustSn()
         {
-            Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
+            Id = Guid.NewGuid().ToString("N");
+            Tag = "U9C_ME_GetCustSn Interface Job";
+            GetJob(typeof(U9C_ME_GetCustSn).Name);
+            Name = Job.JobName;
+        }
+
+        public void Execute()
+        {
+            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
             try
             {
-                var _lastRunTime = Biz.SysParam["GetCustBar_LastTime", "Interface_LastRun"].PARAM_VALUE;
-                var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-30) : Convert.ToDateTime(_lastRunTime);
-                if ((DateTime.Now - LastRunTime).TotalMinutes > 30)
+                Schedule = JobManager.GetSchedule(Name);
+                StartTime = DateTime.Now;
+                string msg = "";
+                string status = "Successed";
+                GetJob(typeof(U9C_ME_GetCustSn).Name);
+                TskJobInput tskJobInput = CheckIFCanGo();
+                if (tskJobInput.result)
                 {
-                    GetCustBarcodeInput input = new GetCustBarcodeInput
-                    {
-                        startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
-                        endTime = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss")
-                    };
-                    var result = await DI.Resolve<IU9C_MES>().GetCustBarCode(input);
+                    var result = DI.Resolve<IU9C_MES>().GetCustBarCode(tskJobInput.input);
                     if (!result.IsSuccessed)
                     {
-                        Logger.Scheduler.Error($"鑾峰彇瀹㈡埛鏉$爜淇℃伅寮傚父:{result.Message}");
+                        msg = $"鑾峰彇瀹㈡埛鏉$爜淇℃伅寮傚父:{result.Message}";
+                        Logger.Scheduler.Error(msg);
+                        status = "Failed";
+                    }
+                    else
+                    {
+                        msg = $"浠嶶9C鑾峰彇瀹㈡埛鏉$爜淇℃伅鎴愬姛:{result.Message}";
+                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
                     }
                 }
-                //SaveLog(context, "浠嶶9C鑾峰彇瀹㈡埛鏉$爜淇℃伅鎴愬姛");
+                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;
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
index e5776c3..5aeef52 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
@@ -1,5 +1,5 @@
 锘縰sing Rhea.Common;
-using Sundial;
+using FluentScheduler;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -15,39 +15,53 @@
     /// <summary>
     /// 浠嶶9C鑾峰彇瀹㈡埛淇℃伅
     /// </summary>
-    public class U9C_MES_GetCustomer : TigerJobBase, ITigerJob
+    public class U9C_MES_GetCustomer : TigerJobBase, ITJob
     {
         public string Id { get; set; } = Guid.NewGuid().ToString("N");
-        public string Tag { get; set; } = "U9C_MES_GetCustomer Interface Job";
-        public string Name { get; set; } = "U9C_MES_GetCustomer Interface Job";
-
-        public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
+        public string Tag { get; set; }
+        public string Name { get; set; }
+        public U9C_MES_GetCustomer()
         {
-            Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
+            Id = Guid.NewGuid().ToString("N");
+            Tag = "U9C_MES_GetCustomer Interface Job";
+            GetJob(typeof(U9C_MES_GetCustomer).Name);
+            Name = Job.JobName;
+        }
+
+        public void Execute()
+        {
+            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
             try
             {
-                var _lastRunTime = Biz.SysParam["GetCust_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_GetCustomer).Name);
+                TskJobInput tskJobInput = CheckIFCanGo();
+                if (tskJobInput.result)
                 {
-                    GetCustomerInput input = new GetCustomerInput
-                    {
-                        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>().GetCustomer(input);
+                    var result = DI.Resolve<IU9C_MES>().GetCustomer(tskJobInput.input);
                     if (!result.IsSuccessed)
                     {
-                        Logger.Scheduler.Error($"鑾峰彇瀹㈡埛淇℃伅寮傚父:{result.Message}");
+                        msg = $"鑾峰彇瀹㈡埛淇℃伅寮傚父:{result.Message}";
+                        Logger.Scheduler.Error(msg);
+                        status = "Failed";
+                    }
+                    else
+                    {
+                        msg = $"浠嶶9C鑾峰彇瀹㈡埛淇℃伅鎴愬姛:{result.Message}";
+                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
                     }
                 }
-                //SaveLog(context, "浠嶶9C鑾峰彇瀹㈡埛淇℃伅鎴愬姛");
+                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;
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
index c67e11f..d6e6081 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
@@ -1,5 +1,5 @@
 锘縰sing Rhea.Common;
-using Sundial;
+using FluentScheduler;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -15,39 +15,54 @@
     /// <summary>
     /// 浠嶶9C鑾峰彇鐗╂枡淇℃伅
     /// </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 = $"浠嶶9C鑾峰彇鐗╂枡淇℃伅鎴愬姛:{result.Message}";
+                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
                     }
                 }
-                //SaveLog(context, "浠嶶9C鑾峰彇鐗╂枡淇℃伅鎴愬姛");
+                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;
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
index eaaf92f..5619878 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
@@ -1,11 +1,12 @@
 锘縰sing Rhea.Common;
-using Sundial;
+using FluentScheduler;
 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;
@@ -15,39 +16,54 @@
     /// <summary>
     /// 浠嶶9C鑾峰彇渚涘簲鍟嗕俊鎭�
     /// </summary>
-    public class U9C_ME_GetSupplier : TigerJobBase, ITigerJob
+    public class U9C_ME_GetSupplier : TigerJobBase, ITJob
     {
         public string Id { get; set; } = Guid.NewGuid().ToString("N");
-        public string Tag { get; set; } = "U9C_ME_GetSupplier Interface Job";
-        public string Name { get; set; } = "U9C_ME_GetSupplier Interface Job";
+        public string Tag { get; set; }
+        public string Name { get; set; }
 
-        public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
+        public U9C_ME_GetSupplier()
         {
-            Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
+            Id = Guid.NewGuid().ToString("N");
+            Tag = "U9C_ME_GetSupplier Interface Job";
+            GetJob(typeof(U9C_ME_GetSupplier).Name);
+            Name = Job.JobName;
+        }
+
+        public void Execute()
+        {
+            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
             try
             {
-                var _lastRunTime = Biz.SysParam["Vender_LastTime", "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_ME_GetSupplier).Name);
+                TskJobInput tskJobInput = CheckIFCanGo();
+                if (tskJobInput.result)
                 {
-                    GetSupplierInput input = new GetSupplierInput
-                    {
-                        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>().GetSupplier(input);
+                    var result = DI.Resolve<IU9C_MES>().GetSupplier(tskJobInput.input);
                     if (!result.IsSuccessed)
                     {
-                        Logger.Scheduler.Error($"鑾峰彇渚涘簲鍟嗕俊鎭紓甯�:{result.Message}");
+                        msg = $"鑾峰彇渚涘簲鍟嗕俊鎭紓甯�:{result.Message}";
+                        Logger.Scheduler.Error(msg);
+                        status = "Failed";
+                    }
+                    else
+                    {
+                        msg = $"浠嶶9C鑾峰彇渚涘簲鍟嗕俊鎭垚鍔�:{result.Message}";
+                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
                     }
                 }
-                //SaveLog(context, "浠嶶9C鑾峰彇渚涘簲鍟嗕俊鎭垚鍔�");
+                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;
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
index 0e538c0..0188002 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
@@ -5,11 +5,14 @@
 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 static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser;
+using Sundial;
+using Microsoft.IdentityModel.Tokens;
+using Tiger.Model.Entitys.MES.Position;
 
 namespace Tiger.Business.MES
 {
@@ -66,11 +69,13 @@
     {
         public string Id { get; set; }
         public string Tag { get; set; }
-        public string Name { get; set; } = typeof(fU9C_MES_GetWo).Name;
+        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()
@@ -78,37 +83,34 @@
             Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
             try
             {
+                Schedule = JobManager.GetSchedule(Name);
+                StartTime = DateTime.Now;
                 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)
+                GetJob(typeof(fU9C_MES_GetWo).Name);
+                TskJobInput tskJobInput = CheckIFCanGo();
+                if (tskJobInput.result)
                 {
-                    GetWoInput input = new GetWoInput
+                    var result = DI.Resolve<IU9C_MES>().GetU9CBasWo(tskJobInput.input);
+                    if (!result.IsSuccessed)
                     {
-                        startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
-                        endTime = LastRunTime.AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss")
-                    };
-                    //var result = DI.Resolve<IU9C_MES>().GetU9CBasWo(input);
-                    //if (!result.IsSuccessed)
-                    //{
-                    //    msg = $"鑾峰彇宸ュ崟淇℃伅寮傚父:{result.Message}";
-                    //    Logger.Scheduler.Error(msg);
-                    //    status = "Failed";
-                    //}
-                    //else
-                    //{
-                    //    msg = $"浠嶶9C鑾峰彇宸ュ崟淇℃伅鎴愬姛:{result.Message}";
-                    //}
+                        msg = $"鑾峰彇宸ュ崟淇℃伅寮傚父:{result.Message}";
+                        Logger.Scheduler.Error(msg);
+                        status = "Failed";
+                    }
+                    else
+                    {
+                        msg = $"浠嶶9C鑾峰彇宸ュ崟淇℃伅鎴愬姛:{result.Message}";
+                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
+                    }
                 }
-                SaveFluentSchedulerLog(Name, status, $"{msg}");
+                SaveFluentSchedulerLog(status, $"{msg}");
                 Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚锛岃繑鍥炰俊鎭�:{msg}\r\n");
             }
             catch (System.Exception ex)
             {
                 Logger.Scheduler.Fatal(ex, "鑾峰彇宸ュ崟淇℃伅寮傚父");
-                SaveFluentSchedulerLog(Name, "Failed", ex.Message);
+                SaveFluentSchedulerLog("Failed", ex.Message);
             }
         }
     }//endClass
@@ -147,7 +149,7 @@
                 //        Logger.Scheduler.Error($"鑾峰彇宸ュ崟淇℃伅寮傚父:{result.Message}");
                 //    }
                 //}
-                SaveFluentSchedulerLog(Name, status, "娴嬭瘯浠诲姟鎴愬姛");
+                SaveFluentSchedulerLog(status, "娴嬭瘯浠诲姟鎴愬姛");
                 Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚\r\n");
             }
             catch (System.Exception ex)
diff --git a/Tiger.Business.MES/Task/TskJob.cs b/Tiger.Business.MES/Task/TskJob.cs
index 6c5d1f9..be82be3 100644
--- a/Tiger.Business.MES/Task/TskJob.cs
+++ b/Tiger.Business.MES/Task/TskJob.cs
@@ -30,8 +30,23 @@
             var result = new ApiAction();
             try
             {
-                var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobType).First()??new() { 
-                    JobName = input.JobType,
+                if (input.type == EveryType.Milliseconds && input.ToRunEvery<100)
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鏃堕棿鏄绉掓椂锛岃嚦灏戣澶т簬100姣");
+                    return result;
+                }
+                if (Biz.Db.Queryable<TSK_JOB>().Any(x =>
+                    (x.JobName != input.JobName && x.JobType == input.JobType) ||
+                    (x.JobName == input.JobName && x.JobType != input.JobType)))
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鐩稿悓鐨勭被鍚嶄笉鑳芥湁涓嶅悓鐨勪换鍔″悕鎴栬�呯浉鍚岀殑浠诲姟鍚嶄笉鑳芥湁涓嶅悓鐨勭被鍚�");
+                    return result;
+                }
+                var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobName && x.JobType == input.JobType).First() ?? new()
+                {
+                    JobName = input.JobName,
                     JobType = input.JobType,
                     AssemblyName = input.AssemblyName,
                 };
@@ -58,13 +73,14 @@
                     StartTime = DateTime.Now,
                     NumberOfRuns = 1,
                 };
+                tskTrig.LastRunTime = input.LastRunTime;
                 tskTrig.Args = JsonConvert.SerializeObject(Args);
 
                 var db = Biz.Db;
                 var dbTran = db.UseTran(() =>
                 {
                     var y = db.Storageable(_job)
-                       .WhereColumns(t => new { t.JobName,t.GHOST_ROW })
+                       .WhereColumns(t => new { t.JobName, t.JobType, t.GHOST_ROW })
                        .ToStorage();
                     y.AsInsertable.ExecuteCommand();
                     y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
diff --git a/Tiger.Business.MES/iERP/U9C_MES.cs b/Tiger.Business.MES/iERP/U9C_MES.cs
index 1d5e8f1..c337fc4 100644
--- a/Tiger.Business.MES/iERP/U9C_MES.cs
+++ b/Tiger.Business.MES/iERP/U9C_MES.cs
@@ -26,7 +26,7 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<ApiAction> GetBasItem(GetBasItemInput input)
+        public ApiAction GetBasItem(U9C_MES_Input input)
         {
             var action = new ApiAction();
             Logger.Scheduler.Info($"鐗╂枡淇℃伅寮�濮嬪悓姝ャ�傘�傘�傛暟鎹鏌ヨ繘琛屼腑銆傘�傘��");
@@ -83,12 +83,8 @@
                 }
             }
             Logger.Scheduler.Info($"鐗╂枡淇℃伅瀛樺叆瀹炰綋涓紝鎬绘暟锛歔{items.Count}]");
-            db = Biz.Db;
-            var LastRun = await db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "GetItem_LastRun").SingleAsync();
-            LastRun.PARAM_VALUE = (input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? LastRun.PARAM_VALUE : input.endTime;
             var dbTran = db.UseTran(() =>
             {
-                db.Storageable(LastRun, "U9C_MES_GetItem").ExecuteCommand();
                 if (items.Any())
                 {
                     if (items.Count > 150)
@@ -309,14 +305,14 @@
         /// <param name="input"></param>
         /// <returns></returns>
         /// <exception cref="NotImplementedException"></exception>
-        public async Task<ApiAction> GetCustomer(GetCustomerInput input)
+        public ApiAction GetCustomer(U9C_MES_Input input)
         {
             var action = new ApiAction();
             Logger.Scheduler.Info($"瀹㈡埛淇℃伅寮�濮嬪悓姝ャ�傘�傘�傛暟鎹鏌ヨ繘琛屼腑銆傘�傘��");
             Logger.Scheduler.Info($"{input.triggerDetail}");
             DbClient db = Biz.DataSource["YadaU9C"].Client;
             var list = db.Queryable<dynamic>().AS("mes_Customer").Where("ModifiedOn > @startTime And ModifiedOn < @endTime", new { startTime = input.startTime, endTime = input.endTime }).ToList();
-            var orgs = await Biz.Db.Queryable<SYS_ORGANIZATION>().ToListAsync();
+            var orgs = Biz.Db.Queryable<SYS_ORGANIZATION>().ToList();
             List<BAS_CUSTOMER> items = new();
             if (list != null && list.Count > 0)
             {
@@ -388,14 +384,14 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<ApiAction> GetSupplier(GetSupplierInput input)
+        public ApiAction GetSupplier(U9C_MES_Input input)
         {
             var action = new ApiAction();
             Logger.Scheduler.Info($"渚涘簲鍟嗕俊鎭紑濮嬪悓姝ャ�傘�傘�傛暟鎹鏌ヨ繘琛屼腑銆傘�傘��");
             Logger.Scheduler.Info($"{input.triggerDetail}");
             DbClient db = Biz.DataSource["YadaU9C"].Client;
             var list = db.Queryable<dynamic>().AS("mes_Supplier").Where("ModifiedOn > @startTime And ModifiedOn < @endTime", new { startTime = input.startTime, endTime = input.endTime }).ToList();
-            var orgs = await Biz.Db.Queryable<SYS_ORGANIZATION>().ToListAsync();
+            var orgs = Biz.Db.Queryable<SYS_ORGANIZATION>().ToList();
             List<BAS_SUPPLIER> items = new();
             if (list != null && list.Count > 0)
             {
@@ -464,7 +460,7 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<ApiAction> GetCustBarCode(GetCustBarcodeInput input)
+        public ApiAction GetCustBarCode(U9C_MES_Input input)
         {
             var action = new ApiAction();
             Logger.Scheduler.Info($"瀹㈡埛鏉$爜淇℃伅寮�濮嬪悓姝ャ�傘�傘�傛暟鎹鏌ヨ繘琛屼腑銆傘�傘��");
@@ -483,7 +479,7 @@
                     {
                         if (di["MoDoc"] != null)
                         {
-                            var _MES_WO = await Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == di["MoDoc"].ToString()).FirstAsync();
+                            var _MES_WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == di["MoDoc"].ToString()).First();
                             MES_CUST_SN snItem = new()
                             {
                                 CUST_CODE = _MES_WO?.CUST_CODE ?? "",
@@ -540,7 +536,7 @@
             return action;
         }
 
-        public ApiAction GetU9CBasWo(GetWoInput input)
+        public ApiAction GetU9CBasWo(U9C_MES_Input input)
         {
             var action = new ApiAction();
             Logger.Scheduler.Info($"宸ュ崟淇℃伅寮�濮嬪悓姝ャ�傘�傘�傛暟鎹鏌ヨ繘琛屼腑銆傘�傘��");
@@ -594,11 +590,8 @@
             }
             Logger.Scheduler.Info($"宸ュ崟淇℃伅瀛樺叆瀹炰綋涓紝鎬绘暟锛歔{items.Count}]");
             db = Biz.Db;
-            var LastRun = db.Queryable<SYS_PARAM>().Where(q => q.PRMG_CODE == "Interface_LastRun" && q.PARAM_CODE == "GetWo_LastRun").Single();
-            LastRun.PARAM_VALUE = (input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? LastRun.PARAM_VALUE : input.endTime;
             var dbTran = db.UseTran(() =>
             {
-                db.Storageable(LastRun, "U9C_MES_GetWo").ExecuteCommand();
                 if (items.Any())
                 {
                     if (items.Count > 150)
diff --git a/Tiger.Business/Services/Base/InterfaceServiceNew.cs b/Tiger.Business/Services/Base/InterfaceServiceNew.cs
index 93e4aea..5b362a3 100644
--- a/Tiger.Business/Services/Base/InterfaceServiceNew.cs
+++ b/Tiger.Business/Services/Base/InterfaceServiceNew.cs
@@ -6,6 +6,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Security.Cryptography;
 using System.Text;
 using System.Threading;
@@ -324,14 +325,22 @@
                 {
                     JobManager.AddJob<TJob>((s) => GenerateSchedule(jobParam.Args, s.WithName(jobParam.JobName)));
                     string guid = Guid.NewGuid().ToString("N");
-                    TSK_JOB job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == jobParam.JobName).First() ?? new()
+                    if (Biz.Db.Queryable<TSK_JOB>().Any(x => 
+                    (x.JobName != jobParam.JobName && x.JobType == jobParam.DataType) || 
+                    (x.JobName == jobParam.JobName && x.JobType != jobParam.DataType)))
+                    {
+                        apiAction.IsSuccessed = false;
+                        apiAction.LocaleMsg = new($"鐩稿悓鐨勭被鍚嶄笉鑳芥湁涓嶅悓鐨勪换鍔″悕鎴栬�呯浉鍚岀殑浠诲姟鍚嶄笉鑳芥湁涓嶅悓鐨勭被鍚�");
+                        return apiAction;
+                    }
+                    TSK_JOB job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == jobParam.JobName && x.JobType == jobParam.DataType).First() ?? new()
                     {
                         ID = guid,
-                        Remark = jobParam.Remark,
-                        JobType = jobParam.JobName,
-                        AssemblyName = jobParam.AssemblyName,
-                        JobName = jobParam.JobName,
                     };
+                    job.Remark = jobParam.Remark;
+                    job.JobType = jobParam.DataType;
+                    job.AssemblyName = jobParam.AssemblyName;
+                    job.JobName = jobParam.JobName;
                     var trigger = Biz.Db.Queryable<TSK_TRIG>().Where(x => x.JobId == job.ID).First() ?? new TSK_TRIG()
                     {
                         JobId = guid,
@@ -345,7 +354,7 @@
                     var dbTran = db.UseTran(() =>
                     {
                         var y = db.Storageable(job)
-                           .WhereColumns(t => new { t.JobName, t.GHOST_ROW })
+                           .WhereColumns(t => new { t.JobName,t.JobType, t.GHOST_ROW })
                            .ToStorage();
                         y.AsInsertable.ExecuteCommand();
                         y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
@@ -409,7 +418,7 @@
                 var jobs = Biz.Db.Queryable<TSK_JOB>().IncludesAllFirstLayer().ToList();
                 foreach (var job in jobs)
                 {
-                    if (job.JobName == "fU9C_MES_GetWo" || job.JobName == "fTest")
+                    //if (job.JobName == "fU9C_MES_GetWo" || job.JobName == "fTest")
                     {
                         Type type = Type.GetType($"{job.AssemblyName}.{job.JobType},{job.AssemblyName}", throwOnError: true);
                         dynamic _type = Activator.CreateInstance(type);
@@ -437,7 +446,7 @@
         /// <returns></returns>
         private Schedule Schedule<TJob>(TJob entity, string JobName, Registry registry) where TJob : class, ITJob
         {
-            return registry.Schedule<TJob>().WithName(typeof(TJob).Name);
+            return registry.Schedule<TJob>().WithName(JobName);
         }
 
         /// <summary>
diff --git a/Tiger.Business/Services/Base/TigerJobBase.cs b/Tiger.Business/Services/Base/TigerJobBase.cs
index 226c523..da8665f 100644
--- a/Tiger.Business/Services/Base/TigerJobBase.cs
+++ b/Tiger.Business/Services/Base/TigerJobBase.cs
@@ -1,8 +1,11 @@
-锘縰sing Rhea.Common;
+锘縰sing FluentScheduler;
+using Newtonsoft.Json;
+using Rhea.Common;
 using Sundial;
 using System;
 using Tiger.IBusiness;
 using Tiger.Model;
+using Tiger.Model.Entitys.MES.Position;
 
 namespace Tiger.Business
 {
@@ -11,6 +14,10 @@
     /// </summary>
     public class TigerJobBase
     {
+        public static Schedule Schedule;
+        public static TSK_JOB Job = new TSK_JOB();
+        public static TSK_TRIG Trig = new TSK_TRIG();
+        public static TrigArgs Args = new TrigArgs();
         /// <summary>
         /// 寮�濮嬫椂闂�
         /// </summary>
@@ -54,16 +61,14 @@
         /// <param name="JobName"></param>
         /// <param name="remark"></param>
         /// <returns></returns>
-        public static ApiAction SaveFluentSchedulerLog(string JobName,string status, string remark)
+        public static ApiAction SaveFluentSchedulerLog(string status, string remark)
         {
             ApiAction action = new ApiAction();
-            var job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == JobName).IncludesAllFirstLayer().First();
-            var trig = job.Triggers?[0];
-            if (trig != null)
+            if (Trig != null)
             {
-                trig.ElapsedTime = (long)Math.Ceiling((DateTime.Now-StartTime).TotalMilliseconds);
-                trig.StartTime = StartTime;
-                trig.EndTime = DateTime.Now;
+               Trig.ElapsedTime = (long)Math.Ceiling((DateTime.Now-StartTime).TotalMilliseconds);
+               Trig.StartTime = StartTime;
+                Trig.EndTime = DateTime.Now;
             }
             else {
                 action.IsSuccessed = false;
@@ -73,14 +78,14 @@
             }
             var logentity = new TSK_LOG
             {
-                JobId = job.ID,
-                AssemblyName = job.AssemblyName,
-                Args = trig.Args,
+                JobId = Job.ID,
+                AssemblyName = Job.AssemblyName,
+                Args = Trig.Args,
                 //Operation = job.Triggers?[0].Status.ToString(),
                 Status = status, //job.Triggers?[0].Status.ToString(),
-                StartTime = trig.StartTime,
-                EndTime = trig.EndTime,
-                ElapsedTime = trig.ElapsedTime,
+                StartTime = Trig.StartTime,
+                EndTime = Trig.EndTime,
+                ElapsedTime = Trig.ElapsedTime,
                 Remark = remark
             };
 
@@ -88,16 +93,112 @@
             //淇濆瓨鍒版暟鎹簱
             var dbTran = db.UseTran(() =>
             {
-                db.Updateable(trig, "System_Job").UpdateColumns(q => new { q.StartTime, q.ElapsedTime,q.UpdatedTime,q.UPDATE_USER}).ExecuteCommand();
+                db.Updateable(Trig, "System_Job").UpdateColumns(q => new { q.StartTime,q.LastRunTime, q.ElapsedTime,q.UpdatedTime,q.UPDATE_USER}).ExecuteCommand();
                 db.Insertable(logentity).ExecuteCommand();
             });
             if (!dbTran.IsSuccess)
             {
                 action.GetResponse().CatchExceptionWithLog(dbTran.ErrorException, $"浣滀笟鏃ュ織淇濆瓨鍒版暟鎹簱寮傚父");
             }
-            Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{JobName})浣滀笟鏃ュ織淇濆瓨鍒版暟鎹簱瀹屾垚\r\n");
+            Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Job.JobName})浣滀笟鏃ュ織淇濆瓨鍒版暟鎹簱瀹屾垚\r\n");
             return action;
         }
 
+        /// <summary>
+        /// 鑾峰彇浠诲姟
+        /// </summary>
+        public static void GetJob(string jobType)
+        {
+            Job = Biz.Db.Queryable<TSK_JOB>().Where(q => q.JobType == jobType).IncludesAllFirstLayer().First();
+            Args = JsonConvert.DeserializeObject<TrigArgs>(Job.Triggers[0].Args);
+            Trig = Job.Triggers[0];
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇鏃堕棿锛岃繑鍥炴槸鍚﹀彲浠ョ户缁伐浣滀换鍔�
+        /// </summary>
+        /// <returns></returns>
+        public static TskJobInput CheckIFCanGo()
+        {
+            TskJobInput tskJobInput = new TskJobInput();
+            var dateTime = DateTime.Now;
+            //鎸夋椂闂寸被鍨嬫潵杩愯
+            switch (Args.Type)
+            {
+                case TrigArgs.EveryType.Milliseconds:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddMilliseconds(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalMilliseconds > Args.ToRunEvery;
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddMilliseconds(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Seconds:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddSeconds(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalSeconds > Args.ToRunEvery;
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddSeconds(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Minutes:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddMinutes(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalMinutes > Args.ToRunEvery;
+                    tskJobInput.input  = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddMinutes(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Hours:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddHours(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalHours > Args.ToRunEvery;
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddHours(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Days:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery;
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Weeks:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-7);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery * 7;
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Weekdays:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery;
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+                case TrigArgs.EveryType.Months:
+                    dateTime = Trig.LastRunTime ?? DateTime.Now.AddMonths(-Args.ToRunEvery);
+                    tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery * DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
+                    tskJobInput.input = new()
+                    {
+                        startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                        endTime = dateTime.AddMonths(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"),
+                    };
+                    break;
+            }
+            return tskJobInput;
+        }
     }
 }
diff --git a/Tiger.IBusiness.MES/iERP/IU9C_MES.cs b/Tiger.IBusiness.MES/iERP/IU9C_MES.cs
index 1ef6b60..7591b50 100644
--- a/Tiger.IBusiness.MES/iERP/IU9C_MES.cs
+++ b/Tiger.IBusiness.MES/iERP/IU9C_MES.cs
@@ -11,11 +11,11 @@
 {
     public interface IU9C_MES
     {
-        public Task<ApiAction> GetBasItem(GetBasItemInput input);
-        public Task<ApiAction> GetCustomer(GetCustomerInput input);
-        public Task<ApiAction> GetSupplier(GetSupplierInput input);
+        public ApiAction GetBasItem(U9C_MES_Input input);
+        public ApiAction GetCustomer(U9C_MES_Input input);
+        public ApiAction GetSupplier(U9C_MES_Input input);
         public Task<ApiAction> GetBasWo(GetWoInput input);
-        public Task<ApiAction> GetCustBarCode(GetCustBarcodeInput input);
-        public ApiAction GetU9CBasWo(GetWoInput input);
+        public ApiAction GetCustBarCode(U9C_MES_Input input);
+        public ApiAction GetU9CBasWo(U9C_MES_Input input);
     }
 }
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs
index 2d5550f..a84304d 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs
@@ -15,6 +15,7 @@
         public string Remark { get; set; }
         public string NonReentrant { get; set; }
         public DateTime ToRunOnceAtDt { get; set; }
+        public DateTime LastRunTime { get; set; }
         public TrigArgs.RunType runType { get; set; }
         public TrigArgs.EveryType type { get; set; }
         public int NowAddMinutes { get; set; } //涓婇潰鏃堕棿鍔犲灏戝垎閽燂紝琛ㄧず寤惰繜澶氬皯鍒嗛挓杩愯
@@ -24,4 +25,10 @@
         public int Hours { get; set; }
         public int Days { get; set; }
     }
+
+    public class TskJobInput
+    {
+        public bool result { get; set; }
+        public U9C_MES_Input input { get; set; }
+    }
 }
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs
index 9472194..7f7ebf4 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9C_MES_Input.cs
@@ -11,6 +11,7 @@
         public string startTime { get; set; }
         public string endTime { get; set; }
         public string triggerDetail { get; set; }
+        public DateTime LastRunTime { get; set; }
     }
 
     public class GetBasItemInput : U9C_MES_Input

--
Gitblit v1.9.3