diff --git a/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs index 716eaf3e..bf6f4892 100644 --- a/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs +++ b/Yi.Furion.Net6/Yi.Furion.Application/Rbac/Services/Impl/TaskService.cs @@ -30,6 +30,10 @@ namespace Yi.Furion.Application.Rbac.Services.Impl var result = _schedulerFactory.TryGetJob(jobId, out var scheduler); var data = scheduler.GetModel(); var output = data.JobDetail.Adapt(); + output.TriggerArgs = data.Triggers[0].Args; + output.NextRunTime = data.Triggers[0].NextRunTime; + output.LastRunTime = data.Triggers[0].LastRunTime; + output.NumberOfRuns = data.Triggers[0].NumberOfRuns; return output; } @@ -43,10 +47,14 @@ namespace Yi.Furion.Application.Rbac.Services.Impl var data = _schedulerFactory.GetJobsOfModels().Skip((input.PageNum - 1) * input.PageSize).Take(input.PageSize).OrderByDescending(x => x.JobDetail.UpdatedTime) .ToList(); - var output = data.Select(x => x.JobDetail).Adapt>(); - - - + var output = data.Select(x => { + + var res= new TaskGetListOutput(); + res= x.JobDetail.Adapt(); + res.TriggerArgs = x.Triggers[0].Args; + res.Status = x.Triggers[0].Status.ToString(); + return res; + } ).ToList(); return new PagedResultDto(data.Count(), output); } @@ -60,8 +68,8 @@ namespace Yi.Furion.Application.Rbac.Services.Impl //jobBuilder - var jobBuilder = JobBuilder.Create(input.AssemblyName, input.JobTypeFullName).SetJobId(input.JobId).SetGroupName(input.GroupName); - //.SetConcurrent(input.Concurrent).SetDescription(input.Description).SetProperties(Newtonsoft.Json.JsonConvert.SerializeObject(input.Properties)); + var jobBuilder = JobBuilder.Create(input.AssemblyName, input.JobType).SetJobId(input.JobId).SetGroupName(input.GroupName) + .SetConcurrent(input.Concurrent).SetDescription(input.Description); //triggerBuilder //毫秒 @@ -133,8 +141,8 @@ namespace Yi.Furion.Application.Rbac.Services.Impl public ScheduleResult Update(string jobId, TaskUpdateInput input) { //jobBuilder - var jobBuilder = JobBuilder.Create(input.AssemblyName, input.JobTypeFullName).SetJobId(jobId).SetGroupName(input.GroupName) - .SetConcurrent(input.Concurrent).SetDescription(input.Description).SetProperties(Newtonsoft.Json.JsonConvert.SerializeObject(input.Properties)); + var jobBuilder = JobBuilder.Create(input.AssemblyName, input.JobType).SetJobId(jobId).SetGroupName(input.GroupName) + .SetConcurrent(input.Concurrent).SetDescription(input.Description); //triggerBuilder //毫秒 diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskCreateInput.cs b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskCreateInput.cs index 161e2b7d..63ac23dc 100644 --- a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskCreateInput.cs +++ b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskCreateInput.cs @@ -11,11 +11,11 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task { public string AssemblyName { get; set; } - public string JobTypeFullName { get; set; } + public string JobType { get; set; } public string JobId { get; set; } - public string GroupName { get; set; } + public string? GroupName { get; set; } public JobTypeEnum Type { get; set; } @@ -25,8 +25,8 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task public bool Concurrent { get; set; } - public Dictionary Properties { get; set; } + //public Dictionary? Properties { get; set; } - public string Description { get; set; } + public string? Description { get; set; } } } diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs index 168b7b42..f8305159 100644 --- a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs +++ b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetListOutput.cs @@ -81,5 +81,14 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task /// 作业信息额外数据运行时实例 /// internal string RuntimeProperties { get; set; } + + + /// + /// 触发器参数 + /// + public string TriggerArgs { get; set; } + + //状态 + public string Status { get; set; } } } diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetOutput.cs b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetOutput.cs index bee24538..97ce54c3 100644 --- a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetOutput.cs +++ b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskGetOutput.cs @@ -81,5 +81,13 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task /// 作业信息额外数据运行时实例 /// internal string RuntimeProperties { get; set; } + + public string TriggerArgs { get; set; } + + public DateTime? NextRunTime { get; set; } + + public DateTime? LastRunTime { get; set; } + + public long NumberOfRuns { get; set; } } } diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskUpdateInput.cs b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskUpdateInput.cs index 9b0fa4e2..9803bf4b 100644 --- a/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskUpdateInput.cs +++ b/Yi.Furion.Net6/Yi.Furion.Core/Rbac/Dtos/Task/TaskUpdateInput.cs @@ -11,20 +11,20 @@ namespace Yi.Furion.Core.Rbac.Dtos.Task { public string AssemblyName { get; set; } - public string JobTypeFullName { get; set; } + public string JobType { get; set; } - public string GroupName { get; set; } + public string? GroupName { get; set; } public JobTypeEnum Type { get; set; } - public string Cron { get; set; } + public string? Cron { get; set; } public int Millisecond { get; set; } public bool Concurrent { get; set; } - public Dictionary Properties { get; set; } + // public Dictionary? Properties { get; set; } - public string Description { get; set; } + public string? Description { get; set; } } } diff --git a/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml b/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml index dda6f76a..7c05e273 100644 --- a/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml +++ b/Yi.Furion.Net6/Yi.Furion.Core/Yi.Furion.Core.xml @@ -430,6 +430,11 @@ 作业信息额外数据运行时实例 + + + 触发器参数 + + 作业 Id diff --git a/Yi.RuoYi.Vue3/src/api/monitor/job.js b/Yi.RuoYi.Vue3/src/api/monitor/job.js index 2f556fc4..575b4de3 100644 --- a/Yi.RuoYi.Vue3/src/api/monitor/job.js +++ b/Yi.RuoYi.Vue3/src/api/monitor/job.js @@ -59,13 +59,13 @@ export function changeJobStatus(jobId, status) { // 定时任务立即执行一次 export function runJob(jobId, jobGroup) { - const data = { - jobId, - jobGroup - } + // const data = { + // jobId, + // jobGroup + // } return request({ - url: '/monitor/job/run', - method: 'put', - data: data + url: `/task/run-once/${jobId}`, + method: 'post', + // data: data }) } \ No newline at end of file diff --git a/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue b/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue index 43ba453a..3c5864ee 100644 --- a/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue +++ b/Yi.RuoYi.Vue3/src/views/monitor/job/index.vue @@ -99,13 +99,13 @@ - - - + + +