From dda6c55d604f673588da953ce67a74b75c3f0657 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com>
Date: Wed, 18 Jun 2025 16:03:50 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
API/TaskManager.Contracts/Dtos/Dtos.cs | 8 +
API/TaskManager.Entity/Entity.cs | 4 +-
API/Wood.Service/Commons/CommonService.cs | 3 +
.../CheryRecurringJobInputPageController.cs | 41 ++-
...ryRecurringJobInputPageExtendController.cs | 84 ++++-
.../CheryRecurringJobOutPageController.cs | 35 +-
.../Controllers/CustomLogService.cs | 321 ++++++++++--------
.../Controllers/LogConsumerService.cs | 11 +-
API/Wood.Service/Controllers/LogController.cs | 4 +-
.../Controllers/RecurringJobBaseController.cs | 27 +-
.../Controllers/TaskConifgureController.cs | 1 +
11 files changed, 357 insertions(+), 182 deletions(-)
diff --git a/API/TaskManager.Contracts/Dtos/Dtos.cs b/API/TaskManager.Contracts/Dtos/Dtos.cs
index b6cb91a..e09392a 100644
--- a/API/TaskManager.Contracts/Dtos/Dtos.cs
+++ b/API/TaskManager.Contracts/Dtos/Dtos.cs
@@ -79,6 +79,14 @@ namespace TaskManager.Contracts.Dtos
public bool IsForce { get; set; } = false;
}
+
+
+
+
+
+
+
+
#region 整车月度生产计划Dto
public class SUPPLIER_PRO_PLANING_DTO : PAGE_OUT_DTO
{
diff --git a/API/TaskManager.Entity/Entity.cs b/API/TaskManager.Entity/Entity.cs
index 35da874..105b3f5 100644
--- a/API/TaskManager.Entity/Entity.cs
+++ b/API/TaskManager.Entity/Entity.cs
@@ -177,12 +177,12 @@ namespace TaskManager.Entity
///
/// 任务名称
///
- [MaxLength(30)]
+ [MaxLength(50)]
[ExporterHeader(DisplayName = "任务名")]
public string? TaskName { get; set; }
- [MaxLength(30)]
+ [MaxLength(50)]
[ExporterHeader(DisplayName = "业务模块")]
public string? Module { get; set; }
///
diff --git a/API/Wood.Service/Commons/CommonService.cs b/API/Wood.Service/Commons/CommonService.cs
index 58e14a8..5b2c11b 100644
--- a/API/Wood.Service/Commons/CommonService.cs
+++ b/API/Wood.Service/Commons/CommonService.cs
@@ -40,6 +40,9 @@ namespace Wood.Service
throw new Exception($"任务配置表没有'{taskName}'任务");
}
+
+
+
TaskSub taskSub = new TaskSub();
taskSub.TableName = taskConfigureObj.TableName; //关联的数据表名称(如:订单表、用户表等,可为空)
taskSub.TaskName = taskConfigureObj.TaskName; //任务名称(用于业务层面标识任务,如:数据同步任务、报表生成任务)
diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
index 309f5ef..2644010 100644
--- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
+++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
@@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using Omu.ValueInjecter;
using SkiaSharp;
using System.ComponentModel.DataAnnotations;
@@ -68,6 +69,9 @@ namespace TaskManager.Controllers
Client = client;
CPageSize = first.PageSize;
await SyncTaskSubTable(TaskName, Client);
+
+ //BackgroundJob.Schedule(() => SyncTaskSubTable(TaskName, Client),TimeSpan.FromSeconds(2));
+
// var jobId1 = BackgroundJob.Enqueue(taskName+Guid.NewGuid().ToString("N"),() => SyncTaskSubTable(TaskName, Client));
}
catch (Exception ex) {
@@ -245,7 +249,42 @@ namespace TaskManager.Controllers
{
sub.FailedCount = i * pageSize;
sub.FailedInfo = $"第 {i} 页奇瑞数据保存失败 {result.message}。";
- await _logger.AddError($"第 {i} 页奇瑞数据保存失败 {result.message}。", TaskName, sub.TaskId, version);
+
+ string inputjson = string.Empty;
+ if (TaskName == "日物料需求计划风险确认")//格式特殊处理
+ {
+ inputjson = JsonSerializer.Serialize(pagedRequest,
+ new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ Converters =
+ {
+ new DecimalTrimConverter(),
+ new InputCustomDateTimeConverter(),
+ new InputCustomNullableDateTimeConverter()
+ },
+ WriteIndented = false,// 可选,用于格式化输出
+ Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All)
+ }
+ );
+ }
+ else
+ {
+ inputjson = JsonSerializer.Serialize(pagedRequest,
+ new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ Converters =
+ {
+ new DecimalTrimConverter(),
+ },
+ WriteIndented = false,// 可选,用于格式化输出
+ Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All)
+ }
+ );
+ }
+
+ await _logger.AddError($"第 {i} 页奇瑞数据保存失败 {result.message}。", TaskName, sub.TaskId, version,inputjson);
}
}
}
diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs
index f68c4c8..38e257e 100644
--- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs
+++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs
@@ -69,6 +69,7 @@ namespace TaskManager.Controllers
//await SyncTaskSubTable(TaskName, Client);
//var jobId1 = BackgroundJob.Enqueue((()=>SyncTaskSubTable(TaskName,Client)));
await SyncTaskSubTable(TaskName, Client);
+ //BackgroundJob.Schedule(() =>(CheryRecurringJobInputPageExtendController<,,>).SyncTaskSubTable(TaskName, Client), TimeSpan.FromSeconds(2));
}
catch (Exception ex)
@@ -183,14 +184,17 @@ namespace TaskManager.Controllers
return;
}
var tableName = task.TableName;
- var total =await _jobDbContext.Database.ExecuteSqlAsync($"select count(1) from {tableName} where writeState=0 and readState=1 ");
+ string str = $"select count(1) count1 from {tableName} where writeState=0 and readState=1 ";
+ var query = _jobDbContext.Database.GetDbConnection().Query(str);
+ var total = query.FirstOrDefault();
+ var version = DateTime.Now.ToString("yyyyMMdd");
var pageSize = CPageSize;
int totalPages = (int)Math.Ceiling((double)total / pageSize);
for (int i= 1; i <= totalPages; i++)
{
- var records = _jobDbContext.Database.SqlQuery($"Select TOP {pageSize} * from {tableName} where writeState=0 and readerstate=1 order by uid");
+ var records = _jobDbContext.Database.GetDbConnection().Query($"Select TOP {pageSize} * from {tableName} where writeState=0 and readstate=1 order by uid");
if (records.Any())
{
@@ -215,7 +219,7 @@ namespace TaskManager.Controllers
itm.WriteState = true;
itm.TaskId = taskId;
}
- var result = await PostPageAsync(pagedRequest, taskId, DateTime.Now.ToString("yyyyMMdd"));
+ var result = await PostPageAsync(pagedRequest, taskId, version);
if (result.code == 200)
{
using (var transaction = await _jobDbContext.Database.BeginTransactionAsync())
@@ -240,17 +244,87 @@ namespace TaskManager.Controllers
await _jobDbContext.AddAsync(task);
// 提交事务
await transaction.CommitAsync();
+ await _logger.AddSuccess($"成功同步数据第 {i} 页数据", TaskName, taskId, version);
+
}
catch (Exception ex)
{
- await _logger.AddError(ex.Message, TaskName, taskId, DateTime.Now.ToString("yyyyMMdd"));
+ string inputjson = "";
+ if (TaskName == "日物料需求计划风险确认")//格式特殊处理
+ {
+ inputjson = JsonSerializer.Serialize(pagedRequest,
+ new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ Converters =
+ {
+ new DecimalTrimConverter(),
+ new InputCustomDateTimeConverter(),
+ new InputCustomNullableDateTimeConverter()
+ },
+ WriteIndented = false,// 可选,用于格式化输出
+ Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All)
+ }
+ );
+ }
+ else
+ {
+ inputjson = JsonSerializer.Serialize(pagedRequest,
+ new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ Converters =
+ {
+ new DecimalTrimConverter(),
+ },
+ WriteIndented = false,// 可选,用于格式化输出
+ Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All)
+ }
+ );
+ }
+ await _logger.AddError(ex.Message, TaskName, taskId, version,inputjson);
await transaction.RollbackAsync();
}
}
}
else
{
- await _logger.AddError($"第 {i} 页数据保存失败,请检查数据。", TaskName, taskId, DateTime.Now.ToString("yyyyMMdd"));
+
+ string inputjson = string.Empty;
+ if (TaskName == "日物料需求计划风险确认")//格式特殊处理
+ {
+ inputjson = JsonSerializer.Serialize(pagedRequest,
+ new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ Converters =
+ {
+ new DecimalTrimConverter(),
+ new InputCustomDateTimeConverter(),
+ new InputCustomNullableDateTimeConverter()
+ },
+ WriteIndented = false,// 可选,用于格式化输出
+ Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All)
+ }
+ );
+ }
+ else
+ {
+ inputjson = JsonSerializer.Serialize(pagedRequest,
+ new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
+ Converters =
+ {
+ new DecimalTrimConverter(),
+ },
+ WriteIndented = false,// 可选,用于格式化输出
+ Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All)
+ }
+ );
+ }
+
+ await _logger.AddError($"第 {i} 页数据保存失败,请检查数据:{result.message}。", TaskName, taskId,version, inputjson);
}
await Task.Delay(200);
diff --git a/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
index 64fec78..0322a8c 100644
--- a/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
+++ b/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
@@ -50,7 +50,6 @@ namespace TaskManager.Controllers
}
-
private async Task InsertDataAsync(List list)
{
if (list.Any())
@@ -65,6 +64,7 @@ namespace TaskManager.Controllers
{
TLOGS entity = new TLOGS();
entity.InjectFrom(itm);
+ logs.Add(entity);
}
try
{
@@ -116,7 +116,7 @@ namespace TaskManager.Controllers
totalItems = int.Parse(firstResponse.Data.Total);
pageSize = int.Parse(firstResponse.Data.PageSize);
List pagefirstList = new List();
- // firstResponse.Data.Rows.Select(p=>p.Id)
+ //firstResponse.Data.Rows.Select(p=>p.Id)
foreach (var itm in firstResponse.Data.Rows)
{
T entity = new T();
@@ -155,12 +155,9 @@ namespace TaskManager.Controllers
{
await InsertDataAsync(pagefirstList);
}
-
-
// 计算总页数
int totalPages = (int)Math.Ceiling((double)totalItems / pageSize);
//Console.WriteLine($"总共需要请求 {totalPages} 页数据");
-
// 循环请求剩余页面
for (currentPage = 2; currentPage <= totalPages; currentPage++)
{
@@ -172,7 +169,6 @@ namespace TaskManager.Controllers
{
List pageList = new List();
-
foreach (var itm in pageResponse.Data.Rows)
{
T entity = new T();
@@ -228,9 +224,6 @@ namespace TaskManager.Controllers
else
{
-
-
-
PagedResponse firstResponse = await GetPageAsync(new PAGE_DTO() { Date = date, PageSize = CPageSize, IsForce = true },taskId,version);
if (firstResponse == null || firstResponse.Code != 200)
{
@@ -495,6 +488,30 @@ namespace TaskManager.Controllers
}
+
+ public async Task> GetLogDataPaged(RequestInputBase input)
+ {
+ var pagingParams = new PagingParams
+ {
+ PageNumber = input.pageNumber,
+ PageSize = input.pageSize,
+ SortBy = input.sortBy,
+ IsAscending = input.isAscending,
+ };
+
+
+ var json = JsonSerializer.Serialize(input);
+
+
+
+ // 可以在这里构建表达式树过滤条件
+ Expression> filter = null;
+
+ var pagedResult = await _repository.GetDataPagedAsync(filter, pagingParams, input.Condition);
+ return pagedResult;
+ }
+
+
///
/// 导出
///
diff --git a/API/Wood.Service/Controllers/CustomLogService.cs b/API/Wood.Service/Controllers/CustomLogService.cs
index 00dcfb7..0a84d1c 100644
--- a/API/Wood.Service/Controllers/CustomLogService.cs
+++ b/API/Wood.Service/Controllers/CustomLogService.cs
@@ -1,13 +1,16 @@
using Hangfire;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
using System;
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.Util.Filters;
namespace Wood.Service.Controllers
{
@@ -29,169 +32,205 @@ namespace Wood.Service.Controllers
///
[HttpGet]
- public async Task GetLogRequestList(int uId)
+ public async Task GetLogRequestJsonList(int uId)
{
var first = _context.TaskLogs.FirstOrDefault(x => x.UId == uId);
if (!string.IsNullOrEmpty(first.Path))
{
string fullDatePath = Path.Combine(_logDirectory, first.Path);
string jsonContent = await System.IO.File.ReadAllTextAsync(fullDatePath);
- return new JsonResult(new { Code = 200, Message =jsonContent });
- }
- return new JsonResult(new { Code = 400, Message = "没找到文件!" });
-
-
-
-
- //switch (first.TaskName)
- //{
- // case "来料检验数据":
- // // 移除指定的定时任务
-
- // break;
- // case "排产数据":
- // // 移除指定的定时任务
-
- // break;
- // case "供应商基础信息":
- // // 移除指定的定时任务
-
- // break;
- // case "人员资质信息":
- // // 移除指定的定时任务
-
- // break;
- // case "BOM主数据":
- // // 移除指定的定时任务
-
- // break;
- // case "过程控制项质量数据":
- // // 移除指定的定时任务
-
- // break;
- // case "生产过程数据":
- // // 移除指定的定时任务
-
- // break;
- // case "产品一次合格率":
- // // 移除指定的定时任务
-
- // break;
- // case "工位一次合格率":
- // // 移除指定的定时任务
-
- // break;
- // case "缺陷业务数据":
- // // 移除指定的定时任务
-
- // break;
- // case "环境业务数据":
- // // 移除指定的定时任务
-
- // break;
- // case "设备OEE达成率":
- // // 移除指定的定时任务
-
- // break;
- // case "OEE时间明细":
- // // 移除指定的定时任务
+ return new JsonResult(new { Code = 200, Message = jsonContent });
- // break;
- // case "物料主数据":
- // // 移除指定的定时任务
- // break;
- // case "工艺装备":
- // // 移除指定的定时任务
-
- // break;
- // case "工艺":
- // // 移除指定的定时任务
-
- // break;
- // case "整车月度生产计划1":
- // // 移除指定的定时任务
-
- // break;
- // case "M+6月物料需求计划1":
- // // 移除指定的定时任务
-
- // break;
- // case "整车月度生产计划2":
- // // 移除指定的定时任务
-
- // break;
- // case "M+6月物料需求计划2":
- // // 移除指定的定时任务
-
- // break;
- // case "日物料需求计划":
- // // 移除指定的定时任务
-
- // break;
- // case "计划协议":
- // // 移除指定的定时任务
-
- // break;
- // case "采购订单":
- // // 移除指定的定时任务
-
- // break;
- // case "过焊装未过总装":
- // // 移除指定的定时任务
+ }
+ return new JsonResult(new { Code = 400, Message = "没找到文件!" });
+ }
+ [HttpGet]
+ public async Task GetLogReponseList([FromBody] RequestInputBase requestInputBase)
+ {
+ var uid = requestInputBase.Condition.Filters.FirstOrDefault(p => p.Column == "Uid").Value;
- // break;
- // case "过涂装未过总装":
- // // 移除指定的定时任务
+ var first = _context.TaskLogs.FirstOrDefault(x => x.UId == long.Parse(uid));
- // break;
- // case "排序供货":
- // // 移除指定的定时任务
- // break;
- // case "看板配送单":
- // // 移除指定的定时任务
+ switch (first.TaskName)
+ {
+ //case "来料检验数据":
+ // var stockservice = _builder.GetRequiredService();
- // break;
- // case "退货单":
- // // 移除指定的定时任务
+ // requestInputBase.Condition.Filters.Add(new Filter());
+ // var stockresult = await stockservice.GetTaskDataPaged(requestInputBase);
- // break;
- // case "奇瑞RDC共享库存":
- // // 移除指定的定时任务
- // break;
- // case "日MRP状态监控":
- // // 移除指定的定时任务
- // break;
- // case "日MRP预警推移":
- // // 移除指定的定时任务
+ //
+ // break;
+ //case "排产数据":
+ //
- // break;
- // case "M+6月物料需求计划风险确认":
- // // 移除指定的定时任务
+ // break;
+ //case "供应商基础信息":
+ //
- // break;
- // case "日物料需求计划风险确认":
- // // 移除指定的定时任务
+ // break;
+ //case "人员资质信息":
+ //
- // break;
- // case "采购订单风险确认":
- // // 移除指定的定时任务
+ // break;
+ //case "BOM主数据":
+ //
- // break;
- // case "供应商共享库存-上午":
- // // 移除指定的定时任务
+ // break;
+ //case "过程控制项质量数据":
+ //
- // break;
- // case "供应商共享库存-晚上":
- // // 移除指定的定时任务
- // break;
- //}
+ // break;
+ //case "生产过程数据":
+ //
+ // break;
+ //case "产品一次合格率":
+ //
+
+ // break;
+ //case "工位一次合格率":
+ //
+
+ // break;
+ //case "缺陷业务数据":
+ //
+
+ // break;
+ //case "环境业务数据":
+ //
+
+ // break;
+ //case "设备OEE达成率":
+ //
+
+ // break;
+ //case "OEE时间明细":
+ //
+
+ // break;
+ //case "物料主数据":
+ //
+
+ // break;
+ //case "工艺装备":
+ //
+
+ // break;
+ //case "工艺":
+ //
+
+ //break;
+ //case "M+6月物料需求计划风险确认":
+
+
+ // break;
+ //case "日物料需求计划风险确认":
+
+
+ // break;
+ //case "采购订单风险确认":
+
+
+ // break;
+ //case "供应商共享库存-上午":
+
+
+ // break;
+ //case "供应商共享库存-晚上":
+
+ // break;
+
+
+
+
+ case "整车月度生产计划1":
+ var service1 = _builder.GetRequiredService();
+ var result1 = await service1.GetLogDataPaged(requestInputBase);
+ return Ok(result1);
+ break;
+ case "M+6月物料需求计划1":
+ var service2 = _builder.GetRequiredService();
+ var result2 = await service2.GetLogDataPaged(requestInputBase);
+ return Ok(result2);
+
+ break;
+ case "整车月度生产计划2":
+ var service3 = _builder.GetRequiredService();
+ var result3= await service3.GetLogDataPaged(requestInputBase);
+ return Ok(result3);
+ break;
+ case "M+6月物料需求计划2":
+ var service4 = _builder.GetRequiredService();
+ var result4= await service4.GetLogDataPaged(requestInputBase);
+ return Ok(result4);
+ break;
+ case "日物料需求计划":
+ var service5 = _builder.GetRequiredService();
+ var result5 = await service5.GetLogDataPaged(requestInputBase);
+ return Ok(result5);
+ break;
+ case "计划协议":
+ var service6 = _builder.GetRequiredService();
+ var result6 = await service6.GetLogDataPaged(requestInputBase);
+ return Ok(result6);
+ break;
+ case "采购订单":
+ var service7 = _builder.GetRequiredService();
+ var result7 = await service7.GetLogDataPaged(requestInputBase);
+ return Ok(result7);
+ break;
+ case "过焊装未过总装":
+ var service8 = _builder.GetRequiredService();
+ var result8 = await service8.GetLogDataPaged(requestInputBase);
+ return Ok(result8);
+ break;
+ case "过涂装未过总装":
+ var service9 = _builder.GetRequiredService();
+ var result9 = await service9.GetLogDataPaged(requestInputBase);
+ return Ok(result9);
+ break;
+ case "排序供货":
+ var service10 = _builder.GetRequiredService();
+ var result10 = await service10.GetLogDataPaged(requestInputBase);
+ return Ok(result10);
+ break;
+ case "看板配送单":
+ var service11 = _builder.GetRequiredService();
+ var result11 = await service11.GetLogDataPaged(requestInputBase);
+ return Ok(result11);
+ break;
+ case "退货单":
+ var service12 = _builder.GetRequiredService();
+ var result12 = await service12.GetLogDataPaged(requestInputBase);
+ return Ok(result12);
+ break;
+ case "奇瑞RDC共享库存":
+ var service13 = _builder.GetRequiredService();
+ var result13 = await service13.GetLogDataPaged(requestInputBase);
+ return Ok(result13);
+
+ break;
+ case "日MRP状态监控":
+ var service14 = _builder.GetRequiredService();
+ var result14 = await service14.GetLogDataPaged(requestInputBase);
+ return Ok(result14);
+ break;
+ case "日MRP预警推移":
+ var service15 = _builder.GetRequiredService();
+ var result15 = await service15.GetLogDataPaged(requestInputBase);
+ return Ok(result15);
+ break;
+
+
+ }
+ return Ok();
}
-
+
}
diff --git a/API/Wood.Service/Controllers/LogConsumerService.cs b/API/Wood.Service/Controllers/LogConsumerService.cs
index bff742a..0016367 100644
--- a/API/Wood.Service/Controllers/LogConsumerService.cs
+++ b/API/Wood.Service/Controllers/LogConsumerService.cs
@@ -69,10 +69,7 @@ namespace TaskManager.Controllers
_logger = logger;
_serviceProvider = serviceProvider; ;
_logDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CustomLogs"); // 使用更安全的路径获取方式
-
EnsureDirectoryExists(_logDirectory);
-
-
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
@@ -83,6 +80,8 @@ namespace TaskManager.Controllers
while (!stoppingToken.IsCancellationRequested &&
await _logReader.WaitToReadAsync(stoppingToken))
{
+ string taskName = "";
+ string state = "";
try
{
var logs = new List();
@@ -113,6 +112,8 @@ namespace TaskManager.Controllers
log.Module = "计划物流";
}
log.Remark = string.Empty;
+ //taskName = log.TaskName;
+ //state = log.Type;
logsToSave.Add(log);
}
@@ -123,7 +124,7 @@ namespace TaskManager.Controllers
}
catch (Exception ex)
{
- _logger.LogError(ex, "日志写入数据库失败");
+ _logger.LogError(ex, $"日志写入数据库失败状态");
// 错误处理:可记录到临时文件或重试
await Task.Delay(1000, stoppingToken); // 短暂延迟后重试
}
@@ -156,10 +157,8 @@ namespace TaskManager.Controllers
// 生成唯一文件名(时间戳+随机数)
string fileName = $"log_{DateTime.Now.Ticks}_{Random.Shared.Next(1000, 9999)}.json";
string fullPath = Path.Combine(fullDatePath, fileName);
-
try
{
-
// 写入文件(使用UTF-8无BOM格式)
File.WriteAllText(fullPath, jsonContent, new UTF8Encoding(false));
diff --git a/API/Wood.Service/Controllers/LogController.cs b/API/Wood.Service/Controllers/LogController.cs
index 029c754..4763b5a 100644
--- a/API/Wood.Service/Controllers/LogController.cs
+++ b/API/Wood.Service/Controllers/LogController.cs
@@ -88,7 +88,7 @@ namespace TaskManager.Controllers
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
- Version = version?.ToString()
+ Version = version
};
EnqueueLog(log);
@@ -108,7 +108,7 @@ namespace TaskManager.Controllers
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
- Version = version?.ToString(),
+ Version = version,
Remark = json
diff --git a/API/Wood.Service/Controllers/RecurringJobBaseController.cs b/API/Wood.Service/Controllers/RecurringJobBaseController.cs
index 04c95dd..082ba29 100644
--- a/API/Wood.Service/Controllers/RecurringJobBaseController.cs
+++ b/API/Wood.Service/Controllers/RecurringJobBaseController.cs
@@ -67,7 +67,7 @@ namespace TaskManager.Controllers
try
{
- await _logger.AddPostRequest("请求", TaskName, taskid, version, jsonData);
+ await _logger.AddPostRequest($"发送请求{Client}", TaskName, taskid, version, jsonData);
// 生成签名参数
string timeStamp = GetCurrentTimestamp();
string nonce = GenerateNonce();
@@ -96,26 +96,21 @@ namespace TaskManager.Controllers
}
catch (HttpRequestException ex)
{
- await _logger.AddError(ex.Message, this.TaskName, taskid, version,jsonData);
+ await _logger.AddError(ex.Message, this.TaskName, taskid, version, jsonData);
return string.Empty;
}
-
-
-
- //string jsonContent = System.IO.File.ReadAllText("采购订单.json");
- //// string jsonContent = System.IO.File.ReadAllText("过焊装未过总装.json");
- //// string jsonContent = System.IO.File.ReadAllText("计划协议.json");
- ////string jsonContent = System.IO.File.ReadAllText("奇瑞RDC共享库存.json");
- ////string jsonContent4 = System.IO.File.ReadAllText("日MRP状态监控.json");
- //string jsonContent = System.IO.File.ReadAllText("日物料需求计划.json");
- ////string jsonContent = System.IO.File.ReadAllText("整车月度生产计划1.json");
-
+ ////string jsonContent = System.IO.File.ReadAllText("采购订单.json");
+ ////// string jsonContent = System.IO.File.ReadAllText("过焊装未过总装.json");
+ ////// string jsonContent = System.IO.File.ReadAllText("计划协议.json");
+ //////string jsonContent = System.IO.File.ReadAllText("奇瑞RDC共享库存.json");
+ //////string jsonContent4 = System.IO.File.ReadAllText("日MRP状态监控.json");
+ ////string jsonContent = System.IO.File.ReadAllText("日物料需求计划.json");
+ //////string jsonContent = System.IO.File.ReadAllText("整车月度生产计划1.json");
//string jsonContent = System.IO.File.ReadAllText("M+6月物料需求计划1.json");
- //string jsonContent = System.IO.File.ReadAllText("过涂装未过总装.json");
-
- // return jsonContent;
+ ////string jsonContent = System.IO.File.ReadAllText("过涂装未过总装.json");
+ // return jsonContent;
diff --git a/API/Wood.Service/Controllers/TaskConifgureController.cs b/API/Wood.Service/Controllers/TaskConifgureController.cs
index 67b4772..7c1aa47 100644
--- a/API/Wood.Service/Controllers/TaskConifgureController.cs
+++ b/API/Wood.Service/Controllers/TaskConifgureController.cs
@@ -380,6 +380,7 @@ namespace TaskManager.Controllers
x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client,pagesize),
task.Corn,
TimeZoneInfo.Local
+ // new RecurringJobOptions() { MisfireHandling = MisfireHandlingOptions.FireOnce}
);
break;
case "排序供货":