You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
689 lines
29 KiB
689 lines
29 KiB
using Hangfire;
|
|
using Magicodes.ExporterAndImporter.Excel;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
|
|
//using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
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]")]
|
|
|
|
[AllowAnonymous]
|
|
public class TaskConifgureController : ControllerBase
|
|
{
|
|
private readonly JobDbContext _context;
|
|
private readonly IServiceProvider _builder;
|
|
private readonly IConfiguration _configuration;
|
|
private readonly IRepository<TaskConifgure> _repository;
|
|
public TaskConifgureController(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<TaskConifgure> repository)
|
|
{
|
|
_builder = builder;
|
|
_context = context;
|
|
_configuration = configuration;
|
|
_repository = repository;
|
|
}
|
|
|
|
protected async Task<FileStreamResult> ExportFile<T>(ICollection<T> dtos, string fileName) where T : class, new()
|
|
{
|
|
var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>();
|
|
var res = await excelExporter.ExportAsByteArray(dtos);
|
|
return new FileStreamResult(new MemoryStream(res), "application/octet-stream") { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "_" + fileName };
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 请除所有任务
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost(Name = "ClearAllTask")]
|
|
public async Task ClearAllTask()
|
|
{
|
|
var tasks = await _context.TaskConifgure.ToListAsync();
|
|
foreach (var item in tasks)
|
|
{
|
|
RecurringJob.RemoveIfExists(item.TaskName);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 执行铁定任务
|
|
/// </summary>
|
|
/// <param name="taskName"></param>
|
|
/// <returns></returns>
|
|
[NonAction]
|
|
public async Task ExecuteTask(string taskName)
|
|
{
|
|
var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName);
|
|
var url = first.Url;
|
|
var path = first.Api;
|
|
var controller = _builder.GetRequiredService<SupplierProPlaningService>();
|
|
|
|
await controller.ExecuteAsync(url, path, taskName);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
public async Task<FileStreamResult> Export([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(null, pagingParams);
|
|
return await ExportFile<TaskConifgure>(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 执行铁定任务
|
|
/// </summary>
|
|
/// <param name="taskName"></param>
|
|
/// <returns></returns>
|
|
[NonAction]
|
|
public async Task testTask(string taskName)
|
|
{
|
|
var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName);
|
|
var url = first.Url;
|
|
var path = first.Api;
|
|
var controller = _builder.GetRequiredService<SupplierProPlaningService>();
|
|
|
|
await controller.TestAsync(url, path, taskName, "2025-04-21");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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)
|
|
|| string.IsNullOrEmpty(p.Api) || string.IsNullOrEmpty(p.Url)
|
|
).ToList();
|
|
|
|
foreach (var task in tasks)
|
|
{
|
|
var url = task.Url;
|
|
var path = task.Api;
|
|
|
|
|
|
|
|
switch (task.TaskName)
|
|
{
|
|
//case "来料检验数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_MATERIAL_STOCK_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url,path,task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "排产数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_SCHEDULING_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "供应商基础信息":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_INFO_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "人员资质信息":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_EMPLOYEE_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "BOM主数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_BOM_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "过程控制项质量数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_CPS_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "生产过程数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_DATA_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "产品一次合格率":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_FIRST_PASSYIELD_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "工位一次合格率":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_STATION_FIRST_PASSYIELD_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "缺陷业务数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_FLAW_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "环境业务数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_ENVIRONMENT_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "设备OEE达成率":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "OEE时间明细":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_OEE_TIME_DETAILS_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "物料主数据":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_MATERIAL_DATA_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "工艺装备":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_PROCESS_EQUIPMENT_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
//case "工艺":
|
|
// RecurringJob.AddOrUpdate<SUPPLIER_PRO_PROCESS_CONTROLLER>(
|
|
// task.TaskName,
|
|
// x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
// task.Corn,
|
|
// TimeZoneInfo.Local
|
|
// );
|
|
// break;
|
|
|
|
case "整车月度生产计划1":
|
|
RecurringJob.AddOrUpdate<SupplierProPlaningService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "M+6月物料需求计划1":
|
|
RecurringJob.AddOrUpdate<SupplierMrpMonthService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "整车月度生产计划2":
|
|
RecurringJob.AddOrUpdate<SupplierProPlaningService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "M+6月物料需求计划2":
|
|
RecurringJob.AddOrUpdate<SupplierMrpMonthService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日物料需求计划":
|
|
RecurringJob.AddOrUpdate<SupplierMrpDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "计划协议":
|
|
RecurringJob.AddOrUpdate<SupplierSaWeekService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "采购订单":
|
|
RecurringJob.AddOrUpdate<SupplierPoService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "过焊装未过总装":
|
|
RecurringJob.AddOrUpdate<SupplierPorHSCHEDULService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "过涂装未过总装":
|
|
RecurringJob.AddOrUpdate<supplierProTSCHEDULService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "排序供货":
|
|
RecurringJob.AddOrUpdate<SupplierProCSCHEDULService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "看板配送单":
|
|
RecurringJob.AddOrUpdate<SupplierDelStateService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "退货单":
|
|
RecurringJob.AddOrUpdate<SupplierReturnService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "奇瑞RDC共享库存":
|
|
RecurringJob.AddOrUpdate<SupplierInvDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日MRP状态监控":
|
|
RecurringJob.AddOrUpdate<SupplierMrpDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日MRP预警推移":
|
|
RecurringJob.AddOrUpdate<SupplierMrpWarningService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "M+6月物料需求计划风险确认":
|
|
RecurringJob.AddOrUpdate<SUPPLIER_CON_MMRP_CONTROLLER>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日物料需求计划风险确认":
|
|
RecurringJob.AddOrUpdate<SUPPLIER_CON_DATE_CONTROLLER>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "采购订单风险确认":
|
|
RecurringJob.AddOrUpdate<SUPPLIER_CON_PO_CONTROLLER>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "供应商共享库存-上午":
|
|
|
|
RecurringJob.AddOrUpdate<SupplierSinvDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "供应商共享库存-晚上":
|
|
RecurringJob.AddOrUpdate<SupplierSinvDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
foreach (var task in delTasks)
|
|
{
|
|
|
|
switch (task.TaskName)
|
|
{
|
|
case "来料检验数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "排产数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "供应商基础信息":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "人员资质信息":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "BOM主数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "过程控制项质量数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "生产过程数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "产品一次合格率":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "工位一次合格率":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "缺陷业务数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "环境业务数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "设备OEE达成率":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "OEE时间明细":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "物料主数据":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "工艺装备":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "工艺":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "整车月度生产计划1":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "M+6月物料需求计划1":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "整车月度生产计划2":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "M+6月物料需求计划2":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "日物料需求计划":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "计划协议":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "采购订单":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "过焊装未过总装":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "过涂装未过总装":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "排序供货":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "看板配送单":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "退货单":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "奇瑞RDC共享库存":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "日MRP状态监控":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "日MRP预警推移":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "M+6月物料需求计划风险确认":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "日物料需求计划风险确认":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "采购订单风险确认":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "供应商共享库存-上午":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
case "供应商共享库存-晚上":
|
|
// 移除指定的定时任务
|
|
RecurringJob.RemoveIfExists(task.TaskName);
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<ActionResult<IEnumerable<TaskConifgure>>> GetAll()
|
|
{
|
|
return await _repository.GetAllAsync() as List<TaskConifgure>;
|
|
}
|
|
|
|
[HttpGet("{id}")]
|
|
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}");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|