diff --git a/API/Wood.Service/Controllers/CheryDataMaintenanceService.cs b/API/Wood.Service/Controllers/CheryDataMaintenanceService.cs index 88f15a0..e554b4f 100644 --- a/API/Wood.Service/Controllers/CheryDataMaintenanceService.cs +++ b/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; + + + + } diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs index ef37dce..65d20a4 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs @@ -33,9 +33,11 @@ using static Dapper.SqlMapper; namespace TaskManager.Controllers { - public class CheryRecurringJobInputPageController : RecurringJobBaseController + public class CheryRecurringJobInputPageController : RecurringJobBaseController where T : BaseEntity ,new() where TDTO:class,new() + where TLOGS:BaseEntity,new() + { protected readonly IRepository _repository; public CheryRecurringJobInputPageController(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository 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) { diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs index c2b5bd7..36fbb8c 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs @@ -34,7 +34,7 @@ using static Dapper.SqlMapper; namespace TaskManager.Controllers { - public class CheryRecurringJobInputPageExtendController : RecurringJobBaseController + public class CheryRecurringJobInputPageExtendController : RecurringJobBaseController where T : BaseEntity ,new() where TDTO:class,new() { diff --git a/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs index 6f91ad9..43f42ac 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs @@ -33,7 +33,11 @@ namespace TaskManager.Controllers { //[ApiController] //[Route("api/[controller]")] - public class CheryRecurringJobOutPageController : RecurringJobBaseController where T : CherryReadBaseEntity, new() where ToutputDetial : CherryReadBaseEntityDto + public class CheryRecurringJobOutPageController : + RecurringJobBaseController where T : CherryReadBaseEntity, new() + where ToutputDetial : CherryReadBaseEntityDto,new() + where TLOGS : CherryReadBaseEntity, new() + { protected readonly IRepository _repository; public CheryRecurringJobOutPageController(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository 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 { - await _jobDbContext.BulkMergeAsync(list, options => { options.ColumnPrimaryKeyExpression = p => p.Id; }); - //_jobDbContext.BulkMerge(list, options => { - // options.ColumnPrimaryKeyExpression = p => p.Id; + List logs = new List(); + + foreach (var itm in list) + { + TLOGS entity = new TLOGS(); + entity.InjectFrom(itm); + } + + await _jobDbContext.BulkMergeAsync(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 diff --git a/API/Wood.Service/Controllers/CherySupplierBomService.cs b/API/Wood.Service/Controllers/CherySupplierBomService.cs index 5be99a9..2eac2c0 100644 --- a/API/Wood.Service/Controllers/CherySupplierBomService.cs +++ b/API/Wood.Service/Controllers/CherySupplierBomService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// BOM主数据 /// - public class CherySupplierBomService : CheryRecurringJobInputPageExtendController + public class CherySupplierBomService : CheryRecurringJobInputPageExtendController { public CherySupplierBomService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierConDateService.cs b/API/Wood.Service/Controllers/CherySupplierConDateService.cs index ebc0c1b..c0155f8 100644 --- a/API/Wood.Service/Controllers/CherySupplierConDateService.cs +++ b/API/Wood.Service/Controllers/CherySupplierConDateService.cs @@ -11,18 +11,18 @@ namespace TaskManager.Controllers /// /// 日物料需求计划风险确认 /// - public class CherySupplierConDateService : CheryRecurringJobInputPageController + public class CherySupplierConDateService : CheryRecurringJobInputPageController { public CherySupplierConDateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { } [HttpGet] - public async Task GetDetialByID(String id) + public async Task 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; diff --git a/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs b/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs index 12ba3c6..29cd918 100644 --- a/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs +++ b/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs @@ -14,7 +14,7 @@ namespace TaskManager.Controllers /// /// M+6月物料需求计划风险确认 /// - public class CherySupplierConMmrpService : CheryRecurringJobInputPageController + public class CherySupplierConMmrpService : CheryRecurringJobInputPageController { public CherySupplierConMmrpService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierConPoService.cs b/API/Wood.Service/Controllers/CherySupplierConPoService.cs index a3f54f4..eea35f2 100644 --- a/API/Wood.Service/Controllers/CherySupplierConPoService.cs +++ b/API/Wood.Service/Controllers/CherySupplierConPoService.cs @@ -11,18 +11,18 @@ namespace TaskManager.Controllers /// /// 采购订单风险确认 /// - public class CherySupplierConPoService : CheryRecurringJobInputPageController + public class CherySupplierConPoService : CheryRecurringJobInputPageController { public CherySupplierConPoService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { } [HttpGet] - public async Task GetDetialByID(String id) + public async Task 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; diff --git a/API/Wood.Service/Controllers/CherySupplierDelStateService.cs b/API/Wood.Service/Controllers/CherySupplierDelStateService.cs index 4b38ef9..e47aeac 100644 --- a/API/Wood.Service/Controllers/CherySupplierDelStateService.cs +++ b/API/Wood.Service/Controllers/CherySupplierDelStateService.cs @@ -9,7 +9,7 @@ namespace TaskManager.Controllers /// /// 看板送货单 /// - public class CherySupplierDelStateService : CheryRecurringJobOutPageController + public class CherySupplierDelStateService : CheryRecurringJobOutPageController { public CherySupplierDelStateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierEmployeeService.cs b/API/Wood.Service/Controllers/CherySupplierEmployeeService.cs index d1ebcb8..694448c 100644 --- a/API/Wood.Service/Controllers/CherySupplierEmployeeService.cs +++ b/API/Wood.Service/Controllers/CherySupplierEmployeeService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 人员资质信息 /// - public class CherySupplierEmployeeService : CheryRecurringJobInputPageController + public class CherySupplierEmployeeService : CheryRecurringJobInputPageController { public CherySupplierEmployeeService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierInfoService.cs b/API/Wood.Service/Controllers/CherySupplierInfoService.cs index 79f10de..2963d4d 100644 --- a/API/Wood.Service/Controllers/CherySupplierInfoService.cs +++ b/API/Wood.Service/Controllers/CherySupplierInfoService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 供应商基础信息 /// - public class CherySupplierInfoService : CheryRecurringJobInputPageController + public class CherySupplierInfoService : CheryRecurringJobInputPageController { public CherySupplierInfoService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierInvDataService.cs b/API/Wood.Service/Controllers/CherySupplierInvDataService.cs index 4697e70..3ede499 100644 --- a/API/Wood.Service/Controllers/CherySupplierInvDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierInvDataService.cs @@ -10,7 +10,7 @@ namespace TaskManager.Controllers /// /// 奇瑞RDC共享库存 /// - public class SupplierInvDataService : CheryRecurringJobOutPageController + public class SupplierInvDataService : CheryRecurringJobOutPageController { public SupplierInvDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierMrpDataService.cs b/API/Wood.Service/Controllers/CherySupplierMrpDataService.cs index 4264333..ba8344d 100644 --- a/API/Wood.Service/Controllers/CherySupplierMrpDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierMrpDataService.cs @@ -12,7 +12,7 @@ namespace TaskManager.Controllers /// /// 日物料需求计划 /// - public class CherySupplierMrpDataService : CheryRecurringJobOutPageController + public class CherySupplierMrpDataService : CheryRecurringJobOutPageController { public CherySupplierMrpDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierMrpMonthService.cs b/API/Wood.Service/Controllers/CherySupplierMrpMonthService.cs index 4579a5b..c240903 100644 --- a/API/Wood.Service/Controllers/CherySupplierMrpMonthService.cs +++ b/API/Wood.Service/Controllers/CherySupplierMrpMonthService.cs @@ -18,7 +18,7 @@ namespace TaskManager.Controllers /// /// M+6月物料需求计划风险 /// - public class CherySupplierMrpMonthService : CheryRecurringJobOutPageController + public class CherySupplierMrpMonthService : CheryRecurringJobOutPageController { public CherySupplierMrpMonthService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierMrpService.cs b/API/Wood.Service/Controllers/CherySupplierMrpService.cs index 5d1c1c2..665da2c 100644 --- a/API/Wood.Service/Controllers/CherySupplierMrpService.cs +++ b/API/Wood.Service/Controllers/CherySupplierMrpService.cs @@ -10,7 +10,7 @@ namespace TaskManager.Controllers /// /// 日MRP状态监控 /// - public class CherySupplierMrpService : CheryRecurringJobOutPageController + public class CherySupplierMrpService : CheryRecurringJobOutPageController { public CherySupplierMrpService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierMrpWarningService.cs b/API/Wood.Service/Controllers/CherySupplierMrpWarningService.cs index 19fe162..5f47156 100644 --- a/API/Wood.Service/Controllers/CherySupplierMrpWarningService.cs +++ b/API/Wood.Service/Controllers/CherySupplierMrpWarningService.cs @@ -11,7 +11,7 @@ namespace TaskManager.Controllers /// /// 日MRP预警推移 /// - public class CherySupplierMrpWarningService : CheryRecurringJobOutPageController + public class CherySupplierMrpWarningService : CheryRecurringJobOutPageController { public CherySupplierMrpWarningService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierPoService.cs b/API/Wood.Service/Controllers/CherySupplierPoService.cs index bfde997..485a334 100644 --- a/API/Wood.Service/Controllers/CherySupplierPoService.cs +++ b/API/Wood.Service/Controllers/CherySupplierPoService.cs @@ -11,7 +11,7 @@ namespace TaskManager.Controllers /// /// 采购订单 /// - public class CherySupplierPoService : CheryRecurringJobOutPageController + public class CherySupplierPoService : CheryRecurringJobOutPageController { public CherySupplierPoService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierPorHSCHEDULService.cs b/API/Wood.Service/Controllers/CherySupplierPorHSCHEDULService.cs index 80a1461..b6aa3cd 100644 --- a/API/Wood.Service/Controllers/CherySupplierPorHSCHEDULService.cs +++ b/API/Wood.Service/Controllers/CherySupplierPorHSCHEDULService.cs @@ -9,7 +9,7 @@ namespace TaskManager.Controllers /// /// 过焊装未过总装 /// - public class CherySupplierPorHSCHEDULService : CheryRecurringJobOutPageController + public class CherySupplierPorHSCHEDULService : CheryRecurringJobOutPageController { public CherySupplierPorHSCHEDULService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs b/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs index a4f440e..a628e0f 100644 --- a/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 附件类数据 /// - public class CherySupplierProAttachmentDataService : CheryRecurringJobInputPageController + public class CherySupplierProAttachmentDataService : CheryRecurringJobInputPageController { public CherySupplierProAttachmentDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProCSCHEDULService.cs b/API/Wood.Service/Controllers/CherySupplierProCSCHEDULService.cs index c7b9b9e..ee2c7de 100644 --- a/API/Wood.Service/Controllers/CherySupplierProCSCHEDULService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProCSCHEDULService.cs @@ -9,7 +9,7 @@ namespace TaskManager.Controllers /// /// 排序供货 /// - public class CherySupplierProCSCHEDULService : CheryRecurringJobOutPageController + public class CherySupplierProCSCHEDULService : CheryRecurringJobOutPageController { public CherySupplierProCSCHEDULService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProCpsService.cs b/API/Wood.Service/Controllers/CherySupplierProCpsService.cs index 7d67265..5438396 100644 --- a/API/Wood.Service/Controllers/CherySupplierProCpsService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProCpsService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 过程控制项质量数据 /// - public class CherySupplierProCpsService : CheryRecurringJobInputPageExtendController + public class CherySupplierProCpsService : CheryRecurringJobInputPageExtendController { public CherySupplierProCpsService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProDataService.cs b/API/Wood.Service/Controllers/CherySupplierProDataService.cs index 0387388..ffd05ad 100644 --- a/API/Wood.Service/Controllers/CherySupplierProDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProDataService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 生产过程数据 /// - public class CherySupplierProDataService : CheryRecurringJobInputPageExtendController + public class CherySupplierProDataService : CheryRecurringJobInputPageExtendController { public CherySupplierProDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProEnvironmentService.cs b/API/Wood.Service/Controllers/CherySupplierProEnvironmentService.cs index dba9efd..f4e16ff 100644 --- a/API/Wood.Service/Controllers/CherySupplierProEnvironmentService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProEnvironmentService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 环境业务数据 /// - public class CherySupplierProEnvironmentService : CheryRecurringJobInputPageController + public class CherySupplierProEnvironmentService : CheryRecurringJobInputPageController { public CherySupplierProEnvironmentService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProFirstPassyieldService.cs b/API/Wood.Service/Controllers/CherySupplierProFirstPassyieldService.cs index c9b5488..fd517de 100644 --- a/API/Wood.Service/Controllers/CherySupplierProFirstPassyieldService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProFirstPassyieldService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 产品一次合格率 /// - public class CherySupplierProFirstPassyieldService : CheryRecurringJobInputPageExtendController + public class CherySupplierProFirstPassyieldService : CheryRecurringJobInputPageExtendController { public CherySupplierProFirstPassyieldService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProFlawService.cs b/API/Wood.Service/Controllers/CherySupplierProFlawService.cs index 78938d4..42e57db 100644 --- a/API/Wood.Service/Controllers/CherySupplierProFlawService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProFlawService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 缺陷业务数据 /// - public class CherySupplierProFlawService : CheryRecurringJobInputPageExtendController + public class CherySupplierProFlawService : CheryRecurringJobInputPageExtendController { public CherySupplierProFlawService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProMaterialDataService.cs b/API/Wood.Service/Controllers/CherySupplierProMaterialDataService.cs index 0a7b36a..e50a82f 100644 --- a/API/Wood.Service/Controllers/CherySupplierProMaterialDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProMaterialDataService.cs @@ -5,7 +5,7 @@ using TaskManager.EntityFramework; namespace TaskManager.Controllers { - public class CherySupplierProMaterialDataService : CheryRecurringJobInputPageExtendController + public class CherySupplierProMaterialDataService : CheryRecurringJobInputPageExtendController { public CherySupplierProMaterialDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProMaterialStockService.cs b/API/Wood.Service/Controllers/CherySupplierProMaterialStockService.cs index cdba5f1..12fde2f 100644 --- a/API/Wood.Service/Controllers/CherySupplierProMaterialStockService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProMaterialStockService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 来料检验数据 /// - public class SupplierProMaterialStockService : CheryRecurringJobInputPageExtendController + public class SupplierProMaterialStockService : CheryRecurringJobInputPageExtendController { public SupplierProMaterialStockService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProOeeAchievementRateService.cs b/API/Wood.Service/Controllers/CherySupplierProOeeAchievementRateService.cs index f75e309..71281a1 100644 --- a/API/Wood.Service/Controllers/CherySupplierProOeeAchievementRateService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProOeeAchievementRateService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 设备OEE达成率 /// - public class CherySupplierProOeeAchievementRateService : CheryRecurringJobInputPageController + public class CherySupplierProOeeAchievementRateService : CheryRecurringJobInputPageController { public CherySupplierProOeeAchievementRateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProOeeTimeDetailsService.cs b/API/Wood.Service/Controllers/CherySupplierProOeeTimeDetailsService.cs index e218adf..1c78994 100644 --- a/API/Wood.Service/Controllers/CherySupplierProOeeTimeDetailsService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProOeeTimeDetailsService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// OEE时间明细 /// - public class CherySupplierProOeeTimeDetailsService : CheryRecurringJobInputPageController + public class CherySupplierProOeeTimeDetailsService : CheryRecurringJobInputPageController { public CherySupplierProOeeTimeDetailsService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProPlanService.cs b/API/Wood.Service/Controllers/CherySupplierProPlanService.cs index 1ad091a..b34f061 100644 --- a/API/Wood.Service/Controllers/CherySupplierProPlanService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProPlanService.cs @@ -9,7 +9,7 @@ namespace TaskManager.Controllers /// /// 整车月度生产计划 /// - public class SupplierProPlaningService : CheryRecurringJobOutPageController + public class SupplierProPlaningService : CheryRecurringJobOutPageController { public SupplierProPlaningService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProProcessEquipmentService.cs b/API/Wood.Service/Controllers/CherySupplierProProcessEquipmentService.cs index de0e6e0..505fdb9 100644 --- a/API/Wood.Service/Controllers/CherySupplierProProcessEquipmentService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProProcessEquipmentService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 工艺装备 /// - public class CherySupplierProProcessEquipmentService : CheryRecurringJobInputPageController + public class CherySupplierProProcessEquipmentService : CheryRecurringJobInputPageController { public CherySupplierProProcessEquipmentService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProProcessService.cs b/API/Wood.Service/Controllers/CherySupplierProProcessService.cs index 2986a1b..c2d85eb 100644 --- a/API/Wood.Service/Controllers/CherySupplierProProcessService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProProcessService.cs @@ -14,7 +14,7 @@ namespace Wood.Service.Controllers /// /// 工艺 /// - public class CherySupplierProProcessService : CheryRecurringJobInputPageExtendController + public class CherySupplierProProcessService : CheryRecurringJobInputPageExtendController { public CherySupplierProProcessService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProSchedulingService.cs b/API/Wood.Service/Controllers/CherySupplierProSchedulingService.cs index 8bd8941..21b4c2e 100644 --- a/API/Wood.Service/Controllers/CherySupplierProSchedulingService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProSchedulingService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 排产数据 /// - public class CherySupplierProSchedulingService : CheryRecurringJobInputPageExtendController + public class CherySupplierProSchedulingService : CheryRecurringJobInputPageExtendController { public CherySupplierProSchedulingService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs b/API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs index cab8091..f45ea2a 100644 --- a/API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs @@ -7,7 +7,7 @@ namespace TaskManager.Controllers /// /// 工位一次合格率 /// - public class CherySupplierProStationFirstPassyieldService : CheryRecurringJobInputPageExtendController + public class CherySupplierProStationFirstPassyieldService : CheryRecurringJobInputPageExtendController { public CherySupplierProStationFirstPassyieldService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierProTSCHEDULService.cs b/API/Wood.Service/Controllers/CherySupplierProTSCHEDULService.cs index 69465e9..af20a0b 100644 --- a/API/Wood.Service/Controllers/CherySupplierProTSCHEDULService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProTSCHEDULService.cs @@ -9,7 +9,7 @@ namespace TaskManager.Controllers /// /// 过涂装未过总装 /// - public class CherySupplierProTSCHEDULService : CheryRecurringJobOutPageController + public class CherySupplierProTSCHEDULService : CheryRecurringJobOutPageController { public CherySupplierProTSCHEDULService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierReturnService.cs b/API/Wood.Service/Controllers/CherySupplierReturnService.cs index 3e0d26e..2dd86cc 100644 --- a/API/Wood.Service/Controllers/CherySupplierReturnService.cs +++ b/API/Wood.Service/Controllers/CherySupplierReturnService.cs @@ -9,7 +9,7 @@ namespace TaskManager.Controllers /// /// 退货单 /// - public class CherySupplierReturnService : CheryRecurringJobOutPageController + public class CherySupplierReturnService : CheryRecurringJobOutPageController { public CherySupplierReturnService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierSaWeekService.cs b/API/Wood.Service/Controllers/CherySupplierSaWeekService.cs index 4bc4515..4e830f8 100644 --- a/API/Wood.Service/Controllers/CherySupplierSaWeekService.cs +++ b/API/Wood.Service/Controllers/CherySupplierSaWeekService.cs @@ -8,7 +8,7 @@ namespace TaskManager.Controllers /// /// 计划协议 /// - public class CherySupplierSaWeekService : CheryRecurringJobOutPageController + public class CherySupplierSaWeekService : CheryRecurringJobOutPageController { public CherySupplierSaWeekService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/CherySupplierSinvDataService.cs b/API/Wood.Service/Controllers/CherySupplierSinvDataService.cs index 4a32a8d..5890169 100644 --- a/API/Wood.Service/Controllers/CherySupplierSinvDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierSinvDataService.cs @@ -6,7 +6,7 @@ using TaskManager.EntityFramework; namespace TaskManager.Controllers { - public class CherySupplierSinvDataService : CheryRecurringJobInputPageController + public class CherySupplierSinvDataService : CheryRecurringJobInputPageController { public CherySupplierSinvDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { diff --git a/API/Wood.Service/Controllers/LogConsumerService.cs b/API/Wood.Service/Controllers/LogConsumerService.cs index d77aa15..6b82f7c 100644 --- a/API/Wood.Service/Controllers/LogConsumerService.cs +++ b/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(); - List logsToSave = new List(); 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( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "排产数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "供应商基础信息": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "人员资质信息": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "BOM主数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "过程控制项质量数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "生产过程数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "产品一次合格率": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "工位一次合格率": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "缺陷业务数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "环境业务数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "设备OEE达成率": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "OEE时间明细": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "物料主数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "附件类数据": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "工艺装备": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "工艺": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + + // case "整车月度生产计划1": + // var planlingResult1 = Response(log.Remark, log.Version,log.TaskId,db); + // break; + // case "M+6月物料需求计划1": + // var monthResult = Response(log.Remark, log.Version,log.TaskId,db); + // break; + // case "整车月度生产计划2": + // var planlingResult2=Response(log.Remark,log.Version, log.TaskId, db); + // break; + // case "M+6月物料需求计划2": + // var monthResult2 = Response(log.Remark, log.Version,log.TaskId,db); + // break; + // case "日物料需求计划": + // var dateResult2 = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "计划协议": + // var weekResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "采购订单": + // var poResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "过焊装未过总装": + // var GHResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "过涂装未过总装": + // var TSResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "排序供货": + // var CSResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "看板配送单": + // var DELResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "退货单": + // var ReturnResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "奇瑞RDC共享库存": + // var InvDataResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "日MRP状态监控": + // var MrpDateResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "日MRP预警推移": + // var WarningResult = Response(log.Remark, log.Version, log.TaskId, db); + // break; + // case "M+6月物料需求计划风险确认": + + + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "日物料需求计划风险确认": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "采购订单风险确认": + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "供应商共享库存-上午": + + // //RecurringJob.AddOrUpdate( + // // task.TaskName, + // // x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client, pagesize), + // // task.Corn, + // // TimeZoneInfo.Local + // //); + // break; + // case "供应商共享库存-晚上": + // //RecurringJob.AddOrUpdate( + // // 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 Response(string jsonContent,string version,Guid taskid,JobDbContext dbContext) + where T:CherryReadBaseEntity,new() where TDTO:class,new() + { + List result = new List(); + 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>(jsonContent, options); + var rows = res.Data.Rows; + List entities = new List(); + 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; + } } diff --git a/API/Wood.Service/Controllers/LogController.cs b/API/Wood.Service/Controllers/LogController.cs index 8b2f903..8d45eff 100644 --- a/API/Wood.Service/Controllers/LogController.cs +++ b/API/Wood.Service/Controllers/LogController.cs @@ -96,6 +96,33 @@ namespace TaskManager.Controllers return true; // 日志已入队,视为成功 } + + [NonAction] + + + //[HttpGet("AddError")] + public async Task 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 AddInfo(string message, string taskname, Guid taskid, string version) diff --git a/API/Wood.Service/Controllers/RecurringJobBaseController.cs b/API/Wood.Service/Controllers/RecurringJobBaseController.cs index f84372c..0f0cab5 100644 --- a/API/Wood.Service/Controllers/RecurringJobBaseController.cs +++ b/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;