using NPOI.SS.UserModel;
using static Tiobon.Core.Model.Consts;
namespace Tiobon.Core.Services;
///
/// 人力需求维护 (服务)
///
public class Ghrh_HumanRequestServices : BaseServices, IGhrh_HumanRequestServices
{
private readonly IBaseRepository _dal;
private readonly IGhrh_HumanRequestDetailServices _ghrh_HumanRequestDetailServices;
public Ghrh_HumanRequestServices(ICaching caching, IBaseRepository dal, IGhrh_HumanRequestDetailServices ghrh_HumanRequestDetailServices)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
_ghrh_HumanRequestDetailServices = ghrh_HumanRequestDetailServices;
}
#region 字典映射、全称、单位转换等
///
/// 字典映射、全称、单位转换等
///
///
private async Task SetLabel(Ghrh_HumanRequestDto x)
{
if (x != null)
{
x.GenderLabel = await GetParaLabel("Gender", x.Gender);
x.InOrOutLabel = await GetParaLabel("ResumeBudgetTypr", x.InOrOut);
x.ImportanceDegreeLabel = await GetParaLabel("ResumeImportanceDegree", x.ImportanceDegree);
x.InTime1 = DateTimeHelper.ConvertToDayString(x.InTime);
x.AgeLabel = await GetParaLabel("AgePeriodSetup", x.Age);
x.ResumeTypeLabel = await GetParaLabel("ResumeType", x.ResumeType);
if (x.WorkState.IsNotEmptyOrNull())
{
if (x.WorkState == 0) x.WorkStateLabel = "审批中";
if (x.WorkState == 1) x.WorkStateLabel = "审批通过";
}
}
}
#endregion
#region 新增
public override async Task Add(InsertGhrh_HumanRequestInput entity)
{
entity.ApplicantId = GetStaffId();
entity.RequestNo = await GenerateContinuousSequence("Ghrh_HumanRequest", "RequestNo", "R");
var id = await base.Add(entity);
var sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghrh_HumanRequest WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghrh_HumanRequest SET Id={id1} WHERE Id ='{id}'";
if (entity.Quality != null && entity.Quality.Any())
{
var qualitys = entity.Quality.Select(x => new InsertGhrh_HumanRequestDetailInput()
{
RequestId = id1,
DetailName = x,
Source = "Quality"
}).ToList();
await _ghrh_HumanRequestDetailServices.Add(qualitys);
}
if (entity.Experience != null && entity.Experience.Any())
{
var experiences = entity.Experience.Select(x => new InsertGhrh_HumanRequestDetailInput()
{
RequestId = id1,
DetailName = x.value,
DetailValue = x.text,
Source = "Experience"
}).ToList();
await _ghrh_HumanRequestDetailServices.Add(experiences);
}
await Db.Ado.ExecuteCommandAsync(sql);
return id1;
}
public async Task> InsertByStatus(InsertGhrh_HumanRequestInput insertModel, string status)
{
var data = ServiceResult.OprateSuccess("新增成功", 0);
insertModel.Status = status;
var id = await Add(insertModel);
data.Success = id > 0;
if (data.Success)
data.Data = id;
else
return ServiceResult.OprateFailed("发布成功!");
return data;
}
#endregion
#region 查询
public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
if (condition.IsNotEmptyOrNull())
condition += $" AND dbo.[FUserDeptPriv] ({App.User.ID}, DeptId, getdate())=1";
else
condition = $"dbo.[FUserDeptPriv] ({App.User.ID}, DeptId, getdate())=1";
var result = await base.QueryFilterPage(filter, condition, IsEnable);
var entitys = result.result.DT_TableDataT1;
var deptIds = entitys.Where(x => x.DeptId != null).Select(x => x.DeptId).ToList();
var gradeIds = entitys.Where(x => x.GradeId != null).Select(x => x.GradeId).ToList();
var jobIds = entitys.Where(x => x.JobId != null).Select(x => x.JobId).ToList();
var titleIds = entitys.Where(x => x.TitleId != null).Select(x => x.TitleId).ToList();
var reportIds = entitys.Where(x => x.ReportId != null).Select(x => x.ReportId).ToList();
if (reportIds.Any())
{
var staffs = await Db.Queryable().Where(x => reportIds.Contains(x.StaffID)).ToListAsync();
entitys.ForEach(rule =>
{
rule.ReportName = staffs.FirstOrDefault(o => rule.ReportId == o.StaffID)?.StaffName;
});
}
if (deptIds.Any())
{
var depts = await Db.Queryable().Where(x => deptIds.Contains(x.DeptID)).ToListAsync();
entitys.ForEach(rule =>
{
rule.DeptName = depts.FirstOrDefault(o => rule.DeptId == o.DeptID)?.DeptName;
});
}
if (titleIds.Any())
{
var titles = await Db.Queryable().Where(x => titleIds.Contains(x.TitleID)).ToListAsync();
entitys.ForEach(rule =>
{
rule.TitleName = titles.FirstOrDefault(o => rule.TitleId == o.TitleID)?.TitleName;
});
}
if (gradeIds.Any())
{
var grades = await Db.Queryable().Where(x => gradeIds.Contains(x.GradeID)).ToListAsync();
entitys.ForEach(rule =>
{
rule.GradeName = grades.FirstOrDefault(o => rule.GradeId == o.GradeID)?.GradeName;
});
}
if (jobIds.Any())
{
var jobs = await Db.Queryable().Where(x => jobIds.Contains(x.JobID)).ToListAsync();
entitys.ForEach(rule =>
{
rule.JobName = jobs.FirstOrDefault(o => rule.JobId == o.JobID)?.JobName;
});
}
for (int i = 0; i < entitys.Count; i++)
{
if (entitys[i].YearHumanId.IsNotEmptyOrNull())
entitys[i].YearHumanName = await Db.Ado.GetStringAsync(@$"SELECT CAST (A.[Year] AS VARCHAR) + '_' + B.TitleName + '_' + C.JobName label
FROM Ghrh_YearHumanSettings A
LEFT JOIN Ghra_Title B ON A.TitleId = B.TitleID
LEFT JOIN Ghra_Job C ON A.JobId = C.JobID
WHERE A.IsEnable = 1 AND A.Id = {entitys[i].YearHumanId}");
if (entitys[i].WorkNo.IsNotEmptyOrNull())
entitys[i].RequestNo = entitys[i].WorkNo;
}
var userIds = entitys.Where(x => x.RefuseUserId != null).Select(x => x.RefuseUserId).Distinct().ToList();
userIds.AddRange(entitys.Where(x => x.AgreeUserId != null).Select(x => x.AgreeUserId).Distinct());
var users = await Db.Queryable().Where(x => userIds.Contains(x.UserId)).ToListAsync();
entitys.ForEach(async x =>
{
await SetLabel(x);
if (x.AgreeUserId != null)
x.AgreeUserName = users.Where(o => x.AgreeUserId == o.UserId).FirstOrDefault()?.UserName;
if (x.RefuseUserId != null)
x.RefuseUserName = users.Where(o => x.RefuseUserId == o.UserId).FirstOrDefault()?.UserName;
});
result.result.DT_TableDataT1 = entitys;
return result;
}
public override async Task QueryById(object objId)
{
var result = await base.QueryById(objId);
result.DeptName = (await Db.Queryable().FirstAsync(o => result.DeptId == o.DeptID))?.DeptName;
if (result.TitleId.IsNotEmptyOrNull())
result.TitleName = (await Db.Queryable().FirstAsync(o => result.TitleId == o.TitleID))?.TitleName;
#region 返回部门负责人信息
var dept = await Db.Queryable().Where(x => x.DeptID == result.DeptId).FirstAsync();
if (dept != null)
{
var staff = await Db.Queryable().Where(x => x.StaffID == dept.DeptManagerID).FirstAsync();
if (staff != null)
{
result.DeptManagerID = staff.StaffID;
result.DeptManagerEmail = staff.Email;
}
}
#endregion
return result;
}
public override async Task> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
var DT_TableDataT1 = result.result.DT_TableDataT1;
if (DT_TableDataT1 != null && DT_TableDataT1.Any())
{
var details = await _ghrh_HumanRequestDetailServices.Query(x => x.RequestId == DT_TableDataT1[0].Id);
DT_TableDataT1[0].Quality = details.Where(x => x.Source == "Quality").Select(x => x.DetailName).ToList();
DT_TableDataT1[0].Experience = details.Where(x => x.Source == "Experience").Select(x => new Ghrh_HumanRequestExperience()
{
value = x.DetailName,
text = x.DetailValue,
}).ToList();
}
result.result.DT_TableDataT1 = DT_TableDataT1;
return result;
}
public async Task> QueryFilterSummaryPage(QueryBody filter)
{
if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "YearMonth DESC";
if (filter.pageSize == 0)
filter.pageSize = 10000;
Type entityType = typeof(Ghrh_InterviewOrder);
var countSql = @$" SELECT COUNT(1) FROM Ghrh_HumanRequestSummary_V";
var sql1 = @$"DECLARE @langId INT = {filter.langId};";
var sql = @$" SELECT *
FROM Ghrh_HumanRequestSummary_V A";
string conditions = " WHERE 1=1 ";
var properties = entityType.GetGenericProperties();
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize")
continue;
if (!string.IsNullOrWhiteSpace(value))
conditions = DealConditions(conditions, name, value);
}
sql += conditions;
countSql += conditions;
int total = await Db.Ado.GetIntAsync(countSql);
sql = "SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY " + filter.orderBy + ") NUM FROM (SELECT * FROM (" + sql + " ";
sql += ") A ) B ) C";
sql += " WHERE NUM <= " + filter.pageNum * filter.pageSize + " AND NUM >" + (filter.pageNum - 1) * filter.pageSize;
sql = sql1 + sql;
var entitys = await Db.Ado.SqlQueryAsync(sql);
var result = new ServicePageResult(filter.pageNum, total, filter.pageSize, entitys);
var list = result.result.DT_TableDataT1;
var tagIds = new List();
tagIds = tagIds.Distinct().ToList();
var tags = await Db.Queryable().Where(x => tagIds.Contains(x.Id)).ToListAsync();
for (int i = 0; i < list.Count; i++)
{
}
return result;
}
public async Task> ExportSummaryExcel(QueryExport body)
{
QueryBody filter = new QueryBody();
filter.pageNum = 1;
filter.jsonParam = body.jsonParam;
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 QueryFilterSummaryPage(filter);
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))
{
var label = columns.FirstOrDefault(o => o.field == x)?.label;
if (!fieldDescs.ContainsKey(x))
fieldDescs.Add(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 = "/Advanced" + path;
result.fileName = body.exportSet.TitleName + ".xlsx";
return ServiceResult.OprateSuccess("导出成功", result);
}
public async Task> QueryFilterCompletePage(QueryBody filter)
{
if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "YearMonth DESC";
if (filter.pageSize == 0)
filter.pageSize = 10000;
Type entityType = typeof(Ghrh_InterviewOrder);
var countSql = @$" SELECT COUNT(1) FROM Ghrh_HumanRequestComplete_V";
var sql1 = @$"DECLARE @langId INT = {filter.langId};";
var sql = @$" SELECT *
FROM Ghrh_HumanRequestComplete_V A";
string conditions = " WHERE 1=1 ";
var properties = entityType.GetGenericProperties();
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize")
continue;
if (!string.IsNullOrWhiteSpace(value))
conditions = DealConditions(conditions, name, value);
}
sql += conditions;
countSql += conditions;
int total = await Db.Ado.GetIntAsync(countSql);
sql = "SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY " + filter.orderBy + ") NUM FROM (SELECT * FROM (" + sql + " ";
sql += ") A ) B ) C";
sql += " WHERE NUM <= " + filter.pageNum * filter.pageSize + " AND NUM >" + (filter.pageNum - 1) * filter.pageSize;
sql = sql1 + sql;
var entitys = await Db.Ado.SqlQueryAsync(sql);
var result = new ServicePageResult(filter.pageNum, total, filter.pageSize, entitys);
var list = result.result.DT_TableDataT1;
var tagIds = new List();
tagIds = tagIds.Distinct().ToList();
var tags = await Db.Queryable().Where(x => tagIds.Contains(x.Id)).ToListAsync();
for (int i = 0; i < list.Count; i++)
{
}
return result;
}
public async Task> ExportCompleteExcel(QueryExport body)
{
QueryBody filter = new QueryBody();
filter.pageNum = 1;
filter.jsonParam = body.jsonParam;
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 QueryFilterCompletePage(filter);
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))
{
var label = columns.FirstOrDefault(o => o.field == x)?.label;
if (!fieldDescs.ContainsKey(x))
fieldDescs.Add(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 = "/Advanced" + path;
result.fileName = body.exportSet.TitleName + ".xlsx";
return ServiceResult.OprateSuccess("导出成功", result);
}
#endregion
#region 更新
public override async Task Update(long Id, EditGhrh_HumanRequestInput entity)
{
await _ghrh_HumanRequestDetailServices.Delete(x => x.RequestId == Id && x.Source == "Quality");
await _ghrh_HumanRequestDetailServices.Delete(x => x.RequestId == Id && x.Source == "Experience");
if (entity.Quality != null && entity.Quality.Any())
{
var qualitys = entity.Quality.Select(x => new InsertGhrh_HumanRequestDetailInput()
{
RequestId = Id,
DetailName = x,
Source = "Quality"
}).ToList();
await _ghrh_HumanRequestDetailServices.Add(qualitys);
}
if (entity.Experience != null && entity.Experience.Any())
{
var experiences = entity.Experience.Select(x => new InsertGhrh_HumanRequestDetailInput()
{
RequestId = Id,
DetailName = x.value,
DetailValue = x.text,
Source = "Experience"
}).ToList();
await _ghrh_HumanRequestDetailServices.Add(experiences);
}
return await base.Update(Id, entity, null, ["Status"]);
}
public async Task UpdateStatus(InsertGhrh_HumanRequestInput input, string status)
{
HttpRequest request = UserContext.Context.Request;
var api = request.Path.ObjToString().TrimEnd('/').ToLower();
var ip = GetUserIp(UserContext.Context);
var entities = new List();
foreach (var id in input.Ids)
{
if (!BaseDal.Any(id))
continue;
var entity = await BaseDal.QueryById(id);
switch (status)
{
case DIC_REQUEST_STATUS.Active:
entity.AgreeReason = input.Reason;
entity.AgreeTime = DateTime.Now;
entity.AgreeUserId = App.User.ID;
break;
case DIC_REQUEST_STATUS.Temporary:
entity.RefuseReason = input.Reason;
entity.RefuseTime = DateTime.Now;
entity.RefuseUserId = App.User.ID;
break;
}
entity.UpdateIP = ip;
entity.UpdateProg = api;
entity.Status = status;
entities.Add(entity);
}
var result = await BaseDal.Update(entities);
return ServiceResult.OprateSuccess("执行成功!");
}
#endregion
//#region Excel导入
//public override async Task> ImportExcel(IFormFile file, string menuName = null, long? MasterId = null)
//{
// var data = new ExcelData();
// long id = SnowFlakeSingle.instance.getID();
// var physicsPath = $"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot";
// var path = $"{$"{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}import{Path.DirectorySeparatorChar}{id}{Path.DirectorySeparatorChar}"}";
// if (!Directory.Exists(physicsPath + path))
// Directory.CreateDirectory(physicsPath + path);
// var filepath = physicsPath + path + file.FileName;
// using (var stream = File.Create(filepath))
// {
// await file.CopyToAsync(stream);
// }
// string extension = Path.GetExtension(filepath);
// bool isExistError = false;
// var id1 = SnowFlakeSingle.instance.getID();
// string errorFileName = path + SnowFlakeSingle.instance.getID() + extension;
// try
// {
// DataTable dt = NPOIHelper.ImportExcel(filepath, "年度人力配置");
// if (dt.Columns["Comments"] == null)
// dt.Columns.Add("Comments", typeof(string));
// for (int i = 0; i < dt.Rows.Count; i++)
// {
// var comments = new List();
// if (!dt.Columns.Contains("年度"))
// {
// comments.Add("未查询到【年度】列!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// if (!dt.Columns.Contains("部门"))
// {
// comments.Add("未查询到【部门】列!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// if (!dt.Columns.Contains("岗位"))
// {
// comments.Add("未查询到【岗位】列!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// if (!dt.Columns.Contains("职称"))
// {
// comments.Add("未查询到【职称】列!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// if (!dt.Columns.Contains("职等"))
// {
// comments.Add("未查询到【职等】列!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// for (int j = 1; j <= 12; j++)
// {
// if (!dt.Columns.Contains(j + "月"))
// {
// comments.Add($"未查询到【{j}月】列!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// }
// var year = dt.Rows[i]["年度"].ToString();
// var deptName = dt.Rows[i]["部门"].ToString();
// var titleName = dt.Rows[i]["岗位"].ToString();
// var jobName = dt.Rows[i]["职称"].ToString();
// var gradeName = dt.Rows[i]["职等"].ToString();
// var dept = await Db.Queryable().Where(x => x.DeptName == deptName).FirstAsync();
// if (dept == null)
// {
// comments.Add($"无效的部门名称!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// var title = await Db.Queryable().Where(x => x.TitleName == titleName).FirstAsync();
// if (title == null)
// {
// comments.Add($"无效的岗位名称!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// var job = await Db.Queryable().Where(x => x.JobName == jobName).FirstAsync();
// if (job == null)
// {
// comments.Add($"无效的职称名称!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// var grade = await Db.Queryable().Where(x => x.GradeName == gradeName).FirstAsync();
// if (grade == null)
// {
// comments.Add($"无效的职等名称!");
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// if (1 == 1)
// {
// var dict = new Dictionary
// {
// { "Id", SnowFlakeSingle.Instance.NextId() },
// { "CreateBy", App.User.ID },
// { "CreateTime", DateTime.Now },
// { "WorkState", 1 },
// { "Year", year },
// { "DeptId", dept.DeptID },
// { "TitleId", title.TitleID },
// { "GradeId", grade.GradeID },
// { "JobId", job.JobID }
// };
// for (int j = 1; j <= 12; j++)
// dict.Add("M" + j, dt.Rows[i][j + "月"].ToString());
// await Db.Insertable(dict).AS("Ghrh_YearHumanSettings").ExecuteCommandAsync();
// if (comments.Any())
// {
// data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;
// continue;
// }
// else
// {
// data.SuccessCount++;
// }
// }
// else
// {
// dt.Rows[i]["Comments"] = "试题在系统中已存在!";
// data.ErrorCount++;
// isExistError = true;
// continue;
// }
// }
// if (isExistError)
// {
// NPOIHelper.ExportExcel(dt, null, "年度人力配置", physicsPath + errorFileName);
// data.filePath = "/Advanced" + errorFileName;
// }
// }
// catch (Exception)
// {
// }
// return ServiceResult.OprateSuccess("导入成功!", data);
//}
//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(Ghrh_YearHumanSettings);
// var fileName = entityType.GetEntityTableName() + ".xlsx";
// //physicsPath = physicsPath + path + fileName;
// IWorkbook hssfworkbook;
// ISheet sheet;
// using (FileStream file = new FileStream(physicsPath + path + fileName, FileMode.Open, FileAccess.Read))
// {
// //hssfworkbook = new HSSFWorkbook(file);
// //hssfworkbook = new XSSFWorkbook(file);
// hssfworkbook = WorkbookFactory.Create(file);
// }
// //ISheet sheet2 = hssfworkbook.CreateSheet("下拉数据");
// var newFileName = Guid.NewGuid() + ".xlsx";
// int listColIndex = 0;
// var physicsPath1 = physicsPath + path + fileName;
// //if (dataSourceLists.Any())
// // physicsPath1 = physicsPath + path + newFileName;
// var result = ServiceResult.OprateSuccess("人力需求维护_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1);
// return result;
//}
//#endregion
}