|
|
|
@ -1,12 +1,12 @@ |
|
|
|
|
using Microsoft.Extensions.Logging; |
|
|
|
|
using static Tiobon.Core.Model.Consts; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
public partial class ReportServices : BaseServices<RootEntityTkey<int>>, IReportServices |
|
|
|
|
public partial class ReportServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, InsertGhrh_ResumeInput, EditGhrh_ResumeInput>, IReportServices |
|
|
|
|
{ |
|
|
|
|
IHttpContextAccessor _httpContextAccessor; |
|
|
|
|
ILogger<PayServices> _logger; |
|
|
|
|
public ICaching _caching; |
|
|
|
|
private readonly IGhra_StaffServices _staffServices; |
|
|
|
|
public ReportServices(ILogger<PayServices> logger, IHttpContextAccessor httpContextAccessor, ICaching caching = null, IGhra_StaffServices staffServices = null) |
|
|
|
|
{ |
|
|
|
@ -50,6 +50,86 @@ public partial class ReportServices : BaseServices<RootEntityTkey<int>>, IReport |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 面试官-简历筛选通过率 |
|
|
|
|
/// <summary> |
|
|
|
|
/// 面试官-简历筛选通过率:筛选通过人数 / 待筛选人数 × 100% |
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="langId"></param> |
|
|
|
|
/// <returns></returns> |
|
|
|
|
public async Task<ServiceResult<dynamic>> QueryESSResumeScreenPassRate(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)).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.Status == DIC_INTERVIEW_ORDER_STATUS.Fail).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_0231", "待筛选人数")), |
|
|
|
|
}; |
|
|
|
|
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_0230", "筛选通过人数")), |
|
|
|
|
}; |
|
|
|
|
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_0232", "简历筛选通过率")), |
|
|
|
|
}; |
|
|
|
|
series.Add(item); |
|
|
|
|
|
|
|
|
|
data.XAxis = XAxis; |
|
|
|
|
data.series = series; |
|
|
|
|
return ServiceResult<dynamic>.OprateSuccess("获取成功", data); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
} |
|
|
|
|