diff --git a/Tiobon.Core.Api/Controllers/CommonController.cs b/Tiobon.Core.Api/Controllers/CommonController.cs index eed1cece..8143fe9f 100644 --- a/Tiobon.Core.Api/Controllers/CommonController.cs +++ b/Tiobon.Core.Api/Controllers/CommonController.cs @@ -91,19 +91,6 @@ public class CommonController : BaseApiController } #endregion - #region 下载导入模板Excel - /// - /// 下载导入模板Excel - /// - /// - /// - [HttpPost, Route("DownImportTemplate")] - public async Task> DownImportTemplateAsync([FromBody] QueryExport param) - { - return await _commonServices.DownImportTemplateAsync(param); - } - #endregion - #region Excel导入 /// /// Excel导入 diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index de62cc2c..4f53e2fc 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -281,13 +281,6 @@ - - - 下载导入模板Excel - - - - Excel导入 diff --git a/Tiobon.Core.DataAccess/ReportHelper.cs b/Tiobon.Core.DataAccess/ReportHelper.cs index 97f88b79..f3ff949e 100644 --- a/Tiobon.Core.DataAccess/ReportHelper.cs +++ b/Tiobon.Core.DataAccess/ReportHelper.cs @@ -16,6 +16,7 @@ using System.Text; using System.Threading.Tasks; using Tiobon.Core.Common; using Tiobon.Core.Common.Extensions; +using Tiobon.Core.Common.Helper; using Tiobon.Core.Model.Models; namespace Tiobon.Core.DataAccess; @@ -107,19 +108,24 @@ public static class ReportHelper #endregion - public static async Task ImportTemplate(ISqlSugarClient Db, List tableColumn, DataTable dt, string menuName) + public static string ImportTemplate(ISqlSugarClient Db, List tableColumn, DataTable dt, string menuName) { //生成表格 try { - + tableColumn.Insert(0, new QueryExportColumn() + { + field = "SerialNumber", + label = "序号" + }); //生成文件至文件服务器 var fid = SnowFlakeSingle.Instance.NextId(); - var filepath = $"{$"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}import{Path.DirectorySeparatorChar}{fid}{Path.DirectorySeparatorChar}"}"; + var filepath = $"{$"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}ExcelTemplate{Path.DirectorySeparatorChar}{menuName}{Path.DirectorySeparatorChar}"}"; if (!Directory.Exists(filepath)) Directory.CreateDirectory(filepath); - var fname = $"{menuName}.xlsx"; + + var fname = $"{menuName}_{DateTimeHelper.ConvertToSecondString1(DateTime.Now)}.xlsx"; var sheetName = "导入数据"; IWorkbook workbook = new XSSFWorkbook(); @@ -243,17 +249,17 @@ public static class ReportHelper var dataSourceLists = GetDataSourceLists(Db, field, dataSource); - var fields = new List() - { - "InOrOut", - "ResumeType", - "ImportanceDegree", - "YearHumanId", - "TitleId" - }; + //var fields = new List() + //{ + // "InOrOut", + // "ResumeType", + // "ImportanceDegree", + // "YearHumanId", + // "TitleId" + //}; try { - if (dataSourceLists.Any() && fields.Contains(field)) + if (dataSourceLists.Any()) { //设置数据源的值 IDataValidationConstraint dvConstraint1 = sheet.GetDataValidationHelper().CreateExplicitListConstraint(dataSourceLists.Where(x => x.name.IsNotEmptyOrNull()).Select(x => x.name).ToArray()); @@ -362,7 +368,7 @@ public static class ReportHelper } } - for (int rowNum = 2; rowNum <= sheet.LastRowNum; rowNum++) + for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++) { IRow currentRow = sheet.GetRow(rowNum); diff --git a/Tiobon.Core.IServices/ICommonServices.cs b/Tiobon.Core.IServices/ICommonServices.cs index d070370e..2f070fcf 100644 --- a/Tiobon.Core.IServices/ICommonServices.cs +++ b/Tiobon.Core.IServices/ICommonServices.cs @@ -26,9 +26,7 @@ public interface ICommonServices : IBaseServices> Task> GetSelectAsync(string type, string keyWords); - Task> ExportExcelAsync(QueryExport param); - - Task> DownImportTemplateAsync(QueryExport param); + Task> ExportExcelAsync(QueryExport param); Task> ImportExcelAsync(IFormFile file, string menuName, int langId, int userId); diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs index f0206552..2f41b0e6 100644 --- a/Tiobon.Core.Services/BASE/BaseServices.cs +++ b/Tiobon.Core.Services/BASE/BaseServices.cs @@ -961,13 +961,8 @@ public class BaseServices : IBaseServ return ServiceResult.OprateSuccess("导入成功!"); } - public virtual async Task> DownloadExcel(string menuName) + public async Task> QueryExportColumn(string menuName) { - - var tableNmae = string.Empty; - Type entityType = typeof(TEntity); - - var sql = $@"SELECT Row_Number () OVER (ORDER BY CONVERT (INT, rowNum), CONVERT (INT, colNum)) sortNum, @@ -994,24 +989,22 @@ public class BaseServices : IBaseServ AND elementType ! = 'FileUpload' AND dataType ! = ''"; - var columns = await Db.Ado.SqlQueryAsync(sql); + return await Db.Ado.SqlQueryAsync(sql); + } + + public virtual async Task> DownloadExcel(string menuName) + { + + var tableNmae = string.Empty; + Type entityType = typeof(TEntity); + var columns = await QueryExportColumn(menuName); var dt = await Db.Ado.GetDataTableAsync("SELECT TOP 1 * FROM " + entityType.GetEntityTableName() + " WHERE IsEnable=1"); var MenuName = await Db.Ado.GetStringAsync($"SELECT MenuName FROM Ghrs_Menu WHERE MenuNo = '{menuName}'"); //columns = columns.WhereIF(param.exportSet.ExFields.Any(), x => param.exportSet.ExFields.Contains(x.field)).ToList(); - var path = await ReportHelper.ImportTemplate(Db, columns, dt, menuName); - - - //var physicsPath = $"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot"; - //var path = $"{$"{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}ExcelTemplate{Path.DirectorySeparatorChar}"}"; - //if (!Directory.Exists(physicsPath + path)) - // Directory.CreateDirectory(physicsPath + path); - - //Type entityType = typeof(TEntity); - //var fileName = entityType.GetEntityTableName() + ".xlsx"; - //var result = ServiceResult.OprateSuccess(fileName, physicsPath + path + fileName); + var path = ReportHelper.ImportTemplate(Db, columns, dt, menuName); var result = ServiceResult.OprateSuccess($"{MenuName}_{DateTimeHelper.ConvertToSecondString1(DateTime.Now)}.xlsx", path); return result; } @@ -1427,7 +1420,7 @@ ORDER BY SortNo ASC"; default: break; } - + return conditions; } public string DealConditions1(string conditions, string name, string value) diff --git a/Tiobon.Core.Services/CommonServices.cs b/Tiobon.Core.Services/CommonServices.cs index 047a5c20..a4bd511a 100644 --- a/Tiobon.Core.Services/CommonServices.cs +++ b/Tiobon.Core.Services/CommonServices.cs @@ -2336,68 +2336,7 @@ public partial class CommonServices : BaseServices>, ICommon return new ServiceResult() { Success = true, Message = "查询成功", Data = result, }; } - #endregion - - #region Excel导入模板 - /// - /// Excel导入模板 - /// - /// - /// - public async Task> DownImportTemplateAsync(QueryExport param) - { - var result = new QueryExportReturn(); - - var tableNmae = string.Empty; - var menuName = string.Empty; - string sql = "select QueryProcedure, EditProcedure, IUDProcedure, MenuName from Ghrs_Menu where MenuNo='{0}'"; - sql = string.Format(sql, param.menuName); - var dt = await Db.Ado.GetDataTableAsync(sql); - if (dt.Rows.Count > 0) - { - string queryProcedure = dt.Rows[0]["QueryProcedure"].ToString(); - menuName = dt.Rows[0]["MenuName"].ToString(); - - string[] aaa = queryProcedure.Split('/'); - tableNmae = aaa[1]; - } - - sql = $@"SELECT Row_Number () - OVER (ORDER BY CONVERT (INT, rowNum), CONVERT (INT, colNum)) - sortNum, - field, - [dbo].[FLangKeyToValue] (mkey, 1, label) - label, - dbo.FS_GetdataSourceBySet - (dataSource, APIDataSourceType, Ghrs_PageSettingEdit.APIDataSourceID) - dataSource, - required, - dataType, - CONVERT (NVARCHAR (1000), '') - commentText -- StaffWith - , - elementType - + CASE WHEN multipleSelect = 'true' THEN '_multiple' ELSE '' END - elementType -- 增加多选判断 - FROM Ghrs_PageSettingEdit - WHERE IsEnable = 1 - AND elementType NOT IN ('FnKey', 'PageGroup') - AND pageNo = 'F_Training_Course' - --and editable = 'true' - AND defaultHidden ! = 'true' - AND elementType ! = 'FileUpload' - AND dataType ! = ''"; - - var columns = await Db.Ado.SqlQueryAsync(sql); - columns = columns.WhereIF(param.exportSet.ExFields.Any(), x => param.exportSet.ExFields.Contains(x.field)).ToList(); - - dt = await Db.Ado.GetDataTableAsync("SELECT * FROM " + tableNmae + " WHERE IsEnable=1"); - await ReportHelper.ImportTemplate(Db, columns, dt, menuName); - - - return new ServiceResult() { Success = true, Message = "查询成功", Data = result, }; - } - #endregion + #endregion #region Excel数据导入