Browse Source

更新版本

master
赵新宇 2 weeks ago
parent
commit
4fd1bbff96
  1. 4
      API/TaskManager.Entity/Entity.cs
  2. 14
      API/Wood.Service/Controllers/RecurringJobOutPageController.cs
  3. 698
      API/Wood.Service/Controllers/TaskConifgureController.cs

4
API/TaskManager.Entity/Entity.cs

@ -15,7 +15,7 @@ namespace TaskManager.Entity
{ {
Task ExecuteAsync(string url, string path, string takName); Task ExecuteAsync(string url, string path, string takName);
} }
public class TaskConifgure public class TaskConifgure:BaseEntity
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@ -69,7 +69,7 @@ namespace TaskManager.Entity
public string RequestDate { get; set; } public string RequestDate { get; set; }
public string Id { get; set; } public string Id { get; set; }
public string TaskId { get; set; }
} }

14
API/Wood.Service/Controllers/RecurringJobOutPageController.cs

@ -197,7 +197,7 @@ namespace TaskManager.Controllers
} }
[NonAction] [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; Url = url;
Path = path; Path = path;
@ -229,6 +229,7 @@ namespace TaskManager.Controllers
[HttpPost] [HttpPost]
public async Task<ActionResult<T>> Create(T entity) public async Task<ActionResult<T>> Create(T entity)
{ {
entity.CreationTime=DateTime.Now;
var createdEntity = await _repository.AddAsync(entity); var createdEntity = await _repository.AddAsync(entity);
return CreatedAtAction(nameof(GetById), new { id = createdEntity.Id }, createdEntity); return CreatedAtAction(nameof(GetById), new { id = createdEntity.Id }, createdEntity);
} }
@ -239,22 +240,19 @@ namespace TaskManager.Controllers
var _first=await _repository.GetByIdAsync(entity.UId); var _first=await _repository.GetByIdAsync(entity.UId);
if (_first == null) if (_first == null)
{ {
return BadRequest(); return new JsonResult(new { Code = 400, Message = "修改失败!" });
} }
await _repository.UpdateAsync(entity); await _repository.UpdateAsync(entity);
return NoContent(); return new JsonResult(new { Code = 200, Message = "修改成功!" });
} }
[HttpDelete("{id}")] [HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id) public async Task<IActionResult> Delete(int id)
{ {
await _repository.DeleteAsync(id); await _repository.DeleteAsync(id);
return NoContent(); return new JsonResult(new { Code = 200, Message = "删除成功!" }); ;
} }
[HttpGet] [HttpGet]
public async Task<ActionResult<PagedResult<T>>> GetPaged( public async Task<ActionResult<PagedResult<T>>> GetPaged(

698
API/Wood.Service/Controllers/TaskConifgureController.cs

@ -7,27 +7,32 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System; using System;
using System.IO; using System.IO;
using System.Linq.Expressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using TaskManager.Controllers; using TaskManager.Controllers;
using TaskManager.Entity; using TaskManager.Entity;
using TaskManager.EntityFramework; using TaskManager.EntityFramework;
using TaskManager.EntityFramework.Repository;
namespace TaskManager.Controllers namespace TaskManager.Controllers
{ {
//[ApiController] //[ApiController]
//[Route("[controller]")] //[Route("[controller]")]
public class TaskConifgureController :ControllerBase public class TaskConifgureController : ControllerBase
{ {
private readonly JobDbContext _context; private readonly JobDbContext _context;
private readonly IServiceProvider _builder; private readonly IServiceProvider _builder;
private readonly IConfiguration _configuration; private readonly IConfiguration _configuration;
public TaskConifgureController(JobDbContext context, IServiceProvider builder, IConfiguration configuration) private readonly IRepository<TaskConifgure> _repository;
public TaskConifgureController(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<TaskConifgure> repository)
{ {
_builder = builder; _builder = builder;
_context = context; _context = context;
_configuration = configuration; _configuration = configuration;
_repository = repository;
} }
/// <summary> /// <summary>
/// 请除所有任务 /// 请除所有任务
@ -49,22 +54,22 @@ namespace TaskManager.Controllers
/// </summary> /// </summary>
/// <param name="taskName"></param> /// <param name="taskName"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost(Name = "ExecuteTask")] [NonAction]
public async Task ExecuteTask(string taskName) 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 url = first.Url;
var path = first.Api; var path = first.Api;
var controller = _builder.GetRequiredService<SupplierProPlaningService>(); var controller = _builder.GetRequiredService<SupplierProPlaningService>();
await controller.ExecuteAsync(url,path, taskName); await controller.ExecuteAsync(url, path, taskName);
} }
/// <summary> /// <summary>
@ -72,7 +77,7 @@ namespace TaskManager.Controllers
/// </summary> /// </summary>
/// <param name="taskName"></param> /// <param name="taskName"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet(Name = "testTask")] [NonAction]
public async Task testTask(string taskName) public async Task testTask(string taskName)
{ {
var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName); var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName);
@ -80,7 +85,7 @@ namespace TaskManager.Controllers
var path = first.Api; var path = first.Api;
var controller = _builder.GetRequiredService<SupplierProPlaningService>(); var controller = _builder.GetRequiredService<SupplierProPlaningService>();
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() public async Task RefreshTaskConfig()
{ {
// 从数据库加载所有任务配置 // 从数据库加载所有任务配置
var tasks = _context.TaskConifgure.Where(p => p.IsAuto == true && !string.IsNullOrEmpty(p.Corn) var tasks = _context.TaskConifgure.Where(p => p.IsAuto == true && !string.IsNullOrEmpty(p.Corn)
&& !string.IsNullOrEmpty(p.Api) && !string.IsNullOrEmpty(p.Url)).ToList(); && !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) || string.IsNullOrEmpty(p.Api) || string.IsNullOrEmpty(p.Url)
).ToList(); ).ToList();
@ -111,304 +113,304 @@ namespace TaskManager.Controllers
{ {
var url = task.Url; var url = task.Url;
var path = task.Api; var path = task.Api;
switch (task.TaskName) switch (task.TaskName)
{ {
//case "来料检验数据": //case "来料检验数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_MATERIAL_STOCK_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_MATERIAL_STOCK_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url,path,task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url,path,task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "排产数据": //case "排产数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_SCHEDULING_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_SCHEDULING_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "供应商基础信息": //case "供应商基础信息":
// RecurringJob.AddOrUpdate<SUPPLIER_INFO_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_INFO_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "人员资质信息": //case "人员资质信息":
// RecurringJob.AddOrUpdate<SUPPLIER_EMPLOYEE_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_EMPLOYEE_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "BOM主数据": //case "BOM主数据":
// RecurringJob.AddOrUpdate<SUPPLIER_BOM_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_BOM_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "过程控制项质量数据": //case "过程控制项质量数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_CPS_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_CPS_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "生产过程数据": //case "生产过程数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_DATA_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_DATA_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "产品一次合格率": //case "产品一次合格率":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_FIRST_PASSYIELD_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_FIRST_PASSYIELD_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "工位一次合格率": //case "工位一次合格率":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_STATION_FIRST_PASSYIELD_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_STATION_FIRST_PASSYIELD_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "缺陷业务数据": //case "缺陷业务数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_FLAW_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_FLAW_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "环境业务数据": //case "环境业务数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_ENVIRONMENT_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_ENVIRONMENT_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "设备OEE达成率": //case "设备OEE达成率":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "OEE时间明细": //case "OEE时间明细":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_OEE_TIME_DETAILS_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_OEE_TIME_DETAILS_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "物料主数据": //case "物料主数据":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_MATERIAL_DATA_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_MATERIAL_DATA_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "工艺装备": //case "工艺装备":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_PROCESS_EQUIPMENT_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_PROCESS_EQUIPMENT_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
//case "工艺": //case "工艺":
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_PROCESS_CONTROLLER>( // RecurringJob.AddOrUpdate<SUPPLIER_PRO_PROCESS_CONTROLLER>(
// task.TaskName, // task.TaskName,
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
// task.Corn, // task.Corn,
// TimeZoneInfo.Local // TimeZoneInfo.Local
// ); // );
// break; // break;
case "整车月度生产计划1": case "整车月度生产计划1":
RecurringJob.AddOrUpdate<SupplierProPlaningService>( RecurringJob.AddOrUpdate<SupplierProPlaningService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "M+6月物料需求计划1": case "M+6月物料需求计划1":
RecurringJob.AddOrUpdate<SupplierMrpMonthService>( RecurringJob.AddOrUpdate<SupplierMrpMonthService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "整车月度生产计划2": case "整车月度生产计划2":
RecurringJob.AddOrUpdate<SupplierProPlaningService>( RecurringJob.AddOrUpdate<SupplierProPlaningService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "M+6月物料需求计划2": case "M+6月物料需求计划2":
RecurringJob.AddOrUpdate<SupplierMrpMonthService>( RecurringJob.AddOrUpdate<SupplierMrpMonthService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "日物料需求计划": case "日物料需求计划":
RecurringJob.AddOrUpdate<SupplierMrpDataService>( RecurringJob.AddOrUpdate<SupplierMrpDataService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "计划协议": case "计划协议":
RecurringJob.AddOrUpdate<SupplierSaWeekService>( RecurringJob.AddOrUpdate<SupplierSaWeekService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "采购订单": case "采购订单":
RecurringJob.AddOrUpdate<SupplierPoService>( RecurringJob.AddOrUpdate<SupplierPoService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "过焊装未过总装": case "过焊装未过总装":
RecurringJob.AddOrUpdate<SupplierPorHSCHEDULService>( RecurringJob.AddOrUpdate<SupplierPorHSCHEDULService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "过涂装未过总装": case "过涂装未过总装":
RecurringJob.AddOrUpdate<supplierProTSCHEDULService>( RecurringJob.AddOrUpdate<supplierProTSCHEDULService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "排序供货": case "排序供货":
RecurringJob.AddOrUpdate<SupplierProCSCHEDULService>( RecurringJob.AddOrUpdate<SupplierProCSCHEDULService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "看板配送单": case "看板配送单":
RecurringJob.AddOrUpdate<SupplierDelStateService>( RecurringJob.AddOrUpdate<SupplierDelStateService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "退货单": case "退货单":
RecurringJob.AddOrUpdate<SupplierReturnService>( RecurringJob.AddOrUpdate<SupplierReturnService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "奇瑞RDC共享库存": case "奇瑞RDC共享库存":
RecurringJob.AddOrUpdate<SupplierInvDataService>( RecurringJob.AddOrUpdate<SupplierInvDataService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "日MRP状态监控": case "日MRP状态监控":
RecurringJob.AddOrUpdate<SupplierMrpDataService>( RecurringJob.AddOrUpdate<SupplierMrpDataService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "日MRP预警推移": case "日MRP预警推移":
RecurringJob.AddOrUpdate<SupplierMrpWarningService>( RecurringJob.AddOrUpdate<SupplierMrpWarningService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "M+6月物料需求计划风险确认": case "M+6月物料需求计划风险确认":
RecurringJob.AddOrUpdate<SUPPLIER_CON_MMRP_CONTROLLER>( RecurringJob.AddOrUpdate<SUPPLIER_CON_MMRP_CONTROLLER>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "日物料需求计划风险确认": case "日物料需求计划风险确认":
RecurringJob.AddOrUpdate<SUPPLIER_CON_DATE_CONTROLLER>( RecurringJob.AddOrUpdate<SUPPLIER_CON_DATE_CONTROLLER>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "采购订单风险确认": case "采购订单风险确认":
RecurringJob.AddOrUpdate<SUPPLIER_CON_PO_CONTROLLER>( RecurringJob.AddOrUpdate<SUPPLIER_CON_PO_CONTROLLER>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "供应商共享库存-上午": case "供应商共享库存-上午":
RecurringJob.AddOrUpdate<SupplierSinvDataService>( RecurringJob.AddOrUpdate<SupplierSinvDataService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
case "供应商共享库存-晚上": case "供应商共享库存-晚上":
RecurringJob.AddOrUpdate<SupplierSinvDataService>( RecurringJob.AddOrUpdate<SupplierSinvDataService>(
task.TaskName, task.TaskName,
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName), x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
task.Corn, task.Corn,
TimeZoneInfo.Local TimeZoneInfo.Local
); );
break; break;
} }
} }
foreach (var task in delTasks) foreach (var task in delTasks)
{ {
@ -559,7 +561,7 @@ namespace TaskManager.Controllers
// 移除指定的定时任务 // 移除指定的定时任务
RecurringJob.RemoveIfExists(task.TaskName); RecurringJob.RemoveIfExists(task.TaskName);
break; break;
} }
} }
@ -568,11 +570,79 @@ namespace TaskManager.Controllers
} }
[HttpGet]
public async Task<ActionResult<IEnumerable<TaskConifgure>>> GetAll()
{
return await _repository.GetAllAsync() as List<TaskConifgure>;
}
// 使用 Hangfire 注册定时任务 [HttpGet("{id}")]
// Console.WriteLine($"已注册定时任务: {task.TaskName}, Cron: {task.Corn}"); public async Task<ActionResult<TaskConifgure>> GetById(int id)
{
var entity = await _repository.GetByIdAsync(id);
if (entity == null) return NotFound();
return entity;
} }
[HttpPost]
public async Task<ActionResult<TaskConifgure>> 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<IActionResult> 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<IActionResult> Delete(int id)
{
await _repository.DeleteAsync(id);
return new JsonResult(new { Code = 200, Message = "删除成功!" }); ;
}
[HttpGet]
public async Task<ActionResult<PagedResult<TaskConifgure>>> GetPaged(
[FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
};
// 可以在这里构建表达式树过滤条件
Expression<Func<TaskConifgure, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
return Ok(pagedResult);
}
// 使用 Hangfire 注册定时任务
// Console.WriteLine($"已注册定时任务: {task.TaskName}, Cron: {task.Corn}");
} }
}

Loading…
Cancel
Save