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/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.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..7f96ce0 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)) { @@ -173,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++) @@ -208,13 +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 (result.data.totalGet == total) + if (i == totalPages) { + sub.WriteState = true; _jobDbContext.Set().Update(sub); _jobDbContext.SaveChanges(); @@ -222,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)