From dfa7e1cce786f386392c6bc6f1355d238f079c69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 13 Jun 2025 16:33:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E5=9F=BA=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CheryRecurringJobInputPageController.cs | 10 +++++++--- .../Controllers/CherySupplierBomService.cs | 2 +- .../Controllers/CherySupplierConDateService.cs | 2 +- .../Controllers/CherySupplierProFlawService.cs | 2 +- .../CherySupplierProMaterialDataService.cs | 2 +- .../CherySupplierProProcessService.cs | 2 +- ...rySupplierProStationFirstPassYieldService.cs | 2 +- .../Controllers/RecurringJobBaseController.cs | 17 +++++++++++++++++ 8 files changed, 30 insertions(+), 9 deletions(-) diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs index 28f0d1c..8ce317b 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs @@ -79,12 +79,14 @@ namespace TaskManager.Controllers { try { + var inputjson = JsonSerializer.Serialize(t, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, Converters = { new DecimalTrimConverter() }, - WriteIndented = false // 可选,用于格式化输出 + WriteIndented = false ,// 可选,用于格式化输出 + Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All) } ); //inputjson = RemoveWhitespace(inputjson); @@ -170,8 +172,10 @@ namespace TaskManager.Controllers var total = entites.Count(); sub.DataCount = total; int totalPages = (int)Math.Ceiling((double)total / pageSize); + + int startPage =sub.SyncedPageCount == 0 ? 1 : sub.SyncedPageCount; - for (int i = sub.SyncedPageCount; i <= totalPages; i++) + for (int i = startPage; i <= totalPages; i++) { var records = entites.Skip((i - 1) * pageSize) @@ -200,7 +204,7 @@ namespace TaskManager.Controllers var result = await PostPageAsync(pagedRequest,sub.TaskId, DateTime.Now.ToString("yyyyMMdd")); if(result.code == 200) { - _jobDbContext.BulkUpdate(records); + _jobDbContext.BulkUpdate(records,options=>options.UseTableLock=true); sub.SyncedPageCount = i; if (i == totalPages) { diff --git a/API/Wood.Service/Controllers/CherySupplierBomService.cs b/API/Wood.Service/Controllers/CherySupplierBomService.cs index e28e769..5be99a9 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 : CheryRecurringJobInputPageController + 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 b27f389..ebc0c1b 100644 --- a/API/Wood.Service/Controllers/CherySupplierConDateService.cs +++ b/API/Wood.Service/Controllers/CherySupplierConDateService.cs @@ -54,7 +54,7 @@ namespace TaskManager.Controllers task.CreateTime = DateTime.Now; task.CreateUser = "admin"; task.CreationTime = DateTime.Now; - task.SyncedPageCount = 0; + task.SyncedPageCount = 1; entites.ForEach(p => { p.ReadState = true; diff --git a/API/Wood.Service/Controllers/CherySupplierProFlawService.cs b/API/Wood.Service/Controllers/CherySupplierProFlawService.cs index 450e8fa..78938d4 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 : CheryRecurringJobInputPageController + 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 02ddf8c..0a7b36a 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 : CheryRecurringJobInputPageController + 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/CherySupplierProProcessService.cs b/API/Wood.Service/Controllers/CherySupplierProProcessService.cs index a220268..2986a1b 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 : CheryRecurringJobInputPageController + 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/CherySupplierProStationFirstPassYieldService.cs b/API/Wood.Service/Controllers/CherySupplierProStationFirstPassYieldService.cs index 22851ce..cab8091 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 : CheryRecurringJobInputPageController + 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/RecurringJobBaseController.cs b/API/Wood.Service/Controllers/RecurringJobBaseController.cs index 03e859f..84e325f 100644 --- a/API/Wood.Service/Controllers/RecurringJobBaseController.cs +++ b/API/Wood.Service/Controllers/RecurringJobBaseController.cs @@ -14,6 +14,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using System.Text.RegularExpressions; using System.Threading.Tasks; +using TaskManager.Contracts.Dtos; using TaskManager.Entity; using TaskManager.EntityFramework; using Wood.Entity; @@ -74,6 +75,11 @@ namespace TaskManager.Controllers // 构建请求 var request = new HttpRequestMessage(HttpMethod.Post, url); request.Content = new StringContent(jsonData, Encoding.UTF8, "application/json"); + + var str3 = request.Content.ToString(); + + + request.Headers.Add("appKey", appKey); request.Headers.Add("appSecret", appSecret); request.Headers.Add("timestamp", timeStamp); @@ -119,6 +125,17 @@ namespace TaskManager.Controllers private string GenerateSign(string method, string path, string appKey, string appSecret, string timestamp, string nonce, string jsonBody) { + //var options = new JsonSerializerOptions + //{ + // WriteIndented = true, // 格式化缩进,方便阅读 + // Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All) + //}; + + //byte[] utf8Bytes = JsonSerializer.SerializeToUtf8Bytes(jsonBody, options); + //// 转成字符串(若需要字符串形式,可按需操作,不过直接传字节更高效) + //string jsonStr = Encoding.UTF8.GetString(utf8Bytes); + + string paramStr = $"method={method.ToUpper()}&path={path}&appKey={appKey}&appSecret={appSecret}×tamp={timestamp}&nonce={nonce}&jsonBody={jsonBody}"; return ComputeSHA512(paramStr);