From 4fd1bbff9692cb1947880ba7693d41a1d8f72e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Wed, 28 May 2025 16:37:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API/TaskManager.Entity/Entity.cs | 4 +- .../RecurringJobOutPageController.cs | 14 +- .../Controllers/TaskConifgureController.cs | 698 ++++++++++-------- 3 files changed, 392 insertions(+), 324 deletions(-) diff --git a/API/TaskManager.Entity/Entity.cs b/API/TaskManager.Entity/Entity.cs index 02c7799..caf2551 100644 --- a/API/TaskManager.Entity/Entity.cs +++ b/API/TaskManager.Entity/Entity.cs @@ -15,7 +15,7 @@ namespace TaskManager.Entity { Task ExecuteAsync(string url, string path, string takName); } - public class TaskConifgure + public class TaskConifgure:BaseEntity { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] @@ -69,7 +69,7 @@ namespace TaskManager.Entity public string RequestDate { get; set; } public string Id { get; set; } - public string TaskId { get; set; } + } diff --git a/API/Wood.Service/Controllers/RecurringJobOutPageController.cs b/API/Wood.Service/Controllers/RecurringJobOutPageController.cs index f0ecf98..5fd118e 100644 --- a/API/Wood.Service/Controllers/RecurringJobOutPageController.cs +++ b/API/Wood.Service/Controllers/RecurringJobOutPageController.cs @@ -197,7 +197,7 @@ namespace TaskManager.Controllers } [NonAction] - public async Task TestAsync(string url, string path, string taskName, string inputdate) + public virtual async Task TestAsync(string url, string path, string taskName, string inputdate) { Url = url; Path = path; @@ -229,6 +229,7 @@ namespace TaskManager.Controllers [HttpPost] public async Task> Create(T entity) { + entity.CreationTime=DateTime.Now; var createdEntity = await _repository.AddAsync(entity); return CreatedAtAction(nameof(GetById), new { id = createdEntity.Id }, createdEntity); } @@ -239,22 +240,19 @@ namespace TaskManager.Controllers var _first=await _repository.GetByIdAsync(entity.UId); if (_first == null) { - return BadRequest(); + return new JsonResult(new { Code = 400, Message = "修改失败!" }); } - - - - + await _repository.UpdateAsync(entity); - return NoContent(); + return new JsonResult(new { Code = 200, Message = "修改成功!" }); } [HttpDelete("{id}")] public async Task Delete(int id) { await _repository.DeleteAsync(id); - return NoContent(); + return new JsonResult(new { Code = 200, Message = "删除成功!" }); ; } [HttpGet] public async Task>> GetPaged( diff --git a/API/Wood.Service/Controllers/TaskConifgureController.cs b/API/Wood.Service/Controllers/TaskConifgureController.cs index 2d8bd84..c534af9 100644 --- a/API/Wood.Service/Controllers/TaskConifgureController.cs +++ b/API/Wood.Service/Controllers/TaskConifgureController.cs @@ -7,27 +7,32 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.IO; +using System.Linq.Expressions; using System.Threading.Tasks; using TaskManager.Controllers; using TaskManager.Entity; using TaskManager.EntityFramework; +using TaskManager.EntityFramework.Repository; namespace TaskManager.Controllers { //[ApiController] //[Route("[controller]")] - public class TaskConifgureController :ControllerBase + public class TaskConifgureController : ControllerBase { private readonly JobDbContext _context; private readonly IServiceProvider _builder; private readonly IConfiguration _configuration; - public TaskConifgureController(JobDbContext context, IServiceProvider builder, IConfiguration configuration) + private readonly IRepository _repository; + public TaskConifgureController(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository repository) { _builder = builder; _context = context; _configuration = configuration; + _repository = repository; } /// /// 请除所有任务 @@ -49,22 +54,22 @@ namespace TaskManager.Controllers /// /// /// - [HttpPost(Name = "ExecuteTask")] + [NonAction] public async Task ExecuteTask(string taskName) { - var first=await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName); + var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName); var url = first.Url; var path = first.Api; var controller = _builder.GetRequiredService(); - await controller.ExecuteAsync(url,path, taskName); + await controller.ExecuteAsync(url, path, taskName); + - } /// @@ -72,7 +77,7 @@ namespace TaskManager.Controllers /// /// /// - [HttpGet(Name = "testTask")] + [NonAction] public async Task testTask(string taskName) { var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName); @@ -80,7 +85,7 @@ namespace TaskManager.Controllers var path = first.Api; var controller = _builder.GetRequiredService(); - await controller.TestAsync(url, path, taskName,"2025-04-21"); + await controller.TestAsync(url, path, taskName, "2025-04-21"); @@ -93,17 +98,14 @@ namespace TaskManager.Controllers - - - public async Task RefreshTaskConfig() { - + // 从数据库加载所有任务配置 var tasks = _context.TaskConifgure.Where(p => p.IsAuto == true && !string.IsNullOrEmpty(p.Corn) && !string.IsNullOrEmpty(p.Api) && !string.IsNullOrEmpty(p.Url)).ToList(); - var delTasks = _context.TaskConifgure.Where(p => p.IsAuto == false || string.IsNullOrEmpty(p.Corn) + var delTasks = _context.TaskConifgure.Where(p => p.IsAuto == false || string.IsNullOrEmpty(p.Corn) || string.IsNullOrEmpty(p.Api) || string.IsNullOrEmpty(p.Url) ).ToList(); @@ -111,304 +113,304 @@ namespace TaskManager.Controllers { var url = task.Url; var path = task.Api; - - - - switch (task.TaskName) - { - //case "来料检验数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url,path,task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "排产数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "供应商基础信息": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "人员资质信息": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "BOM主数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "过程控制项质量数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "生产过程数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "产品一次合格率": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "工位一次合格率": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "缺陷业务数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "环境业务数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "设备OEE达成率": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "OEE时间明细": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "物料主数据": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "工艺装备": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - //case "工艺": - // RecurringJob.AddOrUpdate( - // task.TaskName, - // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - // task.Corn, - // TimeZoneInfo.Local - // ); - // break; - - case "整车月度生产计划1": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "M+6月物料需求计划1": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "整车月度生产计划2": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "M+6月物料需求计划2": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "日物料需求计划": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "计划协议": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "采购订单": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "过焊装未过总装": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "过涂装未过总装": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "排序供货": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "看板配送单": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "退货单": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "奇瑞RDC共享库存": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "日MRP状态监控": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "日MRP预警推移": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "M+6月物料需求计划风险确认": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "日物料需求计划风险确认": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "采购订单风险确认": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "供应商共享库存-上午": - - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - case "供应商共享库存-晚上": - RecurringJob.AddOrUpdate( - task.TaskName, - x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), - task.Corn, - TimeZoneInfo.Local - ); - break; - - } - + + + + switch (task.TaskName) + { + //case "来料检验数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url,path,task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "排产数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "供应商基础信息": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "人员资质信息": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "BOM主数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "过程控制项质量数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "生产过程数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "产品一次合格率": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "工位一次合格率": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "缺陷业务数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "环境业务数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "设备OEE达成率": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "OEE时间明细": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "物料主数据": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "工艺装备": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + //case "工艺": + // RecurringJob.AddOrUpdate( + // task.TaskName, + // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + // task.Corn, + // TimeZoneInfo.Local + // ); + // break; + + case "整车月度生产计划1": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "M+6月物料需求计划1": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "整车月度生产计划2": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "M+6月物料需求计划2": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "日物料需求计划": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "计划协议": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "采购订单": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "过焊装未过总装": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "过涂装未过总装": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "排序供货": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "看板配送单": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "退货单": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "奇瑞RDC共享库存": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "日MRP状态监控": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "日MRP预警推移": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "M+6月物料需求计划风险确认": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "日物料需求计划风险确认": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "采购订单风险确认": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "供应商共享库存-上午": + + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + case "供应商共享库存-晚上": + RecurringJob.AddOrUpdate( + task.TaskName, + x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), + task.Corn, + TimeZoneInfo.Local + ); + break; + + } + } foreach (var task in delTasks) { @@ -559,7 +561,7 @@ namespace TaskManager.Controllers // 移除指定的定时任务 RecurringJob.RemoveIfExists(task.TaskName); break; - + } } @@ -568,11 +570,79 @@ namespace TaskManager.Controllers } + [HttpGet] + public async Task>> GetAll() + { + return await _repository.GetAllAsync() as List; + } - // 使用 Hangfire 注册定时任务 - // Console.WriteLine($"已注册定时任务: {task.TaskName}, Cron: {task.Corn}"); + [HttpGet("{id}")] + public async Task> GetById(int id) + { + var entity = await _repository.GetByIdAsync(id); + if (entity == null) return NotFound(); + return entity; } + + [HttpPost] + public async Task> Create(TaskConifgure entity) + { + entity.CreationTime = DateTime.Now; + var createdEntity = await _repository.AddAsync(entity); + return new JsonResult(new { Code = 200, Message = "创建成功!" }); + } + + [HttpPut("{id}")] + public async Task Update(TaskConifgure entity) + { + var _first = await _repository.GetByIdAsync(entity.UId); + if (_first == null) + { + return new JsonResult(new { Code = 400, Message = "修改失败!" }); + } + + + await _repository.UpdateAsync(entity); + return new JsonResult(new { Code = 200, Message = "修改成功!" }); + } + + [HttpDelete("{id}")] + public async Task Delete(int id) + { + await _repository.DeleteAsync(id); + return new JsonResult(new { Code = 200, Message = "删除成功!" }); ; + } + [HttpGet] + public async Task>> GetPaged( + [FromQuery] int pageNumber = 1, + [FromQuery] int pageSize = 10, + [FromQuery] string sortBy = "", + [FromQuery] bool isAscending = true, + [FromQuery] Dictionary filters = null) + { + var pagingParams = new PagingParams + { + PageNumber = pageNumber, + PageSize = pageSize, + SortBy = sortBy, + IsAscending = isAscending, + Filters = filters + }; + + // 可以在这里构建表达式树过滤条件 + Expression> filter = null; + + var pagedResult = await _repository.GetPagedAsync(filter, pagingParams); + return Ok(pagedResult); + } + + + + + // 使用 Hangfire 注册定时任务 + // Console.WriteLine($"已注册定时任务: {task.TaskName}, Cron: {task.Corn}"); } +}