Browse Source

提交高级查询字段

master
赵新宇 2 days ago
parent
commit
27aa0d111f
  1. 7
      API/TaskManager.Entity/Entity.cs
  2. 52
      API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
  3. 59
      API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
  4. 33
      API/Wood.Service/Controllers/NormalBaseController.cs

7
API/TaskManager.Entity/Entity.cs

@ -201,9 +201,14 @@ namespace TaskManager.Entity
}
public class QueryFieldInfo
{
public string FieldName { get; set; }
public string DisplayName { get; set; }
public string DataType { get; set; }
}
public class BaseEntity
{
public BaseEntity()

52
API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs

@ -1,5 +1,6 @@
using Azure.Core;
using Dapper;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core.Extension;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
@ -13,6 +14,7 @@ using System.Data;
using System.Drawing.Printing;
using System.Globalization;
using System.Linq.Expressions;
using System.Reflection;
using System.Security.Policy;
using System.Text;
using System.Text.Json;
@ -38,12 +40,6 @@ namespace TaskManager.Controllers
_repository = repository;
}
/// <summary>
/// 手工发送调用接口
/// </summary>
@ -152,8 +148,6 @@ namespace TaskManager.Controllers
private async Task SyncTaskSubTable(string taskName, string client)
{
if (string.IsNullOrEmpty(taskName) || string.IsNullOrEmpty(client))
@ -206,12 +200,10 @@ namespace TaskManager.Controllers
var result = await PostPageAsync(pagedRequest,sub.TaskId, DateTime.Now.ToString("yyyyMMdd"));
if(result.code == 200)
{
_jobDbContext.BulkUpdate(records);
sub.SyncedPageCount = i;
if (i == totalPages)
{
sub.WriteState = true;
_jobDbContext.Set<TaskSub>().Update(sub);
_jobDbContext.SaveChanges();
@ -220,6 +212,7 @@ namespace TaskManager.Controllers
else
{
sub.FailedCount = i*pageSize;
sub.FailedInfo = $"第 {i} 页奇瑞数据保存失败 {result.message}。";
await _logger.AddError($"第 {i} 页奇瑞数据保存失败 {result.message}。", TaskName,sub.TaskId, DateTime.Now.ToString("yyyyMMdd"));
}
@ -543,5 +536,44 @@ namespace TaskManager.Controllers
writer.WriteStringValue(value.ToString("0.########################", CultureInfo.InvariantCulture));
}
}
/// <summary>
/// 高级查询字段
/// </summary>
/// <returns></returns>
[HttpGet("fields")]
public IActionResult GetQueryFields()
{
// 获取实体类的所有属性
Type entityType = typeof(T);
var properties = entityType.GetProperties();
// 构建字段信息列表
var fields = new List<QueryFieldInfo>();
foreach (var property in properties)
{
// 获取ExporterHeader特性中的DisplayName
var exporterHeader = property.GetCustomAttribute<ExporterHeaderAttribute>();
string displayName = exporterHeader?.DisplayName ?? property.Name;
// 获取属性类型
string dataType = property.PropertyType.Name;
// 添加到字段列表
fields.Add(new QueryFieldInfo
{
FieldName = property.Name,
DisplayName = displayName,
DataType = dataType
});
}
return Ok(fields);
}
}
}

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

@ -1,4 +1,5 @@
using Magicodes.ExporterAndImporter.Core.Extension;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core.Extension;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
@ -14,6 +15,7 @@ using System;
using System.Data;
using System.Data.Common;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
@ -43,6 +45,15 @@ namespace TaskManager.Controllers
}
private async Task InsertDataAsync(List<T> list)
{
if (list.Any())
@ -78,11 +89,8 @@ namespace TaskManager.Controllers
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();
if (readedcount == 0)//第一次请求用false,接口人胡启名要求
{
@ -104,12 +112,7 @@ namespace TaskManager.Controllers
totalItems = int.Parse(firstResponse.Data.Total);
pageSize = int.Parse(firstResponse.Data.PageSize);
List<T> pagefirstList = new List<T>();
// firstResponse.Data.Rows.Select(p=>p.Id)
foreach (var itm in firstResponse.Data.Rows)
{
T entity = new T();
@ -119,8 +122,6 @@ namespace TaskManager.Controllers
pagefirstList.Add(entity);
allData.Add(itm);
}
//if (readedcount > 0)
//{
// var listrows = firstResponse.Data.Rows.Where(p => !ids.Contains(p.Id));
@ -670,6 +671,42 @@ namespace TaskManager.Controllers
}
/// <summary>
/// 高级查询字段
/// </summary>
/// <returns></returns>
[HttpGet("fields")]
public IActionResult GetQueryFields()
{
// 获取实体类的所有属性
Type entityType = typeof(T);
var properties = entityType.GetProperties();
// 构建字段信息列表
var fields = new List<QueryFieldInfo>();
foreach (var property in properties)
{
// 获取ExporterHeader特性中的DisplayName
var exporterHeader = property.GetCustomAttribute<ExporterHeaderAttribute>();
string displayName = exporterHeader?.DisplayName ?? property.Name;
// 获取属性类型
string dataType = property.PropertyType.Name;
// 添加到字段列表
fields.Add(new QueryFieldInfo
{
FieldName = property.Name,
DisplayName = displayName,
DataType = dataType
});
}
return Ok(fields);
}
}

33
API/Wood.Service/Controllers/NormalBaseController.cs

@ -351,7 +351,40 @@ namespace Wood.Service.Controllers
}
/// <summary>
/// 高级查询字段
/// </summary>
/// <returns></returns>
[HttpGet("fields")]
public IActionResult GetQueryFields()
{
// 获取实体类的所有属性
Type entityType = typeof(T);
var properties = entityType.GetProperties();
// 构建字段信息列表
var fields = new List<QueryFieldInfo>();
foreach (var property in properties)
{
// 获取ExporterHeader特性中的DisplayName
var exporterHeader = property.GetCustomAttribute<ExporterHeaderAttribute>();
string displayName = exporterHeader?.DisplayName ?? property.Name;
// 获取属性类型
string dataType = property.PropertyType.Name;
// 添加到字段列表
fields.Add(new QueryFieldInfo
{
FieldName = property.Name,
DisplayName = displayName,
DataType = dataType
});
}
return Ok(fields);
}

Loading…
Cancel
Save