|
|
@ -316,6 +316,12 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins |
|
|
|
x.Interviewer = order.Interviewer; |
|
|
|
x.Interviewer = order.Interviewer; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
x.InterviewResult = order.InterviewResult; |
|
|
|
|
|
|
|
x.InterviewResultRemark = order.FilterFeedback; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
x.InterviewTime1 = order.InterviewTime; |
|
|
|
x.InterviewTime1 = order.InterviewTime; |
|
|
|
x.InterviewContent = order.InterviewContent; |
|
|
|
x.InterviewContent = order.InterviewContent; |
|
|
|
|
|
|
|
|
|
|
@ -1230,12 +1236,16 @@ END"; |
|
|
|
notNUllCount = 0; |
|
|
|
notNUllCount = 0; |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Family").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Family").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames.ForEach(x => |
|
|
|
|
|
|
|
|
|
|
|
familys.ForEach(family => |
|
|
|
{ |
|
|
|
{ |
|
|
|
var value = entity.GetPropertyValue(x); |
|
|
|
columnNames.ForEach(x => |
|
|
|
if (value != null) |
|
|
|
{ |
|
|
|
notNUllCount++; |
|
|
|
var value = family.GetPropertyValue(x); |
|
|
|
|
|
|
|
if (value != null) |
|
|
|
|
|
|
|
notNUllCount++; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
familyPercent = (decimal)notNUllCount / (columnNames.Count * familys.Count) * 100; |
|
|
|
familyPercent = (decimal)notNUllCount / (columnNames.Count * familys.Count) * 100; |
|
|
|
completionDegree += familyPercent; |
|
|
|
completionDegree += familyPercent; |
|
|
@ -1250,12 +1260,16 @@ END"; |
|
|
|
notNUllCount = 0; |
|
|
|
notNUllCount = 0; |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Education").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Education").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames.ForEach(x => |
|
|
|
|
|
|
|
|
|
|
|
educations.ForEach(education => |
|
|
|
{ |
|
|
|
{ |
|
|
|
var value = entity.GetPropertyValue(x); |
|
|
|
columnNames.ForEach(x => |
|
|
|
if (value != null) |
|
|
|
{ |
|
|
|
notNUllCount++; |
|
|
|
var value = education.GetPropertyValue(x); |
|
|
|
|
|
|
|
if (value != null) |
|
|
|
|
|
|
|
notNUllCount++; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
educationPercent = (decimal)notNUllCount / (columnNames.Count * educations.Count) * 100; |
|
|
|
educationPercent = (decimal)notNUllCount / (columnNames.Count * educations.Count) * 100; |
|
|
|
completionDegree += educationPercent; |
|
|
|
completionDegree += educationPercent; |
|
|
@ -1270,12 +1284,15 @@ END"; |
|
|
|
notNUllCount = 0; |
|
|
|
notNUllCount = 0; |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "WorkExp").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "WorkExp").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames.ForEach(x => |
|
|
|
workExps.ForEach(workExp => |
|
|
|
{ |
|
|
|
{ |
|
|
|
var value = entity.GetPropertyValue(x); |
|
|
|
columnNames.ForEach(x => |
|
|
|
if (value != null) |
|
|
|
{ |
|
|
|
notNUllCount++; |
|
|
|
var value = workExp.GetPropertyValue(x); |
|
|
|
|
|
|
|
if (value != null) |
|
|
|
|
|
|
|
notNUllCount++; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
workExpPercent = (decimal)notNUllCount / (columnNames.Count * workExps.Count) * 100; |
|
|
|
workExpPercent = (decimal)notNUllCount / (columnNames.Count * workExps.Count) * 100; |
|
|
|
completionDegree += workExpPercent; |
|
|
|
completionDegree += workExpPercent; |
|
|
@ -1290,12 +1307,16 @@ END"; |
|
|
|
notNUllCount = 0; |
|
|
|
notNUllCount = 0; |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Licence").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Licence").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames.ForEach(x => |
|
|
|
|
|
|
|
|
|
|
|
licences.ForEach(licence => |
|
|
|
{ |
|
|
|
{ |
|
|
|
var value = entity.GetPropertyValue(x); |
|
|
|
columnNames.ForEach(x => |
|
|
|
if (value != null) |
|
|
|
{ |
|
|
|
notNUllCount++; |
|
|
|
var value = licence.GetPropertyValue(x); |
|
|
|
|
|
|
|
if (value != null) |
|
|
|
|
|
|
|
notNUllCount++; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
licencePercent = (decimal)notNUllCount / (columnNames.Count * licences.Count) * 100; |
|
|
|
licencePercent = (decimal)notNUllCount / (columnNames.Count * licences.Count) * 100; |
|
|
|
completionDegree += licencePercent; |
|
|
|
completionDegree += licencePercent; |
|
|
@ -1310,12 +1331,16 @@ END"; |
|
|
|
notNUllCount = 0; |
|
|
|
notNUllCount = 0; |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Training").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = formColumns.Where(x => x.GroupType == "Training").Select(x => x.ColumnName).ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames = columnNames.Distinct().ToList(); |
|
|
|
columnNames.ForEach(x => |
|
|
|
|
|
|
|
|
|
|
|
trainings.ForEach(training => |
|
|
|
{ |
|
|
|
{ |
|
|
|
var value = entity.GetPropertyValue(x); |
|
|
|
columnNames.ForEach(x => |
|
|
|
if (value != null) |
|
|
|
{ |
|
|
|
notNUllCount++; |
|
|
|
var value = training.GetPropertyValue(x); |
|
|
|
|
|
|
|
if (value != null) |
|
|
|
|
|
|
|
notNUllCount++; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
trainingPercent = (decimal)notNUllCount / (columnNames.Count * trainings.Count) * 100; |
|
|
|
trainingPercent = (decimal)notNUllCount / (columnNames.Count * trainings.Count) * 100; |
|
|
|
completionDegree += trainingPercent; |
|
|
|
completionDegree += trainingPercent; |
|
|
@ -1501,6 +1526,7 @@ END"; |
|
|
|
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended, |
|
|
|
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended, |
|
|
|
StaffId = recommend.InterviewStaffs[i].StaffId, |
|
|
|
StaffId = recommend.InterviewStaffs[i].StaffId, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
await SendMessage(recommend.InterviewStaffs.Where(x => x.StaffId != null).Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate"); |
|
|
|
|
|
|
|
|
|
|
|
var entity = await base.QueryById(id); |
|
|
|
var entity = await base.QueryById(id); |
|
|
|
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended; |
|
|
|
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended; |
|
|
@ -1533,8 +1559,8 @@ END"; |
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (records[i].FirstViewTime.IsNotEmptyOrNull()) |
|
|
|
if (records[i].FirstViewTime.IsNullOrEmpty()) |
|
|
|
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!"); |
|
|
|
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate"); |
|
|
|
} |
|
|
|
} |
|
|
|
await LogRecord(order.Id, $"发送简历推荐提醒"); |
|
|
|
await LogRecord(order.Id, $"发送简历推荐提醒"); |
|
|
|
} |
|
|
|
} |
|
|
@ -1744,7 +1770,7 @@ END"; |
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (records[i].FirstViewTime.IsNotEmptyOrNull()) |
|
|
|
if (records[i].FirstViewTime.IsNotEmptyOrNull()) |
|
|
|
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); |
|
|
|
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!", "/M_ESS_Recruit/F_ESS_Interview"); |
|
|
|
} |
|
|
|
} |
|
|
|
await LogRecord(order.Id, $"发送待面试提醒"); |
|
|
|
await LogRecord(order.Id, $"发送待面试提醒"); |
|
|
|
} |
|
|
|
} |
|
|
@ -1806,7 +1832,7 @@ END"; |
|
|
|
await Update(entity, ["Status"]); |
|
|
|
await Update(entity, ["Status"]); |
|
|
|
|
|
|
|
|
|
|
|
if (input.InterviewStaffs.IsNotEmptyOrNull()) |
|
|
|
if (input.InterviewStaffs.IsNotEmptyOrNull()) |
|
|
|
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的邀约面试,请及时查看!"); |
|
|
|
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的邀约面试,请及时查看!", "/M_ESS_Recruit/F_ESS_Interview"); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1833,7 +1859,7 @@ END"; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
if (input.InterviewStaffs.IsNotEmptyOrNull()) |
|
|
|
if (input.InterviewStaffs.IsNotEmptyOrNull()) |
|
|
|
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!"); |
|
|
|
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|