面试官-面试官面试通过率

master
xiaochanghai 5 months ago
parent 5bb0c3eacb
commit 6f2aaa12dd
  1. 14
      Tiobon.Core.Api/Controllers/ReportController.cs
  2. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  3. 2
      Tiobon.Core.IServices/IReportServices.cs
  4. 2
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  5. 86
      Tiobon.Core.Services/ReportServices.cs
  6. 14
      Tiobon.Core/Tiobon.Core.xml

@ -25,7 +25,7 @@ public class ReportController : BaseController<IReportServices, Ghrh_Resume, Ghr
/// <param name="filter"></param>
/// <param name="condition"></param>
/// <returns></returns>
[HttpPost, Route("QueryNewStaff")]
[HttpPost("QueryNewStaff")]
public async Task<ServicePageResult<Ghra_StaffDto>> QueryNewStaffAsync([FromBody] QueryBody filter, string condition) => await _service.QueryNewStaffAsync(filter, condition, true);
#endregion
@ -35,7 +35,17 @@ public class ReportController : BaseController<IReportServices, Ghrh_Resume, Ghr
/// </summary>
/// <param name="langId">langId</param>
/// <returns></returns>
[HttpPost, Route("QueryESSResumeScreenPassRate/{langId}")]
[HttpPost("QueryESSResumeScreenPassRate/{langId}")]
public async Task<ServiceResult<dynamic>> QueryESSResumeScreenPassRate(int langId) => await _service.QueryESSResumeScreenPassRate(langId);
#endregion
#region 面试官-简历筛选通过率
/// <summary>
/// 面试官-简历筛选通过率
/// </summary>
/// <param name="langId">langId</param>
/// <returns></returns>
[HttpPost("QueryESSInterviewPassRate/{langId}")]
public async Task<ServiceResult<dynamic>> QueryESSInterviewPassRate(int langId) => await _service.QueryESSInterviewPassRate(langId);
#endregion
}

@ -597,6 +597,13 @@
<param name="langId">langId</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.ReportController.QueryESSInterviewPassRate(System.Int32)">
<summary>
面试官-简历筛选通过率
</summary>
<param name="langId">langId</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.TasksQzController.Get(System.Int32,System.String)">
<summary>
分页获取

@ -13,4 +13,6 @@ public interface IReportServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDto, In
Task<ServicePageResult<Ghra_StaffDto>> QueryNewStaffAsync(QueryBody filter, string condition, bool? IsEnable = true);
Task<ServiceResult<dynamic>> QueryESSResumeScreenPassRate(int langId = 1);
Task<ServiceResult<dynamic>> QueryESSInterviewPassRate(int langId = 1);
}

@ -1134,7 +1134,7 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
#region 场景ID获取课程
public async Task<ServiceResult<List<Ghre_CourseDto>>> QueryBySceneId(long courseSceneId)
{
var entitys = await base.Query(x => x.CourseSceneId == courseSceneId);
var entitys = await base.Query(x => x.CourseSceneId == courseSceneId && x.Status == Consts.DIC_COURSE_STATUS.RELEASED);
var courseWareIds = entitys.Select(x => x.CourseWareId).Distinct().ToList();
var attachments = await Db.Queryable<Ghre_CourseWareAttachment>().Where(x => courseWareIds.Contains(x.CourseWareId)).ToListAsync();
//var attachments = await _ghre_CourseWareAttachmentServices.Query(x => x.CourseWareId != null && attachmentIds.Contains(x.CourseWareId.Value));

@ -93,7 +93,7 @@ public partial class ReportServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto,
var count = group.Count;
var count1 = group.Where(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.Fail).Count();
var count2 = count - count1;
var count2 = count - count1;
data1.Add(count);
data2.Add(count2);
decimal count3 = 0;
@ -132,4 +132,88 @@ public partial class ReportServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto,
return ServiceResult<dynamic>.OprateSuccess("获取成功", data);
}
#endregion
#region 面试官-面试通过率
/// <summary>
/// 面试官-面试通过率:面试官面试通过人数 / 已面试人数 × 100%
/// </summary>
/// <param name="langId"></param>
/// <returns></returns>
public async Task<ServiceResult<dynamic>> QueryESSInterviewPassRate(int langId = 1)
{
dynamic data = new ExpandoObject();
var series = new JArray();
var XAxis = new List<string>();
var date = DateTime.Now.AddMonths(-11);
var data1 = new List<int>();
var data2 = new List<int>();
var data3 = new List<decimal>();
var startDate = DateTime.Now.AddMonths(-11);
var endDate = DateTime.Now.AddMonths(1);
startDate = new DateTime(startDate.Year, startDate.Month, 1);
endDate = new DateTime(endDate.Year, endDate.Month, 1);
var orderIds = await Db.Queryable<Ghrh_InterviewRecord>()
.Where(x => x.StaffId == App.User.StaffId && x.CreateTime >= startDate && x.CreateTime < endDate)
.Select(x => x.OrderId)
.Distinct()
.ToListAsync();
var orders = await Db.Queryable<Ghrh_InterviewOrder>().Where(x =>
orderIds.Contains(x.Id) &&
x.Status != DIC_INTERVIEW_ORDER_STATUS.Fail &&
x.Status != DIC_INTERVIEW_ORDER_STATUS.HasRecommended).ToListAsync();
for (int i = 1; i <= 12; i++)
{
var date1 = DateTimeHelper.ConvertToMonthString(date);
XAxis.Add(date1);
var group = orders
.Where(x => x.RecommendTime != null && x.RecommendTime.Value.Date.Month == date.Month && x.RecommendTime.Value.Date.Year == date.Year)
.ToList();
var count = group.Count;
var count1 = group.Where(x => x.IsPass == true).Count();
var count2 = count - count1;
data1.Add(count);
data2.Add(count2);
decimal count3 = 0;
if (count2 > 0 && count > 0)
count3 = ((decimal)count2 / count) * 100;
data3.Add(StringHelper.TrimDecimal(count3, 2));
date = date.AddMonths(1);
}
var item = new JObject
{
new JProperty("color", "rgba(43, 165, 177, 1)"),
new JProperty("data", data1),
new JProperty("name", await QueryLangValue("F_ResumeMaintenance_0234", "已面试人数")),
};
series.Add(item);
item = new JObject
{
new JProperty("color", "rgba(255, 152, 18, 1)"),
new JProperty("data", data2),
new JProperty("name", await QueryLangValue("F_ResumeMaintenance_0235", "面试通过人数")),
};
series.Add(item);
item = new JObject
{
new JProperty("color", "rgba(255, 147, 0, 1)"),
new JProperty("data", data3),
new JProperty("name", await QueryLangValue("F_ResumeMaintenance_0233", "面试官面试通过率")),
};
series.Add(item);
data.XAxis = XAxis;
data.series = series;
return ServiceResult<dynamic>.OprateSuccess("获取成功", data);
}
#endregion
}

@ -576,12 +576,11 @@
公共服务
</summary>
</member>
<member name="M:Tiobon.Core.Controllers.ReportController.#ctor(Microsoft.Extensions.Logging.ILogger{Tiobon.Core.Controllers.CommonController},Tiobon.Core.IServices.IReportServices)">
<member name="M:Tiobon.Core.Controllers.ReportController.#ctor(Tiobon.Core.IServices.IReportServices)">
<summary>
构造函数
</summary>
<param name="logger"></param>
<param name="services"></param>
</summary>
<param name="service"></param>
</member>
<member name="M:Tiobon.Core.Controllers.ReportController.QueryNewStaffAsync(Tiobon.Core.Common.QueryBody,System.String)">
<summary>
@ -591,6 +590,13 @@
<param name="condition"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.ReportController.QueryESSResumeScreenPassRate(System.Int32)">
<summary>
面试官-简历筛选通过率
</summary>
<param name="langId">langId</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.TasksQzController.Get(System.Int32,System.String)">
<summary>
分页获取

Loading…
Cancel
Save