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.
857 lines
36 KiB
857 lines
36 KiB
using System;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq.Expressions;
|
|
using System.Security.Policy;
|
|
using System.Threading.Tasks;
|
|
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 Microsoft.VisualBasic;
|
|
using TaskManager.Controllers;
|
|
using TaskManager.Entity;
|
|
using TaskManager.EntityFramework;
|
|
using TaskManager.EntityFramework.Repository;
|
|
using Wood.Service.Controllers;
|
|
|
|
namespace TaskManager.Controllers
|
|
{
|
|
//[ApiController]
|
|
//[Route("[controller]")]
|
|
/// <summary>
|
|
/// 定时任务设置服务
|
|
/// </summary>
|
|
[AllowAnonymous]
|
|
public class TaskConifgureController :NormalBaseController<TaskConifgure>
|
|
{
|
|
public TaskConifgureController(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<TaskConifgure> repository) : base(context, builder, configuration, repository)
|
|
{
|
|
}
|
|
|
|
|
|
/// <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 client = first.Client;
|
|
var pagesize = first.PageSize;
|
|
var controller = _builder.GetRequiredService<SupplierProPlaningService>();
|
|
|
|
await controller.ExecuteAsync(url, path, taskName,client,pagesize);
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///// <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");
|
|
|
|
//}
|
|
//[NonAction]
|
|
//public async Task TaskAllAsync(string date)
|
|
//{
|
|
// var tasks = _context.TaskConifgure.Where(p => p.IsAuto == true && !string.IsNullOrEmpty(p.Corn)
|
|
// && !string.IsNullOrEmpty(p.Api) && !string.IsNullOrEmpty(p.Url)).ToList();
|
|
|
|
|
|
// foreach (var task in tasks)
|
|
// {
|
|
// try
|
|
// {
|
|
// var url = task.Url;
|
|
// var path = task.Api;
|
|
// var taskname = task.TaskName;
|
|
|
|
// switch (task.TaskName)
|
|
// {
|
|
// //case "整车月度生产计划1":
|
|
|
|
// // // 添加的代码块
|
|
// // var controller1 = _builder.GetRequiredService<SupplierProPlaningService>();
|
|
// // await controller1.TestAsync(url, path, taskname, "2025-05-29");
|
|
// // break;
|
|
|
|
// case "M+6月物料需求计划1":
|
|
|
|
// // 添加的代码块
|
|
// var controller2 = _builder.GetRequiredService<CherySupplierMrpMonthService>();
|
|
// await controller2.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "整车月度生产计划2":
|
|
|
|
// // 添加的代码块
|
|
// var controller3 = _builder.GetRequiredService<SupplierProPlaningService>();
|
|
// await controller3.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "M+6月物料需求计划2":
|
|
|
|
// // 添加的代码块
|
|
// var controller4 = _builder.GetRequiredService<CherySupplierMrpMonthService>();
|
|
// await controller4.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "日物料需求计划":
|
|
|
|
// // 添加的代码块
|
|
// var controller5 = _builder.GetRequiredService<CherySupplierMrpDataService>();
|
|
// await controller5.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "计划协议":
|
|
|
|
// // 添加的代码块
|
|
// var controller6 = _builder.GetRequiredService<CherySupplierSaWeekService>();
|
|
// await controller6.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "采购订单":
|
|
|
|
// // 添加的代码块
|
|
// var controller7 = _builder.GetRequiredService<CherySupplierPoService>();
|
|
// await controller7.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "过焊装未过总装":
|
|
|
|
// // 添加的代码块
|
|
// var controller8 = _builder.GetRequiredService<CherySupplierPorHSCHEDULService>();
|
|
// await controller8.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "过涂装未过总装":
|
|
|
|
// // 添加的代码块
|
|
// var controller9 = _builder.GetRequiredService<CherySupplierProTSCHEDULService>();
|
|
// await controller9.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "排序供货":
|
|
|
|
// // 添加的代码块
|
|
// var controller10 = _builder.GetRequiredService<CherySupplierProCSCHEDULService>();
|
|
// await controller10.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "看板配送单":
|
|
|
|
// // 添加的代码块
|
|
// var controller11 = _builder.GetRequiredService<CherySupplierDelStateService>();
|
|
// await controller11.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "退货单":
|
|
|
|
// // 添加的代码块
|
|
// var controller12 = _builder.GetRequiredService<CherySupplierReturnService>();
|
|
// await controller12.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "奇瑞RDC共享库存":
|
|
|
|
// // 添加的代码块
|
|
// var controller13 = _builder.GetRequiredService<SupplierInvDataService>();
|
|
// await controller13.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "日MRP状态监控":
|
|
|
|
// // 添加的代码块
|
|
// var controller14 = _builder.GetRequiredService<CherySupplierMrpDataService>();
|
|
// await controller14.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "日MRP预警推移":
|
|
|
|
// // 添加的代码块
|
|
// var controller15 = _builder.GetRequiredService<CherySupplierMrpWarningService>();
|
|
// await controller15.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
// case "供应商共享库存-上午":
|
|
|
|
// // 添加的代码块
|
|
// var controller19 = _builder.GetRequiredService<CherySupplierSinvDataService>();
|
|
// await controller19.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
|
|
// case "供应商共享库存-晚上":
|
|
|
|
// // 添加的代码块
|
|
// var controller20 = _builder.GetRequiredService<CherySupplierSinvDataService>();
|
|
// await controller20.TestAsync(url, path, taskname, "2025-05-29");
|
|
// break;
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
// catch
|
|
// {
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
|
//}
|
|
|
|
/// <summary>
|
|
/// 设置任务是否自动执行
|
|
/// </summary>
|
|
[HttpGet]
|
|
|
|
public async Task<ActionResult> SetIsAuto(long uid, bool isauto)
|
|
{
|
|
try
|
|
{
|
|
|
|
|
|
var task = _context.TaskConifgure.FirstOrDefault(p => p.UId == uid);
|
|
if (isauto == true)
|
|
{
|
|
task.IsAuto = true;
|
|
var url = task.Url;
|
|
var path = task.Api;
|
|
var client = task.Client;
|
|
await AddOrUpdateTask(task);
|
|
int result=_context.SaveChanges();
|
|
return new JsonResult("200", $"{task.TaskName}设置为自动执行!");
|
|
}
|
|
else
|
|
{
|
|
task.IsAuto = false;
|
|
var url = task.Url;
|
|
var path = task.Api;
|
|
var client = task.Client;
|
|
await RemoveTask(task);
|
|
int result = _context.SaveChanges();
|
|
return new JsonResult("200", $"{task.TaskName}设置为手动执行!");
|
|
|
|
}
|
|
}
|
|
catch (Exception ex) {
|
|
|
|
|
|
return new JsonResult("200", $"执行报错!");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 刷新任务
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
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)
|
|
{
|
|
await AddOrUpdateTask(task);
|
|
|
|
|
|
|
|
}
|
|
foreach (var task in delTasks)
|
|
{
|
|
|
|
await RemoveTask(task);
|
|
}
|
|
|
|
}
|
|
private async Task AddOrUpdateTask(TaskConifgure task)
|
|
{
|
|
|
|
var url = task.Url;
|
|
var path = task.Api;
|
|
var client = task.Client;
|
|
var pagesize = task.PageSize;
|
|
|
|
switch (task.TaskName)
|
|
{
|
|
case "来料检验数据":
|
|
RecurringJob.AddOrUpdate<SupplierProMaterialStockService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "排产数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProSchedulingService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "供应商基础信息":
|
|
RecurringJob.AddOrUpdate<CherySupplierInfoService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "人员资质信息":
|
|
RecurringJob.AddOrUpdate<CherySupplierEmployeeService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "BOM主数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierBomService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "过程控制项质量数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProCpsService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "生产过程数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "产品一次合格率":
|
|
RecurringJob.AddOrUpdate<CherySupplierProFirstPassyieldService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "工位一次合格率":
|
|
RecurringJob.AddOrUpdate<CherySupplierProStationFirstPassyieldService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "缺陷业务数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProFlawService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "环境业务数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProEnvironmentService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "设备OEE达成率":
|
|
RecurringJob.AddOrUpdate<CherySupplierProOeeAchievementRateService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "OEE时间明细":
|
|
RecurringJob.AddOrUpdate<CherySupplierProOeeTimeDetailsService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "物料主数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProMaterialDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "附件类数据":
|
|
RecurringJob.AddOrUpdate<CherySupplierProAttachmentDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "工艺装备":
|
|
RecurringJob.AddOrUpdate<CherySupplierProProcessEquipmentService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "工艺":
|
|
RecurringJob.AddOrUpdate<CherySupplierProProcessService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
|
|
case "整车月度生产计划1":
|
|
RecurringJob.AddOrUpdate<SupplierProPlaningService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "M+6月物料需求计划1":
|
|
RecurringJob.AddOrUpdate<CherySupplierMrpMonthService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "整车月度生产计划2":
|
|
RecurringJob.AddOrUpdate<SupplierProPlaningService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "M+6月物料需求计划2":
|
|
RecurringJob.AddOrUpdate<CherySupplierMrpMonthService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日物料需求计划":
|
|
RecurringJob.AddOrUpdate<CherySupplierMrpDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "计划协议":
|
|
RecurringJob.AddOrUpdate<CherySupplierSaWeekService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "采购订单":
|
|
RecurringJob.AddOrUpdate<CherySupplierPoService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "过焊装未过总装":
|
|
RecurringJob.AddOrUpdate<CherySupplierPorHSCHEDULService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "过涂装未过总装":
|
|
RecurringJob.AddOrUpdate<CherySupplierProTSCHEDULService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "排序供货":
|
|
RecurringJob.AddOrUpdate<CherySupplierProCSCHEDULService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "看板配送单":
|
|
RecurringJob.AddOrUpdate<CherySupplierDelStateService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "退货单":
|
|
RecurringJob.AddOrUpdate<CherySupplierReturnService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "奇瑞RDC共享库存":
|
|
RecurringJob.AddOrUpdate<SupplierInvDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日MRP状态监控":
|
|
RecurringJob.AddOrUpdate<CherySupplierMrpDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日MRP预警推移":
|
|
RecurringJob.AddOrUpdate<CherySupplierMrpWarningService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "M+6月物料需求计划风险确认":
|
|
RecurringJob.AddOrUpdate<CherySupplierConMmrpService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "日物料需求计划风险确认":
|
|
RecurringJob.AddOrUpdate<CherySupplierConDateService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "采购订单风险确认":
|
|
RecurringJob.AddOrUpdate<CherySupplierConPoService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "供应商共享库存-上午":
|
|
|
|
RecurringJob.AddOrUpdate<CherySupplierSinvDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
case "供应商共享库存-晚上":
|
|
RecurringJob.AddOrUpdate<CherySupplierSinvDataService>(
|
|
task.TaskName,
|
|
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
|
|
task.Corn,
|
|
TimeZoneInfo.Local
|
|
);
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
private async Task RemoveTask(TaskConifgure task)
|
|
{
|
|
|
|
|
|
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<FileStreamResult> Exportextend([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<T, bool>> filter = null;
|
|
|
|
var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
|
|
|
|
|
|
|
|
|
|
|
|
return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
|
|
|
|
|
|
}
|
|
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 };
|
|
}
|
|
|
|
|
|
|
|
|
|
// 使用 Hangfire 注册定时任务
|
|
// Console.WriteLine($"已注册定时任务: {task.TaskName}, Cron: {task.Corn}");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|