|
|
|
@ -286,6 +286,173 @@ WHERE A.IsEnable = 1 AND A.Id = {entitys[i].YearHumanId}"); |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult<ExcelData>> 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<QueryExportColumn>(sql); |
|
|
|
|
|
|
|
|
|
var fieldDescs = new Dictionary<string, string>(); |
|
|
|
|
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<ExcelData>.OprateSuccess("导出成功", result); |
|
|
|
|
} |
|
|
|
|
public async Task<ServicePageResult<Ghrh_HumanRequestDto>> 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<Ghrh_HumanRequestDto>(sql); |
|
|
|
|
|
|
|
|
|
var result = new ServicePageResult<Ghrh_HumanRequestDto>(filter.pageNum, total, filter.pageSize, entitys); |
|
|
|
|
|
|
|
|
|
var list = result.result.DT_TableDataT1; |
|
|
|
|
var tagIds = new List<long>(); |
|
|
|
|
|
|
|
|
|
tagIds = tagIds.Distinct().ToList(); |
|
|
|
|
var tags = await Db.Queryable<Ghrh_ResumeTag>().Where(x => tagIds.Contains(x.Id)).ToListAsync(); |
|
|
|
|
for (int i = 0; i < list.Count; i++) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult<ExcelData>> 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<QueryExportColumn>(sql); |
|
|
|
|
|
|
|
|
|
var fieldDescs = new Dictionary<string, string>(); |
|
|
|
|
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<ExcelData>.OprateSuccess("导出成功", result); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 更新 |
|
|
|
@ -362,60 +529,4 @@ WHERE A.IsEnable = 1 AND A.Id = {entitys[i].YearHumanId}"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult<ExcelData>> 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<QueryExportColumn>(sql); |
|
|
|
|
|
|
|
|
|
var fieldDescs = new Dictionary<string, string>(); |
|
|
|
|
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<ExcelData>.OprateSuccess("导出成功", result); |
|
|
|
|
} |
|
|
|
|
} |