|
@ -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}");
|
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|