Browse Source

提交高级查询字段

master
赵新宇 2 weeks 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 class BaseEntity
{ {
public BaseEntity() public BaseEntity()

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

@ -1,5 +1,6 @@
using Azure.Core; using Azure.Core;
using Dapper; using Dapper;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core.Extension; using Magicodes.ExporterAndImporter.Core.Extension;
using Magicodes.ExporterAndImporter.Excel; using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
@ -13,6 +14,7 @@ using System.Data;
using System.Drawing.Printing; using System.Drawing.Printing;
using System.Globalization; using System.Globalization;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Reflection;
using System.Security.Policy; using System.Security.Policy;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
@ -38,12 +40,6 @@ namespace TaskManager.Controllers
_repository = repository; _repository = repository;
} }
/// <summary> /// <summary>
/// 手工发送调用接口 /// 手工发送调用接口
/// </summary> /// </summary>
@ -152,8 +148,6 @@ namespace TaskManager.Controllers
private async Task SyncTaskSubTable(string taskName, string client) private async Task SyncTaskSubTable(string taskName, string client)
{ {
if (string.IsNullOrEmpty(taskName) || string.IsNullOrEmpty(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")); var result = await PostPageAsync(pagedRequest,sub.TaskId, DateTime.Now.ToString("yyyyMMdd"));
if(result.code == 200) if(result.code == 200)
{ {
_jobDbContext.BulkUpdate(records); _jobDbContext.BulkUpdate(records);
sub.SyncedPageCount = i; sub.SyncedPageCount = i;
if (i == totalPages) if (i == totalPages)
{ {
sub.WriteState = true; sub.WriteState = true;
_jobDbContext.Set<TaskSub>().Update(sub); _jobDbContext.Set<TaskSub>().Update(sub);
_jobDbContext.SaveChanges(); _jobDbContext.SaveChanges();
@ -220,6 +212,7 @@ namespace TaskManager.Controllers
else else
{ {
sub.FailedCount = i*pageSize; sub.FailedCount = i*pageSize;
sub.FailedInfo = $"第 {i} 页奇瑞数据保存失败 {result.message}。";
await _logger.AddError($"第 {i} 页奇瑞数据保存失败 {result.message}。", TaskName,sub.TaskId, DateTime.Now.ToString("yyyyMMdd")); 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)); 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 Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
@ -14,6 +15,7 @@ using System;
using System.Data; using System.Data;
using System.Data.Common; using System.Data.Common;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Reflection;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
@ -43,6 +45,15 @@ namespace TaskManager.Controllers
} }
private async Task InsertDataAsync(List<T> list) private async Task InsertDataAsync(List<T> list)
{ {
if (list.Any()) if (list.Any())
@ -78,11 +89,8 @@ namespace TaskManager.Controllers
int pageSize = 0; int pageSize = 0;
int currentPage = 1; int currentPage = 1;
string date = !string.IsNullOrEmpty(inputdate) ? inputdate : DateTime.Now.ToString("yyyy-MM-dd"); string date = !string.IsNullOrEmpty(inputdate) ? inputdate : DateTime.Now.ToString("yyyy-MM-dd");
var taskId = Guid.NewGuid(); var taskId = Guid.NewGuid();
var version = date.Replace("-", ""); var version = date.Replace("-", "");
var readedcount = _jobDbContext.Set<T>().Where(p => p.RequestDate == inputdate).Count(); var readedcount = _jobDbContext.Set<T>().Where(p => p.RequestDate == inputdate).Count();
if (readedcount == 0)//第一次请求用false,接口人胡启名要求 if (readedcount == 0)//第一次请求用false,接口人胡启名要求
{ {
@ -104,12 +112,7 @@ namespace TaskManager.Controllers
totalItems = int.Parse(firstResponse.Data.Total); totalItems = int.Parse(firstResponse.Data.Total);
pageSize = int.Parse(firstResponse.Data.PageSize); pageSize = int.Parse(firstResponse.Data.PageSize);
List<T> pagefirstList = new List<T>(); List<T> pagefirstList = new List<T>();
// firstResponse.Data.Rows.Select(p=>p.Id) // firstResponse.Data.Rows.Select(p=>p.Id)
foreach (var itm in firstResponse.Data.Rows) foreach (var itm in firstResponse.Data.Rows)
{ {
T entity = new T(); T entity = new T();
@ -119,8 +122,6 @@ namespace TaskManager.Controllers
pagefirstList.Add(entity); pagefirstList.Add(entity);
allData.Add(itm); allData.Add(itm);
} }
//if (readedcount > 0) //if (readedcount > 0)
//{ //{
// var listrows = firstResponse.Data.Rows.Where(p => !ids.Contains(p.Id)); // 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