Browse Source

更新版本

master
赵新宇 2 weeks ago
parent
commit
d787a1c5a0
  1. 6
      API/TaskManager.EntityFramework/JobDbContext.cs
  2. 2
      API/Wood.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
  3. 2
      API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs
  4. 97
      API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs

6
API/TaskManager.EntityFramework/JobDbContext.cs

@ -512,7 +512,7 @@ namespace TaskManager.EntityFramework
//控制项要求频率
b.Property(e => e.SamplingRate).HasColumnType("DECIMAL").HasPrecision(precision: 16, scale: 5).IsRequired(false);
//上下限更新时间,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.LimitUpdateTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired(false);
b.Property(e => e.LimitUpdateTime).HasColumnType("varCHAR").HasMaxLength(19).IsRequired(false);
//控制项描述
b.Property(e => e.VendorFieldDesc).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired(false);
//控制项代码
@ -1993,13 +1993,13 @@ namespace TaskManager.EntityFramework
//控制项要求频率
b.Property(e => e.SamplingRate).HasColumnType("DECIMAL").HasPrecision(precision: 16, scale: 5).IsRequired(false);
//上下限更新时间,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.LimitUpdateTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired(false);
b.Property(e => e.LimitUpdateTime).HasColumnType("VARCHAR").HasMaxLength(19).IsRequired(false);
//控制项描述
b.Property(e => e.VendorFieldDesc).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired(false);
//控制项代码
b.Property(e => e.VendorFieldCode).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//库存有效日期,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.DeadLine).HasColumnType("VARCHAR").HasMaxLength(10).IsRequired();
b.Property(e => e.DeadLine).HasColumnType("VARCHAR").HasMaxLength(30).IsRequired();
b.Property(e => e.Remark).HasColumnType("NVarchar").HasMaxLength(500).IsRequired(false);

2
API/Wood.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user

@ -3,7 +3,7 @@
<Project>
<PropertyGroup>
<_PublishTargetUrl>D:\QRAPI20250528\API\Wood.Admin.WebApi\bin\Release\net8.0\publish\</_PublishTargetUrl>
<History>True|2025-07-02T02:15:44.3531626Z||;True|2025-07-02T10:14:19.3576521+08:00||;True|2025-07-01T18:51:45.0206266+08:00||;True|2025-06-30T15:39:43.7918723+08:00||;True|2025-06-30T14:40:36.2678533+08:00||;True|2025-06-30T14:22:36.2631903+08:00||;True|2025-06-30T09:23:23.0780295+08:00||;True|2025-06-28T10:37:00.4525422+08:00||;True|2025-06-27T14:51:18.0006510+08:00||;True|2025-06-27T14:46:36.7189818+08:00||;True|2025-06-25T10:54:54.0406425+08:00||;True|2025-06-24T15:53:07.6141315+08:00||;True|2025-06-24T15:48:22.4116425+08:00||;True|2025-06-24T15:47:33.3794364+08:00||;True|2025-06-24T15:21:28.5600646+08:00||;True|2025-06-23T17:18:30.1990173+08:00||;True|2025-06-23T17:12:33.6485743+08:00||;True|2025-06-19T17:18:07.6086155+08:00||;</History>
<History>True|2025-07-03T01:24:39.8368797Z||;True|2025-07-02T17:18:03.6042427+08:00||;True|2025-07-02T10:15:44.3531626+08:00||;True|2025-07-02T10:14:19.3576521+08:00||;True|2025-07-01T18:51:45.0206266+08:00||;True|2025-06-30T15:39:43.7918723+08:00||;True|2025-06-30T14:40:36.2678533+08:00||;True|2025-06-30T14:22:36.2631903+08:00||;True|2025-06-30T09:23:23.0780295+08:00||;True|2025-06-28T10:37:00.4525422+08:00||;True|2025-06-27T14:51:18.0006510+08:00||;True|2025-06-27T14:46:36.7189818+08:00||;True|2025-06-25T10:54:54.0406425+08:00||;True|2025-06-24T15:53:07.6141315+08:00||;True|2025-06-24T15:48:22.4116425+08:00||;True|2025-06-24T15:47:33.3794364+08:00||;True|2025-06-24T15:21:28.5600646+08:00||;True|2025-06-23T17:18:30.1990173+08:00||;True|2025-06-23T17:12:33.6485743+08:00||;True|2025-06-19T17:18:07.6086155+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

2
API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs

@ -307,7 +307,7 @@ namespace TaskManager.Controllers
log.InjectFrom(itm);
log.RequestDate = requestDate;
log.TaskId = taskId;
log.RequestDate = requestDate;
log.WriteState = true;
log.ReadState = true;
logs.Add(log);

97
API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs

@ -324,6 +324,101 @@ namespace TaskManager.Controllers
return allData;
}
public async Task<List<ToutputDetial>> CustomFetchAllDataAsync(string inputdate)
{
var allData = new List<ToutputDetial>();
int totalItems = 0;
int pageSize = 0;
int currentPage = 1;
string date = !string.IsNullOrEmpty(inputdate) ? inputdate : DateTime.Now.ToString("yyyy-MM-dd");
var taskId = Guid.NewGuid();
var version = date.Replace("-", "");
var readedcount = _jobDbContext.Set<T>().Where(p => p.RequestDate == inputdate).Count();
PagedResponse<ToutputDetial> firstResponse = await GetPageAsync(new PAGE_DTO() { Date = date, PageSize = CPageSize, IsForce = true }, taskId, version);
if (firstResponse == null || firstResponse.Code != 200)
{
await _logger.AddInfo("首次请求失败,无法获取分页信息。", TaskName, taskId, version);
return allData;
}
if (firstResponse.Data.Total == "0")
{
await _logger.AddInfo("首次请求失败,Total为0已经全部读取过。", TaskName, taskId, version);
return allData;
}
if (readedcount != int.Parse(firstResponse.Data.Total))//记录数不相等
{
var ids = _jobDbContext.Set<T>().Where(p => p.RequestDate == inputdate).Select(p => p.Id).ToList();//已经同步的ID
totalItems = int.Parse(firstResponse.Data.Total);
pageSize = int.Parse(firstResponse.Data.PageSize);
List<T> pagefirstList = new List<T>();
foreach (var itm in firstResponse.Data.Rows)
{
T entity = new T();
entity.InjectFrom(itm);
entity.CreationTime = DateTime.Now;
pagefirstList.Add(entity);
entity.RequestDate = date;
allData.Add(itm);
}
if (pagefirstList.Any())
{
await InsertDataAsync(pagefirstList);
}
//Console.WriteLine($"总记录数: {totalItems}, 每页大小: {pageSize}");
// 计算总页数
int totalPages = (int)Math.Ceiling((double)totalItems / pageSize);
//Console.WriteLine($"总共需要请求 {totalPages} 页数据");
// 循环请求剩余页面
for (currentPage = 2; currentPage <= totalPages; currentPage++)
{
PAGE_DTO pageinput = new PAGE_DTO() { Date = date, PageNum = currentPage, PageSize = CPageSize, IsForce = true };
//Console.WriteLine($"正在请求第 {currentPage} 页...");
PagedResponse<ToutputDetial> pageResponse = await GetPageAsync(pageinput, taskId, version);
if (pageResponse?.Data.Rows != null && pageResponse.Data.Rows.Count > 0)
{
List<T> pageList = new List<T>();
foreach (var itm in pageResponse.Data.Rows)
{
T entity = new T();
entity.InjectFrom(itm);
entity.CreationTime = DateTime.Now;
entity.RequestDate = date;
pageList.Add(entity);
allData.Add(itm);
}
if (pageList.Any())
{
await InsertDataAsync(pageList);
}
await _logger.AddSuccess($"成功获取 {pageResponse.Data.Rows.Count} 条记录", TaskName, taskId, version);
}
else
{
await _logger.AddInfo($"第 {currentPage} 页未返回数据", TaskName, taskId, version);
}
// 简单的请求间隔,避免过于频繁
await Task.Delay(200);
}
await _logger.AddSuccess($"所有数据获取完成,总共获取了 {allData.Count} 条记录", TaskName, taskId, version);
}
// 首次请求获取总条数和分页信息
return allData;
}
private async Task<PagedResponse<ToutputDetial>> GetPageAsync(PAGE_DTO input,Guid taskId,string version)
{
string inputjson = string.Empty;
@ -385,7 +480,7 @@ namespace TaskManager.Controllers
Path = first.Api;
TaskName = taskName;
CPageSize = first.PageSize;
await FetchAllDataAsync(inputdate);
await CustomFetchAllDataAsync(inputdate);
}
protected override async Task DoExecutingAsync(string url, string path, string takName, string client, int pagesize)
{

Loading…
Cancel
Save