|
|
|
@ -93,58 +93,9 @@ public class Ghrh_ResumeHomeServices : BaseServices<Ghrh_ResumeHome, Ghrh_Resume |
|
|
|
|
|
|
|
|
|
#region Excel导入 |
|
|
|
|
|
|
|
|
|
public async Task<List<ResumeFormColumn1>> 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<ResumeFormColumn1>(sql); |
|
|
|
|
} |
|
|
|
|
public override async Task<ServiceResult<string>> 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<string>.OprateSuccess("社会关系_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1); |
|
|
|
|
return result; |
|
|
|
|
return await ExtensionHelper.GenerateReumeArchivesImportTemplate(Db, "Family", "社会关系"); |
|
|
|
|
} |
|
|
|
|
public override async Task<ServiceResult<ExcelData>> 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<string>(); |
|
|
|
@ -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<Ghrh_Resume>().Where(x => x.StaffName == StaffName || x.StaffEname == StaffName).FirstAsync(); |
|
|
|
|
if (resume is null) |
|
|
|
|