【简历面试记录表】

【简历推荐记录表】
master
xiaochanghai 6 months ago
parent d8b60c605b
commit 1f5830f81f
  1. 3
      Tiobon.Core.Model/View/Ghrh/Ghrh_InterviewOrder.Dto.View.cs
  2. 115
      Tiobon.Core.Services/Ghrh/Ghrh_InterviewOrderServices.cs
  3. 5
      Tiobon.Core.Services/Ghrh/Ghrh_InterviewRecordServices.cs

@ -91,5 +91,6 @@ public class Ghrh_InterviewOrderDto : Ghrh_InterviewOrder
/// 需求单号 /// 需求单号
/// </summary> /// </summary>
public string RequestNo { get; set; } public string RequestNo { get; set; }
public DateTime? Birthday { get; set; }
} }

@ -1,4 +1,6 @@
namespace Tiobon.Core.Services; using MySqlX.XDevAPI.Common;
namespace Tiobon.Core.Services;
/// <summary> /// <summary>
/// 面试工单 (服务) /// 面试工单 (服务)
@ -67,18 +69,10 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr
Type entityType = typeof(Ghrh_InterviewOrder); Type entityType = typeof(Ghrh_InterviewOrder);
var countSql = @$" SELECT COUNT(1) FROM {entityType.GetEntityTableName()}"; var countSql = @$" SELECT COUNT(1) FROM Ghrh_InterviewOrder_V";
var sql1 = @$"DECLARE @langId INT = {filter.langId};"; var sql1 = @$"DECLARE @langId INT = {filter.langId};";
var sql = @$" SELECT *, var sql = @$" SELECT *
ISNULL ((SELECT CASE WHEN @langId = 1 THEN UserName ELSE UserEname END FROM Ghrh_InterviewOrder_V A";
FROM Ghrs_User B
WHERE B.UserId = A.CreateBy),
'') CreateDataInfo,
ISNULL ((SELECT CASE WHEN @langId = 1 THEN UserName ELSE UserEname END
FROM Ghrs_User B
WHERE B.UserId = A.UpdateBy),
'') UpdateDataInfo, ISNULL(A.UpdateTime, A.CreateTime) CreateTime1
FROM {entityType.GetEntityTableName()} A";
string conditions = " WHERE 1=1 "; string conditions = " WHERE 1=1 ";
@ -97,7 +91,7 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr
{ {
var name = jProperty.Name; var name = jProperty.Name;
var value = jProperty.Value.ToString(); var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize" ) if (name == "page" || name == "pageSize")
continue; continue;
if (!string.IsNullOrWhiteSpace(value)) if (!string.IsNullOrWhiteSpace(value))
conditions = DealConditions(conditions, name, value); conditions = DealConditions(conditions, name, value);
@ -117,79 +111,58 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr
var result = new ServicePageResult<Ghrh_InterviewOrderDto>(filter.pageNum, total, filter.pageSize, entitys); var result = new ServicePageResult<Ghrh_InterviewOrderDto>(filter.pageNum, total, filter.pageSize, entitys);
var list = result.result.DT_TableDataT1; var list = result.result.DT_TableDataT1;
var resumeIds = list.Where(x => x.ResumeId != null).Select(x => x.ResumeId).ToList();
var requestIds = list.Where(x => x.RequestId != null).Select(x => x.RequestId).ToList();
var resumes = await Db.Queryable<Ghrh_Resume>().Where(x => resumeIds.Contains(x.Id)).ToListAsync();
var requests = await Db.Queryable<Ghrh_HumanRequest>().Where(x => requestIds.Contains(x.Id)).ToListAsync();
var titleIds = resumes.Where(x => x.TitleId != null).Select(x => x.TitleId.Value).Distinct().ToList();
var titles = await Db.Queryable<Ghra_Title>().Where(x => x.TitleID != null && titleIds.Contains(x.TitleID.Value)).ToListAsync();
var tagIds = new List<long>(); var tagIds = new List<long>();
resumes.ForEach(x => list.ForEach(x =>
{ {
if (x.Tags.IsNotEmptyOrNull()) if (x.Tag.IsNotEmptyOrNull())
tagIds.AddRange(JsonHelper.JsonToObj<List<long>>(x.Tags)); tagIds.AddRange(JsonHelper.JsonToObj<List<long>>(x.Tag));
}); });
tagIds = tagIds.Distinct().ToList(); tagIds = tagIds.Distinct().ToList();
var tags = await Db.Queryable<Ghrh_ResumeTag>().Where(x => tagIds.Contains(x.Id)).ToListAsync(); var tags = await Db.Queryable<Ghrh_ResumeTag>().Where(x => tagIds.Contains(x.Id)).ToListAsync();
for (int i = 0; i < list.Count; i++) for (int i = 0; i < list.Count; i++)
{ {
var entity = list[i]; var entity = list[i];
var resume = resumes.Where(x => x.Id == entity.ResumeId).FirstOrDefault(); entity.CertificateType = await GetParaLabel("D51", entity.CertificateType);
if (resume != null) entity.EduDegree = await GetParaLabel("EducationalBGLevel", entity.EduDegree);
{ entity.Gender = await GetParaLabel("Gender", entity.Gender);
entity.StaffName = resume.StaffName;
entity.IdCardNo = resume.IdCardNo;
entity.CertificateType = await GetParaLabel("D51", resume.CertificateType);
entity.EduDegree = await GetParaLabel("EducationalBGLevel", resume.EduDegree);
entity.Gender = await GetParaLabel("Gender", resume.Gender);
if (resume.TitleId != null) entity.TitleName = titles.Where(o => o.TitleID == resume.TitleId).FirstOrDefault()?.TitleName;
if (resume.Tags.IsNotEmptyOrNull())
{
var tagIds1 = JsonHelper.JsonToObj<List<long>>(resume.Tags);
var TagList = tags.Where(o => tagIds1.Contains(o.Id)).Select(o => o.TagName).ToList();
entity.Tag = string.Join(",", TagList);
}
#region 计算年龄 if (entity.Tag.IsNotEmptyOrNull())
if (resume.Birthday != null && resume.Birthday > DateTime.MinValue) {
{ var tagIds1 = JsonHelper.JsonToObj<List<long>>(entity.Tag);
DateTime birthdate = (DateTime)resume.Birthday;
DateTime now = DateTime.Now;
int age = now.Year - birthdate.Year;
if (now.Month < birthdate.Month || (now.Month == birthdate.Month && now.Day < birthdate.Day))
age--;
entity.Age = age;
}
#endregion
switch (entity.Status) var TagList = tags.Where(o => tagIds1.Contains(o.Id)).Select(o => o.TagName).ToList();
{ entity.Tag = string.Join(",", TagList);
case "Fail":
entity.StatusLabel = "不合适";
break;
case "HasRecommended":
entity.StatusLabel = "待预约";
break;
case "Hire":
entity.StatusLabel = "不合适";
break;
default:
entity.StatusLabel = "已约面";
break;
}
} }
if (entity.RequestId != null) #region 计算年龄
if (entity.Birthday != null && entity.Birthday > DateTime.MinValue)
{ {
var request = requests.Where(x => x.Id == entity.RequestId).FirstOrDefault(); DateTime birthdate = (DateTime)entity.Birthday;
entity.RequestNo = request.RequestNo; DateTime now = DateTime.Now;
int age = now.Year - birthdate.Year;
if (now.Month < birthdate.Month || (now.Month == birthdate.Month && now.Day < birthdate.Day))
age--;
entity.Age = age;
} }
#endregion
switch (entity.Status)
{
case "Fail":
entity.StatusLabel = "不合适";
break;
case "HasRecommended":
entity.StatusLabel = "待预约";
break;
case "Hire":
entity.StatusLabel = "已逾期";
break;
default:
entity.StatusLabel = "已约面";
break;
}
if (entity.IdCardNo.IsNotEmptyOrNull()) if (entity.IdCardNo.IsNotEmptyOrNull())
{ {
int length = entity.IdCardNo.Length; int length = entity.IdCardNo.Length;

@ -157,7 +157,10 @@ public class Ghrh_InterviewRecordServices : BaseServices<Ghrh_InterviewRecord, G
entity.CertificateType = await GetParaLabel("D51", entity.CertificateType); entity.CertificateType = await GetParaLabel("D51", entity.CertificateType);
entity.EduDegree = await GetParaLabel("EducationalBGLevel", entity.EduDegree); entity.EduDegree = await GetParaLabel("EducationalBGLevel", entity.EduDegree);
entity.Gender = await GetParaLabel("Gender", entity.Gender); entity.Gender = await GetParaLabel("Gender", entity.Gender);
entity.InterviewResult = entity.IsPass == true ? "面试通过" : "面试不通过"; if (entity.IsPass == true)
entity.InterviewResult = "面试通过";
else if (entity.IsPass == false)
entity.InterviewResult = "面试不通过";
} }
return result; return result;

Loading…
Cancel
Save