Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.MES/Task/TskJob.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business/Services/Base/InterfaceServiceNew.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
@@ -111,46 +111,47 @@ SaveFluentSchedulerLog(Name, "Failed", ex.Message); } } }//endClass public class fTest : TigerJobBase, ITJob 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() { public string Id { get; set; } public string Tag { get; set; } public string Name { get; set; } public fTest() { Id = Guid.NewGuid().ToString("N"); Tag = "U9C_MES_GetWo Interface Job"; Name = "测试接口"; } Id = Guid.NewGuid().ToString("N"); Tag = "U9C_MES_GetWo Interface Job"; } public void Execute() public void Execute() { Logger.Scheduler.Info($"进入计划调度(名称:{Name})...\r\n"); try { Logger.Scheduler.Info($"进入计划调度(名称:{Name})...\r\n"); try { var _lastRunTime = Biz.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) //{ // 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("从U9C获取工单信息成功"); Logger.Scheduler.Info($"计划调度(名称:{Name})完成\r\n"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取工单信息异常\r\n"); } 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); //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(Name, status, "测试任务成功"); Logger.Scheduler.Info($"计划调度(名称:{Name})完成\r\n"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "测试任务异常\r\n"); } } } 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,13 @@ var result = new ApiAction(); try { var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobName).First()??new() { JobName = input.JobName, var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobType).First()??new() { JobName = input.JobType, JobType = input.JobType, AssemblyName = input.AssemblyName, Remark = input.Remark, }; _job.Remark = input.Remark; //计划任务参数 var Args = new TrigArgs() { @@ -49,23 +51,29 @@ Hours = input.Hours, Days = input.Days, }; 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.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.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) { Tiger.Business/Services/Base/InterfaceServiceNew.cs
@@ -278,24 +278,26 @@ } private void SaveRunningStatus() { TSK_TRIG trig = new TSK_TRIG(); List<TSK_TRIG> listTrig = new List<TSK_TRIG>(); foreach (var schedule in JobManager.RunningSchedules) { var job = Biz.Db.Queryable<TSK_JOB>().Where(q => q.JobName == schedule.Name).First(); if (job != null) { TSK_TRIG trig = new TSK_TRIG(); trig = Biz.Db.Queryable<TSK_TRIG>().Where(q => q.JobId == job.ID).First(); trig.Status = TSK_TRIG.Statuss.Running.GetValue(); trig.StartTime = DateTime.Now; listTrig.Add(trig); } } var db = Biz.Db; //保存到数据库 var dbTran = db.UseTran(() => { if (trig != null) if (listTrig.Count>0) { db.Updateable(trig, "system").UpdateColumns(q => new { q.Status, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand(); db.Updateable(listTrig, "system").UpdateColumns(q => new { q.Status, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand(); } }); if (!dbTran.IsSuccess) @@ -387,12 +389,15 @@ var jobs = Biz.Db.Queryable<TSK_JOB>().IncludesAllFirstLayer().ToList(); foreach (var job in jobs) { Type type = Type.GetType($"{job.AssemblyName}.{job.JobType},{job.AssemblyName}", throwOnError: true); dynamic _type = Activator.CreateInstance(type); TrigArgs args = JsonConvert.DeserializeObject<TrigArgs>(job.Triggers[0].Args); Schedule schedule = Schedule(_type, job.JobName, registry); //生成计划 GenerateSchedule(args, schedule); 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); TrigArgs args = JsonConvert.DeserializeObject<TrigArgs>(job.Triggers[0].Args); Schedule schedule = Schedule(_type, job.JobName, registry); //生成计划 GenerateSchedule(args, schedule); } } } catch (System.Exception ex) Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs
@@ -147,5 +147,26 @@ } return Ok(response); } /// <summary> /// 保存作业 /// </summary> /// <param name="action"></param> /// <returns></returns> [HttpPost] [Route("api/[controller]/[action]")] public async Task<IActionResult> SaveTskJob(ApiAction<TskParameter> action) { ApiAction response = new(); try { response = response.GetResponse(DI.Resolve<ITskJob>().SaveTskJob(action.Data)); } catch (System.Exception ex) { response = response.GetResponse().CatchExceptionWithLog(ex); } return Ok(response); } } }