From 1aac16f7056bf98882443371ca3e62b7eb4048f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Thu, 12 Jun 2025 15:33:08 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API/TaskManager.Entity/Entity.cs | 2 ++ API/Wood.Admin.WebApi/Startup.cs | 5 +---- .../CheryRecurringJobInputPageController.cs | 15 ++++----------- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/API/TaskManager.Entity/Entity.cs b/API/TaskManager.Entity/Entity.cs index f8253e8..ee5ff3b 100644 --- a/API/TaskManager.Entity/Entity.cs +++ b/API/TaskManager.Entity/Entity.cs @@ -541,10 +541,12 @@ namespace TaskManager.Entity [ExporterHeader(DisplayName = "版本号")] public int Version { get; set; } =0; + [MaxLength(50)] [JsonProperty("omterior")] [ExporterHeader(DisplayName = "内外饰")] // 推测拼写错误并自定义显示名 public string? Omterior { get; set; } = String.Empty; + [MaxLength(50)] [JsonProperty("salseDepartment")] [ExporterHeader(DisplayName = "销售部门")] // 推测拼写错误并自定义显示名 public string? SalseDepartment { get; set; } = String.Empty; diff --git a/API/Wood.Admin.WebApi/Startup.cs b/API/Wood.Admin.WebApi/Startup.cs index c27ef33..e3c84a1 100644 --- a/API/Wood.Admin.WebApi/Startup.cs +++ b/API/Wood.Admin.WebApi/Startup.cs @@ -74,10 +74,6 @@ namespace Wood.Admin.WebApi GlobalContext.JwtConfig = Configuration.GetSection("JwtConfig").Get()!; GlobalContext.Services = services; GlobalContext.Configuration = Configuration; - - - - //初始化 eventbus services.AddEventBus(); @@ -93,6 +89,7 @@ namespace Wood.Admin.WebApi // 配置 DbContext 使用 SQL Server 连接字符串 services.AddDbContext(options => options.UseSqlServer(GlobalContext.SystemConfig.CustomerDb)); + // 配置 Hangfire 使用 SQL Server 存储 services.AddHangfire( diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs index f8c0f6f..731ea3b 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs @@ -87,17 +87,11 @@ namespace TaskManager.Controllers new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - - Converters= { new DecimalTrimConverter() }, - - WriteIndented = true // 可选,用于格式化输出 - - - - + Converters = { new DecimalTrimConverter() }, + WriteIndented = false // 可选,用于格式化输出 } ); - inputjson = RemoveWhitespace(inputjson); + //inputjson = RemoveWhitespace(inputjson); var content = await Post(Url, Path, inputjson,taskId,version); if (!string.IsNullOrEmpty(content)) { @@ -212,8 +206,7 @@ namespace TaskManager.Controllers { _jobDbContext.BulkUpdate(records); sub.SyncedPageCount = i; - - if (result.data.totalGet == total) + if (i == total) { sub.WriteState = true; _jobDbContext.Set().Update(sub); From 35083030e2da8460aa13eb27592711f5f569f93e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Thu, 12 Jun 2025 17:00:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API/TaskManager.Entity/QRReturnInfo.cs | 23 +++++++++++++++---- .../CheryRecurringJobInputPageController.cs | 12 +++++++--- .../CherySupplierProAttachmentDataService.cs | 3 +++ 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/API/TaskManager.Entity/QRReturnInfo.cs b/API/TaskManager.Entity/QRReturnInfo.cs index c612207..be4010f 100644 --- a/API/TaskManager.Entity/QRReturnInfo.cs +++ b/API/TaskManager.Entity/QRReturnInfo.cs @@ -19,27 +19,42 @@ namespace TaskManager.Entity public string apiName { get; set; } /// - /// 收到总数 + /// 获取的总记录数 /// public int totalGet { get; set; } /// - /// 未成功数量 + /// 出错的总记录数 /// public int totalError { get; set; } /// - /// 成功保存数量 + /// 保存的总记录数 /// public int totalSave { get; set; } + + /// + /// 操作时间 + /// + public DateTime? time { get; set; } + + + } public class QRReturnInfo { + + + + //{"code":200,"data":{"batchNo":"BYE4NER8EGYEHV9F51CELEOCBU6CPGYZ","apiName":"supplier_pro_attachment_data","totalGet":1,"totalError":0,"totalSave":1,"time":null},"message":"操作成功"} + + + /// /// 返回信息,200成功,其他不成功 /// - public string code { get; set; } + public int code { get; set; } /// /// 操作描述 diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs index 731ea3b..7f96ce0 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs @@ -167,12 +167,14 @@ namespace TaskManager.Controllers { foreach (var sub in sublist) { + string querystr = $"select * from {sub.TableName} where TaskId='{sub.TaskId}' and WriteState=0 and ReadState=1 order by uid";//任务表 var entites = _jobDbContext.Database.GetDbConnection().Query(querystr);//明细表 if (entites.Any()) { var total = entites.Count(); + sub.DataCount = total; int totalPages = (int)Math.Ceiling((double)total / pageSize); for (int i = sub.SyncedPageCount; i <= totalPages; i++) @@ -202,12 +204,14 @@ namespace TaskManager.Controllers itm.WriteState = true; } var result = await PostPageAsync(pagedRequest,sub.TaskId, DateTime.Now.ToString("yyyyMMdd")); - if(result.code == "200") + if(result.code == 200) { + _jobDbContext.BulkUpdate(records); sub.SyncedPageCount = i; - if (i == total) + if (i == totalPages) { + sub.WriteState = true; _jobDbContext.Set().Update(sub); _jobDbContext.SaveChanges(); @@ -215,7 +219,9 @@ namespace TaskManager.Controllers } else { - await _logger.AddError($"第 {i} 页数据保存失败,请检查数据。", TaskName,sub.TaskId, DateTime.Now.ToString("yyyyMMdd")); + sub.FailedCount = i*pageSize; + + await _logger.AddError($"第 {i} 页奇瑞数据保存失败 {result.message}。", TaskName,sub.TaskId, DateTime.Now.ToString("yyyyMMdd")); } } diff --git a/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs b/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs index 94be581..a4f440e 100644 --- a/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs +++ b/API/Wood.Service/Controllers/CherySupplierProAttachmentDataService.cs @@ -5,6 +5,9 @@ using TaskManager.EntityFramework; namespace TaskManager.Controllers { + /// + /// 附件类数据 + /// public class CherySupplierProAttachmentDataService : CheryRecurringJobInputPageController { public CherySupplierProAttachmentDataService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository)