|
|
|
@ -213,62 +213,11 @@ public class BaseController<IServiceBase, TEntity, TEntityDto, TInsertDto, TEdit |
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="body"></param> |
|
|
|
|
/// <returns></returns> |
|
|
|
|
//[HttpPost, Route("ExportExcel")] |
|
|
|
|
//public async Task<ServiceResult<ExcelData>> ExportExcel([FromBody] QueryExport body) |
|
|
|
|
//{ |
|
|
|
|
// var data = (await InvokeServiceAsync("ExportExcel", [body])) as ServiceResult<ExcelData>; |
|
|
|
|
// return data; |
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
[HttpPost, Route("ExportExcel")] |
|
|
|
|
public virtual async Task<ServiceResult<ExcelData>> ExportExcel([FromBody] QueryExport body) |
|
|
|
|
{ |
|
|
|
|
QueryBody filter = new QueryBody(); |
|
|
|
|
filter.pageNum = 1; |
|
|
|
|
filter.pageSize = 1000000; |
|
|
|
|
filter.langId = body.langId; |
|
|
|
|
|
|
|
|
|
var condition = "1=1"; |
|
|
|
|
if (body.exportSet.SelectRowKeys != null && body.exportSet.SelectRowKeys.Any()) |
|
|
|
|
condition += $" AND Id IN({string.Join(",", body.exportSet.SelectRowKeys)})"; |
|
|
|
|
|
|
|
|
|
var data = (await InvokeServiceAsync("QueryFilterPage", [filter, condition, true])) as ServicePageResult<TEntityDto>; |
|
|
|
|
|
|
|
|
|
string sql = $@"SELECT *
|
|
|
|
|
FROM Ghrs_PageSettingQuery |
|
|
|
|
WHERE IsEnable = 1 |
|
|
|
|
AND PageNo = '{body.menuName}' |
|
|
|
|
AND (defaultHidden = 'false' OR defaultHidden is null) |
|
|
|
|
ORDER BY SortNo ASC";
|
|
|
|
|
|
|
|
|
|
var columns = DbAccess.QueryList<QueryExportColumn>(sql); |
|
|
|
|
|
|
|
|
|
var fieldDescs = new Dictionary<string, string>(); |
|
|
|
|
if (body.exportSet.ExFields.Any()) |
|
|
|
|
body.exportSet.ExFields.ForEach(x => |
|
|
|
|
{ |
|
|
|
|
if (columns.Any(o => o.field == x)) |
|
|
|
|
fieldDescs.Add(x, columns.FirstOrDefault(o => o.field == x)?.label); |
|
|
|
|
}); |
|
|
|
|
else |
|
|
|
|
fieldDescs = columns.ToDictionary(item => item.field, item => item.label); |
|
|
|
|
var dt = ToDataTable(data.result.DT_TableDataT1, fieldDescs, null); |
|
|
|
|
// 获取所有列名 |
|
|
|
|
var dtColumns = dt.Columns; |
|
|
|
|
|
|
|
|
|
var id = SnowFlakeSingle.instance.getID(); |
|
|
|
|
var physicsPath = $"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot"; |
|
|
|
|
var path = $"{$"{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}export{Path.DirectorySeparatorChar}{id}{Path.DirectorySeparatorChar}"}"; |
|
|
|
|
if (!Directory.Exists(physicsPath + path)) |
|
|
|
|
Directory.CreateDirectory(physicsPath + path); |
|
|
|
|
|
|
|
|
|
path = path + body.exportSet.TitleName + ".xlsx"; |
|
|
|
|
NPOIHelper.ExportExcel(dt, body.exportSet.TitleName, "sheet1", physicsPath + path); |
|
|
|
|
|
|
|
|
|
var result = new ExcelData(); |
|
|
|
|
result.filePath = path; |
|
|
|
|
result.fileName = body.exportSet.TitleName + ".xlsx"; |
|
|
|
|
return ServiceResult<ExcelData>.OprateSuccess("导出成功", result); |
|
|
|
|
var data = (await InvokeServiceAsync("ExportExcel", [body])) as ServiceResult<ExcelData>; |
|
|
|
|
return data; |
|
|
|
|
} |
|
|
|
|
/// <summary> |
|
|
|
|
/// 列名按照前端显示顺序导出 |
|
|
|
|