using Rhea.Common; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Tiger.IBusiness; using Tiger.Model; using Tiger.Model.Minsun; using FluentScheduler; using Newtonsoft.Json; using static Tiger.Model.TrigArgs; namespace Tiger.Business.MES { /// /// 任务相关 /// public partial class TskJob : ITskJob { /// /// 保存计划任务 /// /// /// public async Task SaveTskJob(TskParameter input) { var result = new ApiAction(); try { var _job = Biz.Db.Queryable().Where(x => x.JobName == input.JobName).First()??new() { JobName = input.JobName, JobType = input.JobType, AssemblyName = input.AssemblyName, Remark = input.Remark, }; //计划任务参数 var Args = new TrigArgs() { ToRunOnceAtDt = input.ToRunOnceAtDt, NowAddMinutes = input.NowAddMinutes, ToRunEvery = input.ToRunEvery, ToRunOnceIn = input.ToRunOnceIn, NonReentrant = input.NonReentrant, Type = input.type, runType = input.runType, Minutes = input.Minutes, Hours = input.Hours, Days = input.Days, }; TSK_TRIG tskTrig = new TSK_TRIG() { JobId = _job.ID, Args = JsonConvert.SerializeObject(Args), Status = TSK_TRIG.Statuss.Ready.GetValue(), StartTime = DateTime.Now, NumberOfRuns = 1, }; var db = Biz.Db; var dbTran = db.UseTran(() => { var y = db.Storageable(_job) .WhereColumns(t => new { t.JobName, t.GHOST_ROW }) .ToStorage(); y.AsInsertable.ExecuteCommand(); y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); }); if (!dbTran.IsSuccess) { result.IsSuccessed = false; result.Message = $"保存计划任务异常"; } } catch (Exception ex) { result.CatchExceptionWithLog(ex, "保存计划任务异常"); } return await Task.FromResult(result); } } //endClass }