From c5c41deac02df2ac552f7eb51e8b9b5f5dcc5472 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 28 十月 2024 12:51:38 +0800 Subject: [PATCH] 计划任务更新 --- Tiger.Business.MES/Task/TskJob.cs | 35 ++++++++++++++++++++++++++++++----- 1 files changed, 30 insertions(+), 5 deletions(-) diff --git a/Tiger.Business.MES/Task/TskJob.cs b/Tiger.Business.MES/Task/TskJob.cs index 5215a8e..a3b3afa 100644 --- a/Tiger.Business.MES/Task/TskJob.cs +++ b/Tiger.Business.MES/Task/TskJob.cs @@ -11,6 +11,7 @@ using FluentScheduler; using Newtonsoft.Json; using static Tiger.Model.TrigArgs; +using System.Reflection; namespace Tiger.Business.MES { @@ -29,12 +30,28 @@ var result = new ApiAction(); try { - var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobName).First()??new() { + 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, - Remark = input.Remark, }; + _job.Remark = input.Remark; + //璁″垝浠诲姟鍙傛暟 var Args = new TrigArgs() { @@ -48,24 +65,32 @@ Minutes = input.Minutes, Hours = input.Hours, Days = input.Days, + Interval = input.Interval, }; - TSK_TRIG tskTrig = new TSK_TRIG() + TSK_TRIG tskTrig = Biz.Db.Queryable<TSK_TRIG>().Where(x => x.JobId == _job.ID).First() ?? new() { JobId = _job.ID, - Args = JsonConvert.SerializeObject(Args), Status = TSK_TRIG.Statuss.Ready.GetValue(), 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(); + + var z = db.Storageable(tskTrig) + .WhereColumns(t => new { t.JobId, t.GHOST_ROW }) + .ToStorage(); + z.AsInsertable.ExecuteCommand(); + z.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); }); if (!dbTran.IsSuccess) { -- Gitblit v1.9.3