diff --git a/Tiobon.Core.Api/Controllers/Base/BaseController.cs b/Tiobon.Core.Api/Controllers/Base/BaseController.cs index 759a01b6..7b903dc0 100644 --- a/Tiobon.Core.Api/Controllers/Base/BaseController.cs +++ b/Tiobon.Core.Api/Controllers/Base/BaseController.cs @@ -213,62 +213,11 @@ public class BaseController /// /// - //[HttpPost, Route("ExportExcel")] - //public async Task> ExportExcel([FromBody] QueryExport body) - //{ - // var data = (await InvokeServiceAsync("ExportExcel", [body])) as ServiceResult; - // return data; - //} - [HttpPost, Route("ExportExcel")] public virtual async Task> 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; - - 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(sql); - - var fieldDescs = new Dictionary(); - 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.OprateSuccess("导出成功", result); + var data = (await InvokeServiceAsync("ExportExcel", [body])) as ServiceResult; + return data; } /// /// 列名按照前端显示顺序导出 diff --git a/Tiobon.Core.IServices/BASE/IBaseServices.cs b/Tiobon.Core.IServices/BASE/IBaseServices.cs index b2bd1b51..ab9c0160 100644 --- a/Tiobon.Core.IServices/BASE/IBaseServices.cs +++ b/Tiobon.Core.IServices/BASE/IBaseServices.cs @@ -155,7 +155,7 @@ namespace Tiobon.Core.IServices.BASE Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null); Task> QueryFilterPage([FromBody] QueryBody body); Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true); - Task> ExportExcel([FromBody] QueryExport body); + Task> ExportExcel(QueryExport body); Task> ImportExcel(IFormFile file); diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs index 7cfde99c..32ba0bf6 100644 --- a/Tiobon.Core.Services/BASE/BaseServices.cs +++ b/Tiobon.Core.Services/BASE/BaseServices.cs @@ -782,7 +782,7 @@ public class BaseServices : IBaseServ return new ServicePageResult(filter.pageNum, total, filter.pageSize, entitys); } - public async Task> ExportExcel(QueryExport body) + public virtual async Task> ExportExcel(QueryExport body) { QueryBody filter = new QueryBody(); filter.pageNum = 1; @@ -793,8 +793,7 @@ public class BaseServices : IBaseServ if (body.exportSet.SelectRowKeys != null && body.exportSet.SelectRowKeys.Any()) condition += $" AND Id IN({string.Join(",", body.exportSet.SelectRowKeys)})"; - var data = await QueryFilterPage(filter, condition); - + var data = await QueryFilterPage(filter, condition, true); string sql = $@"SELECT * FROM Ghrs_PageSettingQuery @@ -803,7 +802,7 @@ public class BaseServices : IBaseServ AND (defaultHidden = 'false' OR defaultHidden is null) ORDER BY SortNo ASC"; - var columns = await Db.Ado.SqlQueryAsync(sql); + var columns = DbAccess.QueryList(sql); var fieldDescs = new Dictionary(); if (body.exportSet.ExFields.Any()) @@ -825,7 +824,7 @@ public class BaseServices : IBaseServ Directory.CreateDirectory(physicsPath + path); path = path + body.exportSet.TitleName + ".xlsx"; - NPOIHelper.ExportExcel(dt, null, "sheet1", physicsPath + path); + NPOIHelper.ExportExcel(dt, body.exportSet.TitleName, "sheet1", physicsPath + path); var result = new ExcelData(); result.filePath = path; diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs index 0159723a..87b7b95b 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs @@ -517,4 +517,56 @@ public class Ghrh_YearHumanSettingsServices : BaseServices> ExportExcel(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 QueryFilterPage(filter, condition, true); + + 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(sql); + + var fieldDescs = new Dictionary(); + 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.OprateSuccess("导出成功", result); + } + #endregion } \ No newline at end of file