From 4488d3d83a887b414c0e6a4e8a3f3ba87ef3d245 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Mon, 30 Dec 2024 11:12:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8E=86=E6=A1=A3=E6=A1=88=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95Excel=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tiobon.Core.Common/Helper/StringHelper.cs | 3 - .../Extensions/ExtensionHelper.cs | 62 +++++++++++++++++++ .../Ghrh/Ghrh_ResumeEduBGServices.cs | 59 ++---------------- .../Ghrh/Ghrh_ResumeHomeServices.cs | 61 ++---------------- .../Ghrh/Ghrh_ResumeLicenceServices.cs | 54 +--------------- .../Ghrh/Ghrh_ResumeTrainingServices.cs | 58 ++--------------- .../Ghrh/Ghrh_ResumeWorkExpServices.cs | 58 ++--------------- 7 files changed, 83 insertions(+), 272 deletions(-) create mode 100644 Tiobon.Core.Services/Extensions/ExtensionHelper.cs diff --git a/Tiobon.Core.Common/Helper/StringHelper.cs b/Tiobon.Core.Common/Helper/StringHelper.cs index 4652985b..0b8ff3c3 100644 --- a/Tiobon.Core.Common/Helper/StringHelper.cs +++ b/Tiobon.Core.Common/Helper/StringHelper.cs @@ -121,9 +121,6 @@ public class StringHelper } #endregion - - - #region 格式化数字字符 /// /// 格式化数字字符,如传入1.24500,返回1.245 diff --git a/Tiobon.Core.Services/Extensions/ExtensionHelper.cs b/Tiobon.Core.Services/Extensions/ExtensionHelper.cs new file mode 100644 index 00000000..fb79f6f5 --- /dev/null +++ b/Tiobon.Core.Services/Extensions/ExtensionHelper.cs @@ -0,0 +1,62 @@ +namespace Tiobon.Core.Common.Helper; + +public class ExtensionHelper +{ + + + public static async Task> QueryResumeFormColumn(ISqlSugarClient Db, string groupType, long resumeTemplateID = 0) + { + resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1"); + var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} + + SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName, +A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSourceID + FROM Ghrh_ResumeInfoColumn A + LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B + ON B.ResumeInfoColumnID = A.ID + AND B.IsDisplay = 1 + AND B.IsEnable = 1 + AND A.IsEnable = 1 + JOIN Ghrh_ResumeTemplateInfoGroup C + ON B.ResumeTemplateInfoGroupID = C.Id + JOIN Ghrh_ResumeInfoGroup D + ON C.ResumeInfoGroupId = D.ID AND D.IsEnable = 1 + WHERE C.ResumeTemplateID = @ResumeTemplateID + AND D.GroupType = '{groupType}' and A.ColumnName !='AttachmentIDs' + ORDER BY D.GroupType, b.SortNo"; + + return await Db.Ado.SqlQueryAsync(sql); + } + public static async Task> GenerateReumeArchivesImportTemplate(ISqlSugarClient Db, string groupType, string groupName) + { + 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); + + DataTable dt = new DataTable("TempTable"); + + var formColumns = await QueryResumeFormColumn(Db, groupType); + string fileName = path + SnowFlakeSingle.instance.getID() + ".xlsx"; + if (groupType == "Family") + dt.Columns.Add("简历姓名", typeof(string)); + else + dt.Columns.Add("姓名", typeof(string)); + formColumns + .ToList() + .ForEach(x => + { + if (!dt.Columns.Contains(x.ColumnNameDesc)) + dt.Columns.Add(x.ColumnNameDesc, typeof(string)); + }); + + var dr = dt.NewRow(); + dt.Rows.Add(dr); + NPOIHelper.ExportExcel(dt, null, groupName, physicsPath + fileName); + + var physicsPath1 = physicsPath + fileName; + //if (dataSourceLists.Any()) + // physicsPath1 = physicsPath + path + newFileName; + return ServiceResult.OprateSuccess(groupName + "_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); + } +} diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeEduBGServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeEduBGServices.cs index d54fd9f7..f5c79c4b 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeEduBGServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeEduBGServices.cs @@ -6,11 +6,13 @@ public class Ghrh_ResumeEduBGServices : BaseServices, IGhrh_ResumeEduBGServices { private readonly IBaseRepository _dal; - public Ghrh_ResumeEduBGServices(ICaching caching, IBaseRepository dal) + private readonly ICommonServices _commonServices; + public Ghrh_ResumeEduBGServices(ICaching caching, IBaseRepository dal, ICommonServices commonServices) { this._dal = dal; base.BaseDal = dal; base._caching = caching; + _commonServices = commonServices; } public override async Task> QueryDto(Expression> whereExpression) @@ -95,62 +97,11 @@ public class Ghrh_ResumeEduBGServices : BaseServices> QueryResumeFormColumn(long resumeTemplateID = 0) - { - resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1"); - var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} - - SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName, -A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSourceID - FROM Ghrh_ResumeInfoColumn A - LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B - ON B.ResumeInfoColumnID = A.ID - AND B.IsDisplay = 1 - AND B.IsEnable = 1 - AND A.IsEnable = 1 - JOIN Ghrh_ResumeTemplateInfoGroup C - ON B.ResumeTemplateInfoGroupID = C.Id - JOIN Ghrh_ResumeInfoGroup D - ON C.ResumeInfoGroupId = D.ID AND D.IsEnable = 1 - WHERE C.ResumeTemplateID = @ResumeTemplateID - AND D.GroupType = 'Education' and b.StaffInfoColumnNo !='AttachmentIDs' - ORDER BY D.GroupType, b.SortNo"; - - return await Db.Ado.SqlQueryAsync(sql); - } #region Excel导入 public override async Task> DownloadExcel(string 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(Ghre_Teacher); - - DataTable dt = new DataTable("TempTable"); - - var formColumns = await QueryResumeFormColumn(); - string fileName = path + SnowFlakeSingle.instance.getID() + ".xlsx"; - dt.Columns.Add("姓名", typeof(string)); - formColumns - .ToList() - .ForEach(x => - { - if (!dt.Columns.Contains(x.ColumnNameDesc)) - dt.Columns.Add(x.ColumnNameDesc, typeof(string)); - }); - - var dr = dt.NewRow(); - dt.Rows.Add(dr); - NPOIHelper.ExportExcel(dt, null, "教育背景", physicsPath + fileName); - - var physicsPath1 = physicsPath + fileName; - //if (dataSourceLists.Any()) - // physicsPath1 = physicsPath + path + newFileName; - var result = ServiceResult.OprateSuccess("教育背景_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); - return result; + return await ExtensionHelper.GenerateReumeArchivesImportTemplate(Db, "Education", "教育背景"); } public override async Task> ImportExcel(IFormFile file, string menuName = null, long? MasterId = null) { @@ -176,7 +127,7 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo if (dt.Columns["Comments"] == null) dt.Columns.Add("Comments", typeof(string)); - var formColumns = await QueryResumeFormColumn(); + var formColumns = await ExtensionHelper.QueryResumeFormColumn(Db, "Education"); for (int i = 0; i < dt.Rows.Count; i++) { diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeHomeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeHomeServices.cs index 8705cd02..ea2a8f82 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeHomeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeHomeServices.cs @@ -93,58 +93,9 @@ public class Ghrh_ResumeHomeServices : BaseServices> QueryResumeFormColumn(long resumeTemplateID = 0) - { - resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1"); - var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} - - SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName, -A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSourceID - FROM Ghrh_ResumeInfoColumn A - LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B - ON B.ResumeInfoColumnID = A.ID - AND B.IsDisplay = 1 - AND B.IsEnable = 1 - AND A.IsEnable = 1 - JOIN Ghrh_ResumeTemplateInfoGroup C - ON B.ResumeTemplateInfoGroupID = C.Id - JOIN Ghrh_ResumeInfoGroup D - ON C.ResumeInfoGroupId = D.ID AND D.IsEnable = 1 - WHERE C.ResumeTemplateID = @ResumeTemplateID - AND D.GroupType = 'Family' and b.StaffInfoColumnNo !='AttachmentIDs' - ORDER BY D.GroupType, b.SortNo"; - - return await Db.Ado.SqlQueryAsync(sql); - } public override async Task> DownloadExcel(string 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); - - DataTable dt = new DataTable("TempTable"); - - var formColumns = await QueryResumeFormColumn(); - string fileName = path + SnowFlakeSingle.instance.getID() + ".xlsx"; - dt.Columns.Add("姓名", typeof(string)); - formColumns - .ToList() - .ForEach(x => - { - if (!dt.Columns.Contains(x.ColumnNameDesc)) - dt.Columns.Add(x.ColumnNameDesc, typeof(string)); - }); - - var dr = dt.NewRow(); - dt.Rows.Add(dr); - NPOIHelper.ExportExcel(dt, null, "社会关系", physicsPath + fileName); - - var physicsPath1 = physicsPath + fileName; - //if (dataSourceLists.Any()) - // physicsPath1 = physicsPath + path + newFileName; - var result = ServiceResult.OprateSuccess("社会关系_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); - return result; + return await ExtensionHelper.GenerateReumeArchivesImportTemplate(Db, "Family", "社会关系"); } public override async Task> ImportExcel(IFormFile file, string menuName = null, long? MasterId = null) { @@ -170,8 +121,8 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo if (dt.Columns["Comments"] == null) dt.Columns.Add("Comments", typeof(string)); - var formColumns = await QueryResumeFormColumn(); - + var formColumns = await ExtensionHelper.QueryResumeFormColumn(Db, "Family"); + for (int i = 0; i < dt.Rows.Count; i++) { var comments = new List(); @@ -184,9 +135,9 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo { "CreateTime", DateTime.Now }, { "UpdateTime", DateTime.Now } }; - if (!dt.Columns.Contains("姓名")) + if (!dt.Columns.Contains("简历姓名")) { - comments.Add("未查询到【姓名】列!"); + comments.Add("未查询到【简历姓名】列!"); data.ErrorCount++; dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); isExistError = true; @@ -297,7 +248,7 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo } - var StaffName = dt.Rows[i]["姓名"].ToString(); + var StaffName = dt.Rows[i]["简历姓名"].ToString(); var resume = await Db.Queryable().Where(x => x.StaffName == StaffName || x.StaffEname == StaffName).FirstAsync(); if (resume is null) diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeLicenceServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeLicenceServices.cs index 0d990e2a..0a3518bb 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeLicenceServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeLicenceServices.cs @@ -89,59 +89,9 @@ public class Ghrh_ResumeLicenceServices : BaseServices> QueryResumeFormColumn(long resumeTemplateID = 0) - { - resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1"); - var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} - - SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName, -A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSourceID - FROM Ghrh_ResumeInfoColumn A - LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B - ON B.ResumeInfoColumnID = A.ID - AND B.IsDisplay = 1 - AND B.IsEnable = 1 - AND A.IsEnable = 1 - JOIN Ghrh_ResumeTemplateInfoGroup C - ON B.ResumeTemplateInfoGroupID = C.Id - JOIN Ghrh_ResumeInfoGroup D - ON C.ResumeInfoGroupId = D.ID AND D.IsEnable = 1 - WHERE C.ResumeTemplateID = @ResumeTemplateID - AND D.GroupType = 'Licence' and b.StaffInfoColumnNo !='AttachmentIDs' - ORDER BY D.GroupType, b.SortNo"; - - return await Db.Ado.SqlQueryAsync(sql); - } public override async Task> DownloadExcel(string 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); - - DataTable dt = new DataTable("TempTable"); - - var formColumns = await QueryResumeFormColumn(); - string fileName = path + SnowFlakeSingle.instance.getID() + ".xlsx"; - dt.Columns.Add("姓名", typeof(string)); - formColumns - .ToList() - .ForEach(x => - { - if (!dt.Columns.Contains(x.ColumnNameDesc)) - dt.Columns.Add(x.ColumnNameDesc, typeof(string)); - }); - - var dr = dt.NewRow(); - dt.Rows.Add(dr); - NPOIHelper.ExportExcel(dt, null, "证件", physicsPath + fileName); - - var physicsPath1 = physicsPath + fileName; - //if (dataSourceLists.Any()) - // physicsPath1 = physicsPath + path + newFileName; - var result = ServiceResult.OprateSuccess("证件_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); - return result; + return await ExtensionHelper.GenerateReumeArchivesImportTemplate(Db, "Licence", "证件"); } public override async Task> ImportExcel(IFormFile file, string menuName = null, long? MasterId = null) { @@ -167,7 +117,7 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo if (dt.Columns["Comments"] == null) dt.Columns.Add("Comments", typeof(string)); - var formColumns = await QueryResumeFormColumn(); + var formColumns = await ExtensionHelper.QueryResumeFormColumn(Db, "Licence"); for (int i = 0; i < dt.Rows.Count; i++) { diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeTrainingServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeTrainingServices.cs index 596a7fb0..6207a9e8 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeTrainingServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeTrainingServices.cs @@ -90,61 +90,12 @@ public class Ghrh_ResumeTrainingServices : BaseServices> QueryResumeFormColumn(long resumeTemplateID = 0) - { - resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1"); - var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} - - SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName, -A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSourceID - FROM Ghrh_ResumeInfoColumn A - LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B - ON B.ResumeInfoColumnID = A.ID - AND B.IsDisplay = 1 - AND B.IsEnable = 1 - AND A.IsEnable = 1 - JOIN Ghrh_ResumeTemplateInfoGroup C - ON B.ResumeTemplateInfoGroupID = C.Id - JOIN Ghrh_ResumeInfoGroup D - ON C.ResumeInfoGroupId = D.ID AND D.IsEnable = 1 - WHERE C.ResumeTemplateID = @ResumeTemplateID - AND D.GroupType = 'Training' and b.StaffInfoColumnNo !='AttachmentIDs' - ORDER BY D.GroupType, b.SortNo"; - return await Db.Ado.SqlQueryAsync(sql); - } + #region Excel导入 public override async Task> DownloadExcel(string 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); - - DataTable dt = new DataTable("TempTable"); - - var formColumns = await QueryResumeFormColumn(); - string fileName = path + SnowFlakeSingle.instance.getID() + ".xlsx"; - dt.Columns.Add("姓名", typeof(string)); - formColumns - .ToList() - .ForEach(x => - { - if (!dt.Columns.Contains(x.ColumnNameDesc)) - dt.Columns.Add(x.ColumnNameDesc, typeof(string)); - }); + return await ExtensionHelper.GenerateReumeArchivesImportTemplate(Db, "Training", "培训记录"); - var dr = dt.NewRow(); - dt.Rows.Add(dr); - NPOIHelper.ExportExcel(dt, null, "培训记录", physicsPath + fileName); - - var physicsPath1 = physicsPath + fileName; - //if (dataSourceLists.Any()) - // physicsPath1 = physicsPath + path + newFileName; - var result = ServiceResult.OprateSuccess("培训记录_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); - return result; } public override async Task> ImportExcel(IFormFile file, string menuName = null, long? MasterId = null) { @@ -169,8 +120,7 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo var dt = NPOIHelper.ImportExcel(filepath, "培训记录"); if (dt.Columns["Comments"] == null) dt.Columns.Add("Comments", typeof(string)); - - var formColumns = await QueryResumeFormColumn(); + var formColumns = await ExtensionHelper.QueryResumeFormColumn(Db, "Training"); for (int i = 0; i < dt.Rows.Count; i++) { @@ -220,7 +170,7 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo isExistError = true; continue; } - if (column.DataSourceType.IsNullOrEmpty()) + if (column.DataType.IsNullOrEmpty()) { if (column.DataType == "int" || column.DataType == "decimal") { diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeWorkExpServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeWorkExpServices.cs index 79e27b9a..1af9a131 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeWorkExpServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeWorkExpServices.cs @@ -90,60 +90,10 @@ public class Ghrh_ResumeWorkExpServices : BaseServices> QueryResumeFormColumn(long resumeTemplateID = 0) - { - resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1"); - var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} - - SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName, -A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSourceID - FROM Ghrh_ResumeInfoColumn A - LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B - ON B.ResumeInfoColumnID = A.ID - AND B.IsDisplay = 1 - AND B.IsEnable = 1 - AND A.IsEnable = 1 - JOIN Ghrh_ResumeTemplateInfoGroup C - ON B.ResumeTemplateInfoGroupID = C.Id - JOIN Ghrh_ResumeInfoGroup D - ON C.ResumeInfoGroupId = D.ID AND D.IsEnable = 1 - WHERE C.ResumeTemplateID = @ResumeTemplateID - AND D.GroupType = 'WorkExp' and b.StaffInfoColumnNo !='AttachmentIDs' - ORDER BY D.GroupType, b.SortNo"; - - return await Db.Ado.SqlQueryAsync(sql); - } + #region Excel导入 public override async Task> DownloadExcel(string 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); - - DataTable dt = new DataTable("TempTable"); - - var formColumns = await QueryResumeFormColumn(); - string fileName = path + SnowFlakeSingle.instance.getID() + ".xlsx"; - dt.Columns.Add("姓名", typeof(string)); - formColumns - .ToList() - .ForEach(x => - { - if (!dt.Columns.Contains(x.ColumnNameDesc)) - dt.Columns.Add(x.ColumnNameDesc, typeof(string)); - }); - - var dr = dt.NewRow(); - dt.Rows.Add(dr); - NPOIHelper.ExportExcel(dt, null, "工作经历", physicsPath + fileName); - - var physicsPath1 = physicsPath + fileName; - //if (dataSourceLists.Any()) - // physicsPath1 = physicsPath + path + newFileName; - var result = ServiceResult.OprateSuccess("工作经历_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); - return result; + return await ExtensionHelper.GenerateReumeArchivesImportTemplate(Db, "WorkExp", "工作经历"); } public override async Task> ImportExcel(IFormFile file, string menuName = null, long? MasterId = null) { @@ -169,8 +119,8 @@ A.DataType, A.ColumnType, A.IsRequired, A.DataSourceType, A.DataSource, A.DataSo if (dt.Columns["Comments"] == null) dt.Columns.Add("Comments", typeof(string)); - var formColumns = await QueryResumeFormColumn(); - + var formColumns = await ExtensionHelper.QueryResumeFormColumn(Db, "WorkExp"); + for (int i = 0; i < dt.Rows.Count; i++) { var comments = new List();