Browse Source

替换基类增加每日志

master
赵新宇 17 hours ago
parent
commit
1e9c1c5c44
  1. 10
      API/Wood.Service/Controllers/CheryDataMaintenanceService.cs
  2. 10
      API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
  3. 2
      API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs
  4. 34
      API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
  5. 2
      API/Wood.Service/Controllers/CherySupplierBomService.cs
  6. 8
      API/Wood.Service/Controllers/CherySupplierConDateService.cs
  7. 2
      API/Wood.Service/Controllers/CherySupplierConMmrpService.cs
  8. 8
      API/Wood.Service/Controllers/CherySupplierConPoService.cs
  9. 2
      API/Wood.Service/Controllers/CherySupplierDelStateService.cs
  10. 2
      API/Wood.Service/Controllers/CherySupplierEmployeeService.cs
  11. 2
      API/Wood.Service/Controllers/CherySupplierInfoService.cs
  12. 2
      API/Wood.Service/Controllers/CherySupplierInvDataService.cs
  13. 2
      API/Wood.Service/Controllers/CherySupplierMrpDataService.cs
  14. 2
      API/Wood.Service/Controllers/CherySupplierMrpMonthService.cs
  15. 2
      API/Wood.Service/Controllers/CherySupplierMrpService.cs
  16. 2
      API/Wood.Service/Controllers/CherySupplierMrpWarningService.cs
  17. 2
      API/Wood.Service/Controllers/CherySupplierPoService.cs
  18. 2
      API/Wood.Service/Controllers/CherySupplierPorHSCHEDULService.cs
  19. 2
      API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs
  20. 2
      API/Wood.Service/Controllers/CherySupplierProCSCHEDULService.cs
  21. 2
      API/Wood.Service/Controllers/CherySupplierProCpsService.cs
  22. 2
      API/Wood.Service/Controllers/CherySupplierProDataService.cs
  23. 2
      API/Wood.Service/Controllers/CherySupplierProEnvironmentService.cs
  24. 2
      API/Wood.Service/Controllers/CherySupplierProFirstPassyieldService.cs
  25. 2
      API/Wood.Service/Controllers/CherySupplierProFlawService.cs
  26. 2
      API/Wood.Service/Controllers/CherySupplierProMaterialDataService.cs
  27. 2
      API/Wood.Service/Controllers/CherySupplierProMaterialStockService.cs
  28. 2
      API/Wood.Service/Controllers/CherySupplierProOeeAchievementRateService.cs
  29. 2
      API/Wood.Service/Controllers/CherySupplierProOeeTimeDetailsService.cs
  30. 2
      API/Wood.Service/Controllers/CherySupplierProPlanService.cs
  31. 2
      API/Wood.Service/Controllers/CherySupplierProProcessEquipmentService.cs
  32. 2
      API/Wood.Service/Controllers/CherySupplierProProcessService.cs
  33. 2
      API/Wood.Service/Controllers/CherySupplierProSchedulingService.cs
  34. 2
      API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs
  35. 2
      API/Wood.Service/Controllers/CherySupplierProTSCHEDULService.cs
  36. 2
      API/Wood.Service/Controllers/CherySupplierReturnService.cs
  37. 2
      API/Wood.Service/Controllers/CherySupplierSaWeekService.cs
  38. 2
      API/Wood.Service/Controllers/CherySupplierSinvDataService.cs
  39. 296
      API/Wood.Service/Controllers/LogConsumerService.cs
  40. 27
      API/Wood.Service/Controllers/LogController.cs
  41. 4
      API/Wood.Service/Controllers/RecurringJobBaseController.cs

10
API/Wood.Service/Controllers/CheryDataMaintenanceService.cs

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TaskManager.Controllers;
using TaskManager.Entity;
using TaskManager.EntityFramework;
using Wood.Entity;
@ -15,10 +16,17 @@ namespace Wood.Service.Controllers
{
private readonly IServiceProvider _serviceProvider;
private readonly IConfiguration _configuration;
public CheryDataMaintenanceService(IServiceProvider serviceProvider, IConfiguration configuration)
private readonly CherySupplierBomService _cherySupplierBomService;
public CheryDataMaintenanceService(IServiceProvider serviceProvider, IConfiguration configuration, CherySupplierBomService cherySupplierBomService)
{
_serviceProvider = serviceProvider;
_configuration = configuration;
_cherySupplierBomService = cherySupplierBomService;
}

10
API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs

@ -33,9 +33,11 @@ using static Dapper.SqlMapper;
namespace TaskManager.Controllers
{
public class CheryRecurringJobInputPageController<T,TDTO> : RecurringJobBaseController
public class CheryRecurringJobInputPageController<T,TDTO,TLOGS> : RecurringJobBaseController
where T : BaseEntity ,new()
where TDTO:class,new()
where TLOGS:BaseEntity,new()
{
protected readonly IRepository<T> _repository;
public CheryRecurringJobInputPageController(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<T> repository) : base(httpClient, jobDbContext, log)
@ -56,11 +58,9 @@ namespace TaskManager.Controllers
try
{
var first = _jobDbContext.TaskConifgure.FirstOrDefault(p => p.TaskName == taskName && p.Client == client);
if (first == null)
{
return;
}
Url = first.Url;
@ -163,8 +163,8 @@ namespace TaskManager.Controllers
return sb.ToString();
}
private async Task SyncTaskSubTable(string taskName, string client)
[NonAction]
public async Task SyncTaskSubTable(string taskName, string client)
{

2
API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs

@ -34,7 +34,7 @@ using static Dapper.SqlMapper;
namespace TaskManager.Controllers
{
public class CheryRecurringJobInputPageExtendController<T,TDTO> : RecurringJobBaseController
public class CheryRecurringJobInputPageExtendController<T,TDTO,TLOGS> : RecurringJobBaseController
where T : BaseEntity ,new()
where TDTO:class,new()
{

34
API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs

@ -33,7 +33,11 @@ namespace TaskManager.Controllers
{
//[ApiController]
//[Route("api/[controller]")]
public class CheryRecurringJobOutPageController<T, ToutputDetial> : RecurringJobBaseController where T : CherryReadBaseEntity, new() where ToutputDetial : CherryReadBaseEntityDto
public class CheryRecurringJobOutPageController<T, ToutputDetial,TLOGS> :
RecurringJobBaseController where T : CherryReadBaseEntity, new()
where ToutputDetial : CherryReadBaseEntityDto,new()
where TLOGS : CherryReadBaseEntity, new()
{
protected readonly IRepository<T> _repository;
public CheryRecurringJobOutPageController(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<T> repository) : base(httpClient, jobDbContext, log)
@ -61,21 +65,36 @@ namespace TaskManager.Controllers
using (var transaction = await _jobDbContext.Database.BeginTransactionAsync())
{
var tran = transaction.GetDbTransaction();
var taskId=list.First().TaskId;
var version = list.First().RequestDate.Replace("-", string.Empty);
try
{
List<TLOGS> logs = new List<TLOGS>();
foreach (var itm in list)
{
TLOGS entity = new TLOGS();
entity.InjectFrom(itm);
}
await _jobDbContext.BulkMergeAsync(list, options => { options.ColumnPrimaryKeyExpression = p => p.Id; });
//_jobDbContext.BulkMerge(list, options => {
// options.ColumnPrimaryKeyExpression = p => p.Id;
await _jobDbContext.BulkMergeAsync(logs, options => { options.ColumnPrimaryKeyExpression = p =>new { p.Id,p.RequestDate }; });
//});
await ConfirmDataInsertAsync(list, _jobDbContext, tran);
// 提交事务
await transaction.CommitAsync();
}
catch (Exception ex)
{
await transaction.RollbackAsync();
new JsonResult(new { Code = 400, Message = ex.Message });
await _logger.AddError(ex.Message, TaskName, taskId, version);
}
}
}
@ -119,6 +138,7 @@ namespace TaskManager.Controllers
entity.InjectFrom(itm);
entity.CreationTime = DateTime.Now;
entity.RequestDate = date;
entity.TaskId = taskId;
pagefirstList.Add(entity);
allData.Add(itm);
}
@ -205,6 +225,10 @@ namespace TaskManager.Controllers
if (pageList.Any())
{
await InsertDataAsync(pageList);
}
}
else
@ -302,12 +326,10 @@ namespace TaskManager.Controllers
pageList.Add(entity);
allData.Add(itm);
}
if (pageList.Any())
{
await InsertDataAsync(pageList);
}
//await _logger.AddInfo($"成功获取 {pageResponse.Data.Rows.Count} 条记录", TaskName);
}
else

2
API/Wood.Service/Controllers/CherySupplierBomService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// BOM主数据
/// </summary>
public class CherySupplierBomService : CheryRecurringJobInputPageExtendController<SUPPLIER_BOM, SUPPLIER_BOM_DTO>
public class CherySupplierBomService : CheryRecurringJobInputPageExtendController<SUPPLIER_BOM, SUPPLIER_BOM_DTO, SUPPLIER_BOM_LOGS>
{
public CherySupplierBomService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_BOM> repository) : base(httpClient, jobDbContext, log, repository)
{

8
API/Wood.Service/Controllers/CherySupplierConDateService.cs

@ -11,18 +11,18 @@ namespace TaskManager.Controllers
/// <summary>
/// 日物料需求计划风险确认
/// </summary>
public class CherySupplierConDateService : CheryRecurringJobInputPageController<SUPPLIER_CON_DATE, SUPPLIER_CON_DATE_DETAIL_DTO>
public class CherySupplierConDateService : CheryRecurringJobInputPageController<SUPPLIER_CON_DATE, SUPPLIER_CON_DATE_DETAIL_DTO,SUPPLIER_CON_DATE_LOGS>
{
public CherySupplierConDateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_CON_DATE> repository) : base(httpClient, jobDbContext, log, repository)
{
}
[HttpGet]
public async Task<SUPPLIER_CON_DATE> GetDetialByID(String id)
public async Task<SUPPLIER_MRP_MONTH> GetDetialByID(String id)
{
SUPPLIER_CON_DATE first = new SUPPLIER_CON_DATE();
var m = await _jobDbContext.SUPPLIER_CON_DATE.FirstOrDefaultAsync(p => p.Id == id);
SUPPLIER_MRP_MONTH first = new SUPPLIER_MRP_MONTH();
var m = await _jobDbContext.SUPPLIER_MRP_MONTH.FirstOrDefaultAsync(p => p.Id == id);
if (m != null)
{
return m;

2
API/Wood.Service/Controllers/CherySupplierConMmrpService.cs

@ -14,7 +14,7 @@ namespace TaskManager.Controllers
/// <summary>
/// M+6月物料需求计划风险确认
/// </summary>
public class CherySupplierConMmrpService : CheryRecurringJobInputPageController<SUPPLIER_CON_MMRP, SUPPLIER_CON_MMRP_DTO>
public class CherySupplierConMmrpService : CheryRecurringJobInputPageController<SUPPLIER_CON_MMRP, SUPPLIER_CON_MMRP_DTO, SUPPLIER_CON_MMRP_LOGS>
{
public CherySupplierConMmrpService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_CON_MMRP> repository) : base(httpClient, jobDbContext, log, repository)
{

8
API/Wood.Service/Controllers/CherySupplierConPoService.cs

@ -11,18 +11,18 @@ namespace TaskManager.Controllers
/// <summary>
/// 采购订单风险确认
/// </summary>
public class CherySupplierConPoService : CheryRecurringJobInputPageController<SUPPLIER_CON_PO, SUPPLIER_CON_PO_DETAIL_DTO>
public class CherySupplierConPoService : CheryRecurringJobInputPageController<SUPPLIER_CON_PO, SUPPLIER_CON_PO_DETAIL_DTO, SUPPLIER_CON_PO_LOGS>
{
public CherySupplierConPoService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_CON_PO> repository) : base(httpClient, jobDbContext, log, repository)
{
}
[HttpGet]
public async Task<SUPPLIER_CON_DATE> GetDetialByID(String id)
public async Task<SUPPLIER_PO> GetDetialByID(String id)
{
SUPPLIER_CON_DATE first = new SUPPLIER_CON_DATE();
var m = await _jobDbContext.SUPPLIER_CON_DATE.FirstOrDefaultAsync(p => p.Id == id);
SUPPLIER_PO first = new SUPPLIER_PO();
var m = await _jobDbContext.SUPPLIER_PO.FirstOrDefaultAsync(p => p.Id == id);
if (m != null)
{
return m;

2
API/Wood.Service/Controllers/CherySupplierDelStateService.cs

@ -9,7 +9,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 看板送货单
/// </summary>
public class CherySupplierDelStateService : CheryRecurringJobOutPageController<SUPPLIER_DEL_STATE, SUPPLIER_DEL_STATE_DETAIL_DTO>
public class CherySupplierDelStateService : CheryRecurringJobOutPageController<SUPPLIER_DEL_STATE, SUPPLIER_DEL_STATE_DETAIL_DTO, SUPPLIER_DEL_STATE_LOGS>
{
public CherySupplierDelStateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_DEL_STATE> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierEmployeeService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 人员资质信息
/// </summary>
public class CherySupplierEmployeeService : CheryRecurringJobInputPageController<SUPPLIER_EMPLOYEE, SUPPLIER_EMPLOYEE_DTO>
public class CherySupplierEmployeeService : CheryRecurringJobInputPageController<SUPPLIER_EMPLOYEE, SUPPLIER_EMPLOYEE_DTO, SUPPLIER_EMPLOYEE_LOGS>
{
public CherySupplierEmployeeService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_EMPLOYEE> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierInfoService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 供应商基础信息
/// </summary>
public class CherySupplierInfoService : CheryRecurringJobInputPageController<SUPPLIER_INFO, SUPPLIER_INFO_DTO>
public class CherySupplierInfoService : CheryRecurringJobInputPageController<SUPPLIER_INFO, SUPPLIER_INFO_DTO, SUPPLIER_INFO_LOGS>
{
public CherySupplierInfoService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_INFO> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierInvDataService.cs

@ -10,7 +10,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 奇瑞RDC共享库存
/// </summary>
public class SupplierInvDataService : CheryRecurringJobOutPageController<SUPPLIER_INV_DATA, SUPPLIER_INV_DATA_DETAIL_DTO>
public class SupplierInvDataService : CheryRecurringJobOutPageController<SUPPLIER_INV_DATA, SUPPLIER_INV_DATA_DETAIL_DTO, SUPPLIER_INV_DATA_LOGS>
{
public SupplierInvDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_INV_DATA> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierMrpDataService.cs

@ -12,7 +12,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 日物料需求计划
/// </summary>
public class CherySupplierMrpDataService : CheryRecurringJobOutPageController<SUPPLIER_MRP_DATE, SUPPLIER_MRP_DATE_DETAIL_DTO>
public class CherySupplierMrpDataService : CheryRecurringJobOutPageController<SUPPLIER_MRP_DATE, SUPPLIER_MRP_DATE_DETAIL_DTO, SUPPLIER_MRP_DATE_LOGS>
{
public CherySupplierMrpDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_MRP_DATE> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierMrpMonthService.cs

@ -18,7 +18,7 @@ namespace TaskManager.Controllers
/// <summary>
/// M+6月物料需求计划风险
/// </summary>
public class CherySupplierMrpMonthService : CheryRecurringJobOutPageController<SUPPLIER_MRP_MONTH, SUPPLIER_MRP_MONTH_DETAIL_DTO>
public class CherySupplierMrpMonthService : CheryRecurringJobOutPageController<SUPPLIER_MRP_MONTH, SUPPLIER_MRP_MONTH_DETAIL_DTO, SUPPLIER_MRP_MONTH_LOGS>
{
public CherySupplierMrpMonthService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_MRP_MONTH> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierMrpService.cs

@ -10,7 +10,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 日MRP状态监控
/// </summary>
public class CherySupplierMrpService : CheryRecurringJobOutPageController<SUPPLIER_MRP_STATE, SUPPLIER_MRP_STATE_DETIAL_DTO>
public class CherySupplierMrpService : CheryRecurringJobOutPageController<SUPPLIER_MRP_STATE, SUPPLIER_MRP_STATE_DETIAL_DTO, SUPPLIER_MRP_STATE_LOGS>
{
public CherySupplierMrpService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_MRP_STATE> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierMrpWarningService.cs

@ -11,7 +11,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 日MRP预警推移
/// </summary>
public class CherySupplierMrpWarningService : CheryRecurringJobOutPageController<SUPPLIER_MRP_WARNING, SUPPLIER_MRP_WARNING_DETAIL_DTO>
public class CherySupplierMrpWarningService : CheryRecurringJobOutPageController<SUPPLIER_MRP_WARNING, SUPPLIER_MRP_WARNING_DETAIL_DTO, SUPPLIER_MRP_WARNING_LOGS>
{
public CherySupplierMrpWarningService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_MRP_WARNING> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierPoService.cs

@ -11,7 +11,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 采购订单
/// </summary>
public class CherySupplierPoService : CheryRecurringJobOutPageController<SUPPLIER_PO, SUPPLIER_PO_DETAIL_DTO>
public class CherySupplierPoService : CheryRecurringJobOutPageController<SUPPLIER_PO, SUPPLIER_PO_DETAIL_DTO, SUPPLIER_PO_LOGS>
{
public CherySupplierPoService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PO> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierPorHSCHEDULService.cs

@ -9,7 +9,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 过焊装未过总装
/// </summary>
public class CherySupplierPorHSCHEDULService : CheryRecurringJobOutPageController<SUPPLIER_PRO_HSCHEDUL, SUPPLIER_PRO_HSCHEDUL_DETAIL_DTO>
public class CherySupplierPorHSCHEDULService : CheryRecurringJobOutPageController<SUPPLIER_PRO_HSCHEDUL, SUPPLIER_PRO_HSCHEDUL_DETAIL_DTO, SUPPLIER_PRO_HSCHEDUL_LOGS>
{
public CherySupplierPorHSCHEDULService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_HSCHEDUL> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 附件类数据
/// </summary>
public class CherySupplierProAttachmentDataService : CheryRecurringJobInputPageController<SUPPLIER_PRO_ATTACHMENT_DATA, SUPPLIER_PRO_ATTACHMENT_DATA_DTO>
public class CherySupplierProAttachmentDataService : CheryRecurringJobInputPageController<SUPPLIER_PRO_ATTACHMENT_DATA, SUPPLIER_PRO_ATTACHMENT_DATA_DTO, SUPPLIER_PRO_ATTACHMENT_DATA_LOGS>
{
public CherySupplierProAttachmentDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_ATTACHMENT_DATA> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProCSCHEDULService.cs

@ -9,7 +9,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 排序供货
/// </summary>
public class CherySupplierProCSCHEDULService : CheryRecurringJobOutPageController<SUPPLIER_PRO_CSCHEDUL, SUPPLIER_PRO_CSCHEDUL_DETAIL_DTO>
public class CherySupplierProCSCHEDULService : CheryRecurringJobOutPageController<SUPPLIER_PRO_CSCHEDUL, SUPPLIER_PRO_CSCHEDUL_DETAIL_DTO, SUPPLIER_PRO_CSCHEDUL_LOGS>
{
public CherySupplierProCSCHEDULService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_CSCHEDUL> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProCpsService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 过程控制项质量数据
/// </summary>
public class CherySupplierProCpsService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_CPS, SUPPLIER_PRO_CPS_DTO>
public class CherySupplierProCpsService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_CPS, SUPPLIER_PRO_CPS_DTO, SUPPLIER_PRO_CPS_LOGS>
{
public CherySupplierProCpsService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_CPS> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProDataService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 生产过程数据
/// </summary>
public class CherySupplierProDataService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_DATA, SUPPLIER_PRO_DATA_DTO>
public class CherySupplierProDataService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_DATA, SUPPLIER_PRO_DATA_DTO, SUPPLIER_PRO_DATA_LOGS>
{
public CherySupplierProDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_DATA> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProEnvironmentService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 环境业务数据
/// </summary>
public class CherySupplierProEnvironmentService : CheryRecurringJobInputPageController<SUPPLIER_PRO_ENVIRONMENT, SUPPLIER_PRO_ENVIRONMENT_DTO>
public class CherySupplierProEnvironmentService : CheryRecurringJobInputPageController<SUPPLIER_PRO_ENVIRONMENT, SUPPLIER_PRO_ENVIRONMENT_DTO, SUPPLIER_PRO_ENVIRONMENT_LOGS>
{
public CherySupplierProEnvironmentService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_ENVIRONMENT> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProFirstPassyieldService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 产品一次合格率
/// </summary>
public class CherySupplierProFirstPassyieldService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_FIRST_PASSYIELD, SUPPLIER_PRO_FIRST_PASSYIELD_DTO>
public class CherySupplierProFirstPassyieldService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_FIRST_PASSYIELD, SUPPLIER_PRO_FIRST_PASSYIELD_DTO, SUPPLIER_PRO_FIRST_PASSYIELD_LOGS>
{
public CherySupplierProFirstPassyieldService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_FIRST_PASSYIELD> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProFlawService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 缺陷业务数据
/// </summary>
public class CherySupplierProFlawService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_FLAW, SUPPLIER_PRO_FLAW_DTO>
public class CherySupplierProFlawService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_FLAW, SUPPLIER_PRO_FLAW_DTO, SUPPLIER_PRO_FLAW_LOGS>
{
public CherySupplierProFlawService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_FLAW> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProMaterialDataService.cs

@ -5,7 +5,7 @@ using TaskManager.EntityFramework;
namespace TaskManager.Controllers
{
public class CherySupplierProMaterialDataService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_MATERIAL_DATA, SUPPLIER_PRO_MATERIAL_DATA_DTO>
public class CherySupplierProMaterialDataService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_MATERIAL_DATA, SUPPLIER_PRO_MATERIAL_DATA_DTO, SUPPLIER_PRO_MATERIAL_DATA_LOGS>
{
public CherySupplierProMaterialDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_MATERIAL_DATA> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProMaterialStockService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 来料检验数据
/// </summary>
public class SupplierProMaterialStockService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_MATERIAL_STOCK, SUPPLIER_PRO_MATERIAL_STOCK_DTO>
public class SupplierProMaterialStockService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_MATERIAL_STOCK, SUPPLIER_PRO_MATERIAL_STOCK_DTO, SUPPLIER_PRO_MATERIAL_STOCK_LOGS>
{
public SupplierProMaterialStockService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_MATERIAL_STOCK> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProOeeAchievementRateService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 设备OEE达成率
/// </summary>
public class CherySupplierProOeeAchievementRateService : CheryRecurringJobInputPageController<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE, SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_DTO>
public class CherySupplierProOeeAchievementRateService : CheryRecurringJobInputPageController<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE, SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_DTO, SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_LOGS>
{
public CherySupplierProOeeAchievementRateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProOeeTimeDetailsService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// OEE时间明细
/// </summary>
public class CherySupplierProOeeTimeDetailsService : CheryRecurringJobInputPageController<SUPPLIER_PRO_OEE_TIME_DETAILS, SUPPLIER_PRO_OEE_TIME_DETAILS_DTO>
public class CherySupplierProOeeTimeDetailsService : CheryRecurringJobInputPageController<SUPPLIER_PRO_OEE_TIME_DETAILS, SUPPLIER_PRO_OEE_TIME_DETAILS_DTO, SUPPLIER_PRO_OEE_TIME_DETAILS_LOGS>
{
public CherySupplierProOeeTimeDetailsService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_OEE_TIME_DETAILS> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProPlanService.cs

@ -9,7 +9,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 整车月度生产计划
/// </summary>
public class SupplierProPlaningService : CheryRecurringJobOutPageController<SUPPLIER_PRO_PLANING, SUPPLIER_PRO_PLANING_DETIAL_DTO>
public class SupplierProPlaningService : CheryRecurringJobOutPageController<SUPPLIER_PRO_PLANING, SUPPLIER_PRO_PLANING_DETIAL_DTO, SUPPLIER_PRO_PLANING_LOGS>
{
public SupplierProPlaningService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_PLANING> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProProcessEquipmentService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 工艺装备
/// </summary>
public class CherySupplierProProcessEquipmentService : CheryRecurringJobInputPageController<SUPPLIER_PRO_PROCESS_EQUIPMENT, SUPPLIER_PRO_PROCESS_EQUIPMENT_DTO>
public class CherySupplierProProcessEquipmentService : CheryRecurringJobInputPageController<SUPPLIER_PRO_PROCESS_EQUIPMENT, SUPPLIER_PRO_PROCESS_EQUIPMENT_DTO, SUPPLIER_PRO_PROCESS_EQUIPMENT_LOGS>
{
public CherySupplierProProcessEquipmentService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_PROCESS_EQUIPMENT> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProProcessService.cs

@ -14,7 +14,7 @@ namespace Wood.Service.Controllers
/// <summary>
/// 工艺
/// </summary>
public class CherySupplierProProcessService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_PROCESS, SUPPLIER_PRO_PROCESS_DTO>
public class CherySupplierProProcessService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_PROCESS, SUPPLIER_PRO_PROCESS_DTO, SUPPLIER_PRO_PROCESS_LOGS>
{
public CherySupplierProProcessService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_PROCESS> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProSchedulingService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 排产数据
/// </summary>
public class CherySupplierProSchedulingService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_SCHEDULING, SUPPLIER_PRO_SCHEDULING_DTO>
public class CherySupplierProSchedulingService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_SCHEDULING, SUPPLIER_PRO_SCHEDULING_DTO, SUPPLIER_PRO_SCHEDULING_LOGS>
{
public CherySupplierProSchedulingService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_SCHEDULING> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs

@ -7,7 +7,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 工位一次合格率
/// </summary>
public class CherySupplierProStationFirstPassyieldService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_STATION_FIRST_PASSYIELD, SUPPLIER_PRO_STATION_FIRST_PASSYIELD_DTO>
public class CherySupplierProStationFirstPassyieldService : CheryRecurringJobInputPageExtendController<SUPPLIER_PRO_STATION_FIRST_PASSYIELD, SUPPLIER_PRO_STATION_FIRST_PASSYIELD_DTO, SUPPLIER_PRO_STATION_FIRST_PASSYIELD_LOGS>
{
public CherySupplierProStationFirstPassyieldService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_STATION_FIRST_PASSYIELD> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierProTSCHEDULService.cs

@ -9,7 +9,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 过涂装未过总装
/// </summary>
public class CherySupplierProTSCHEDULService : CheryRecurringJobOutPageController<SUPPLIER_PRO_TSCHEDUL, SUPPLIER_PRO_TSCHEDUL_DETAIL_DTO>
public class CherySupplierProTSCHEDULService : CheryRecurringJobOutPageController<SUPPLIER_PRO_TSCHEDUL, SUPPLIER_PRO_TSCHEDUL_DETAIL_DTO, SUPPLIER_PRO_TSCHEDUL_LOGS>
{
public CherySupplierProTSCHEDULService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_PRO_TSCHEDUL> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierReturnService.cs

@ -9,7 +9,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 退货单
/// </summary>
public class CherySupplierReturnService : CheryRecurringJobOutPageController<SUPPLIER_RETURN, SUPPLIER_RETURN_DETAIL_DTO>
public class CherySupplierReturnService : CheryRecurringJobOutPageController<SUPPLIER_RETURN, SUPPLIER_RETURN_DETAIL_DTO, SUPPLIER_RETURN_LOGS>
{
public CherySupplierReturnService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_RETURN> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierSaWeekService.cs

@ -8,7 +8,7 @@ namespace TaskManager.Controllers
/// <summary>
/// 计划协议
/// </summary>
public class CherySupplierSaWeekService : CheryRecurringJobOutPageController<SUPPLIER_SA_WEEK, SUPPLIER_SA_WEEK_DETAIL_DTO>
public class CherySupplierSaWeekService : CheryRecurringJobOutPageController<SUPPLIER_SA_WEEK, SUPPLIER_SA_WEEK_DETAIL_DTO, SUPPLIER_SA_WEEK_LOGS>
{
public CherySupplierSaWeekService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_SA_WEEK> repository) : base(httpClient, jobDbContext, log, repository)
{

2
API/Wood.Service/Controllers/CherySupplierSinvDataService.cs

@ -6,7 +6,7 @@ using TaskManager.EntityFramework;
namespace TaskManager.Controllers
{
public class CherySupplierSinvDataService : CheryRecurringJobInputPageController<SUPPLIER_SINV_DATA, SUPPLIER_SINV_DATA_DTO>
public class CherySupplierSinvDataService : CheryRecurringJobInputPageController<SUPPLIER_SINV_DATA, SUPPLIER_SINV_DATA_DTO, SUPPLIER_SINV_DATA_LOGS>
{
public CherySupplierSinvDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository<SUPPLIER_SINV_DATA> repository) : base(httpClient, jobDbContext, log, repository)
{

296
API/Wood.Service/Controllers/LogConsumerService.cs

@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Builder;
using Hangfire;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity.Data;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
@ -6,18 +8,26 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using Omu.ValueInjecter;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Http.Json;
using System.Security.Policy;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Channels;
using System.Threading.Tasks;
using TaskManager.Contracts.Dtos;
using TaskManager.Entity;
using TaskManager.EntityFramework;
using Wood.Entity;
using Wood.Service.Controllers;
using Wood.Service.SystemManage;
namespace TaskManager.Controllers
@ -73,28 +83,251 @@ namespace TaskManager.Controllers
using var scope = _serviceProvider.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<JobDbContext>();
List<TaskLog> logsToSave = new List<TaskLog>();
foreach (var log in logs)
{
if (!string.IsNullOrEmpty(log.Remark))
if (!string.IsNullOrEmpty(log.Remark) && log.Type=="请求")
{
log.Path = WriteLogToFile(log.Remark);
}
log.Remark = string.Empty;
logsToSave.Add(log);
}
//foreach (var log in logsToSave)
//{
// switch (log.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":
// var planlingResult1 = Response<SUPPLIER_PRO_PLANING, SUPPLIER_PRO_PLANING_DETIAL_DTO>(log.Remark, log.Version,log.TaskId,db);
// break;
// case "M+6月物料需求计划1":
// var monthResult = Response<SUPPLIER_MRP_MONTH, SUPPLIER_MRP_MONTH_DETAIL_DTO>(log.Remark, log.Version,log.TaskId,db);
// break;
// case "整车月度生产计划2":
// var planlingResult2=Response<SUPPLIER_PRO_PLANING, SUPPLIER_PRO_PLANING_DETIAL_DTO>(log.Remark,log.Version, log.TaskId, db);
// break;
// case "M+6月物料需求计划2":
// var monthResult2 = Response<SUPPLIER_MRP_MONTH, SUPPLIER_MRP_MONTH_DETAIL_DTO>(log.Remark, log.Version,log.TaskId,db);
// break;
// case "日物料需求计划":
// var dateResult2 = Response<SUPPLIER_MRP_DATE, SUPPLIER_MRP_DATE_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "计划协议":
// var weekResult = Response<SUPPLIER_SA_WEEK, SUPPLIER_SA_WEEK_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "采购订单":
// var poResult = Response<SUPPLIER_PO, SUPPLIER_PO_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "过焊装未过总装":
// var GHResult = Response<SUPPLIER_PRO_HSCHEDUL, SUPPLIER_PO_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "过涂装未过总装":
// var TSResult = Response<SUPPLIER_PRO_TSCHEDUL, SUPPLIER_PRO_TSCHEDUL_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "排序供货":
// var CSResult = Response<SUPPLIER_PRO_CSCHEDUL, SUPPLIER_PRO_CSCHEDUL_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "看板配送单":
// var DELResult = Response<SUPPLIER_DEL_STATE, SUPPLIER_DEL_STATE_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "退货单":
// var ReturnResult = Response<SUPPLIER_RETURN, SUPPLIER_RETURN_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "奇瑞RDC共享库存":
// var InvDataResult = Response<SUPPLIER_INV_DATA, SUPPLIER_INV_DATA_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "日MRP状态监控":
// var MrpDateResult = Response<SUPPLIER_MRP_DATE, SUPPLIER_MRP_DATE_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// break;
// case "日MRP预警推移":
// var WarningResult = Response<SUPPLIER_MRP_WARNING, SUPPLIER_MRP_WARNING_DETAIL_DTO>(log.Remark, log.Version, log.TaskId, db);
// 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;
// }
//}
await db.TaskLogs.AddRangeAsync(logsToSave, stoppingToken);
await db.SaveChangesAsync(stoppingToken);
_logger.LogInformation($"已写入 {logs.Count} 条日志");
}
}
@ -150,9 +383,50 @@ namespace TaskManager.Controllers
return null;
}
}
private List<T> Response<T,TDTO>(string jsonContent,string version,Guid taskid,JobDbContext dbContext)
where T:CherryReadBaseEntity,new() where TDTO:class,new()
{
List<T> result = new List<T>();
try
{
// 解析字符串为DateTime对象
DateTime date = DateTime.ParseExact(version, "yyyyMMdd", null);
// 格式化为目标字符串
string formattedDate = date.ToString("yyyy-MM-dd");
if (!string.IsNullOrEmpty(jsonContent))
{
var options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Converters = {
new JsonStringEnumConverter(), // 枚举转换
new CustomDateTimeConverter("yyyy-MM-dd HH:mm:ss","yyyy-MM-dd") // 日期转换
}
};
var res = JsonSerializer.Deserialize<PagedResponse<TDTO>>(jsonContent, options);
var rows = res.Data.Rows;
List<T> entities = new List<T>();
foreach (var itm in res.Data.Rows)
{
T entity = new T();
entity.InjectFrom(itm);
entity.CreationTime = DateTime.Now;
entity.RequestDate = formattedDate;
entity.TaskId = taskid;
result.Add(entity);
}
dbContext.BulkMerge(result,options=>options.ColumnPrimaryKeyExpression=x=>new { x.Id, x.RequestDate });
}
}
catch (Exception ex)
{
_logger.LogError(ex, "JSON字符串解析失败:jsonContent");
}
return result;
}
}

27
API/Wood.Service/Controllers/LogController.cs

@ -96,6 +96,33 @@ namespace TaskManager.Controllers
return true; // 日志已入队,视为成功
}
[NonAction]
//[HttpGet("AddError")]
public async Task<bool> AddError(string message, string taskname, Guid taskid, string version,string json)
{
var log = new TaskLog
{
Info = message,
Type = "错误",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
Version = version?.ToString(),
Remark = json
};
EnqueueLog(log);
//_context.TaskLogs.Add(log);
//var result = await _context.SaveChangesAsync();
return true; // 日志已入队,视为成功
}
[NonAction]
//[HttpGet("AddInfo")]
public async Task<bool> AddInfo(string message, string taskname, Guid taskid, string version)

4
API/Wood.Service/Controllers/RecurringJobBaseController.cs

@ -97,7 +97,7 @@ namespace TaskManager.Controllers
catch (HttpRequestException ex)
{
await _logger.AddError(ex.Message, this.TaskName, taskid, version);
//error = ex.Message;
return string.Empty;
}
@ -115,7 +115,7 @@ namespace TaskManager.Controllers
//string jsonContent = System.IO.File.ReadAllText("M+6月物料需求计划1.json");
//string jsonContent = System.IO.File.ReadAllText("过涂装未过总装.json");
//return jsonContent;
// return jsonContent;

Loading…
Cancel
Save