招聘完成统计表

master
xiaochanghai 6 months ago
parent 7ad6220c54
commit 0a40d9af0c
  1. 1250
      Model/Tiobon.Web.pdm
  2. 16
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_HumanRequestController.cs
  3. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 4
      Tiobon.Core.IServices/Ghrh/IGhrh_HumanRequestServices.cs
  5. 13
      Tiobon.Core.Model/View/Ghrh/Ghrh_HumanRequest.Dto.View.cs
  6. 223
      Tiobon.Core.Services/Ghrh/Ghrh_HumanRequestServices.cs
  7. 7
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -64,5 +64,19 @@ public class Ghrh_HumanRequestController : BaseController<IGhrh_HumanRequestServ
{
return await _service.ExportSummaryExcel(body);
}
#endregion
#endregion
[HttpPost, Route("QueryComplete")]
public async Task<ServicePageResult<Ghrh_HumanRequestDto>> QueryFilterCompletePage([FromBody] QueryBody body)
{
return await _service.QueryFilterCompletePage(body);
}
[HttpPost, Route("ExportCompletevExcel")]
public virtual async Task<ServiceResult<ExcelData>> ExportCompleteExcel([FromBody] QueryExport body)
{
return await _service.ExportCompleteExcel(body);
}
}

@ -1654,6 +1654,13 @@
<param name="langId">语言别</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ExportHireExcel(Tiobon.Core.Common.QueryExport)">
<summary>
Excel导出录用名单
</summary>
<param name="body"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrh_ResumeEduBGController">
<summary>
教育背景(Controller)

@ -17,4 +17,8 @@ public interface IGhrh_HumanRequestServices : IBaseServices<Ghrh_HumanRequest, G
Task<ServicePageResult<Ghrh_HumanRequestDto>> QueryFilterSummaryPage(QueryBody filter);
Task<ServiceResult<ExcelData>> ExportSummaryExcel(QueryExport body);
Task<ServicePageResult<Ghrh_HumanRequestDto>> QueryFilterCompletePage(QueryBody filter);
Task<ServiceResult<ExcelData>> ExportCompleteExcel(QueryExport body);
}

@ -132,4 +132,17 @@ public class Ghrh_HumanRequestDto : Ghrh_HumanRequest
public string Year { get; set; }
public string Month { get; set; }
public int InRequestCount { get; set; }
public int InRecommendCount { get; set; }
public int InInterviewCount { get; set; }
public int InOfferCount { get; set; }
public int InCheckInCount { get; set; }
public int OutRequestCount { get; set; }
public int OutRecommendCount { get; set; }
public int OutInterviewCount { get; set; }
public int OutOfferCount { get; set; }
public int OutCheckInCount { get; set; }
}

@ -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);
}
}

@ -1654,6 +1654,13 @@
<param name="langId">语言别</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ExportHireExcel(Tiobon.Core.Common.QueryExport)">
<summary>
Excel导出录用名单
</summary>
<param name="body"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrh_ResumeEduBGController">
<summary>
教育背景(Controller)

Loading…
Cancel
Save